Resolved conflicts

This commit is contained in:
Piyush
2025-01-27 19:23:14 +05:30
11 changed files with 58 additions and 16 deletions

View File

@@ -401,5 +401,7 @@ public class GepafinConstant {
public static final String EVALUATION_FORM_NOT_FOUND = "evaluation.form.not.found"; public static final String EVALUATION_FORM_NOT_FOUND = "evaluation.form.not.found";
public static final String EVALUATION_V2_STEP_2 = "EVALUATION_V2_STEP_2"; public static final String EVALUATION_V2_STEP_2 = "EVALUATION_V2_STEP_2";
public static final String ASSIGNED_APPLICATION_STATUS_UPDATED_SUCCESSFULLY = "assigned.application.status.updated.successfully";
} }

View File

@@ -4,19 +4,13 @@ import jakarta.persistence.criteria.Predicate;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.ApplicationEntity; import net.gepafin.tendermanagement.entities.*;
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity; import net.gepafin.tendermanagement.enums.*;
import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity;
import net.gepafin.tendermanagement.entities.CompanyEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
import net.gepafin.tendermanagement.enums.EvaluationVersionEnum;
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest; import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest; import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest; import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest; import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse; import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository; import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository;
import net.gepafin.tendermanagement.repositories.ApplicationRepository; import net.gepafin.tendermanagement.repositories.ApplicationRepository;
@@ -37,6 +31,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -120,6 +115,7 @@ public class AssignedApplicationsDao {
setIfUpdated(assignedApplication::getAssignedBy, assignedApplication::setAssignedBy, assignedByUser.getId()); setIfUpdated(assignedApplication::getAssignedBy, assignedApplication::setAssignedBy, assignedByUser.getId());
setIfUpdated(assignedApplication::getUserId, assignedApplication::setUserId, userId); setIfUpdated(assignedApplication::getUserId, assignedApplication::setUserId, userId);
assignedApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); assignedApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
assignedApplication.setStatus(AssignedApplicationEnum.AWAITING.getValue());
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplication.getId()); Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplication.getId());
if(entityOptional.isPresent()) { if(entityOptional.isPresent()) {
ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(entityOptional.get()); ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(entityOptional.get());
@@ -141,10 +137,7 @@ public class AssignedApplicationsDao {
assignApplication.setApplication(application); assignApplication.setApplication(application);
assignApplication.setAssignedBy(assignedByUser.getId()); assignApplication.setAssignedBy(assignedByUser.getId());
assignApplication.setUserId(userId); assignApplication.setUserId(userId);
assignApplication.setStatus(AssignedApplicationEnum.OPEN.getValue()); assignApplication.setStatus(AssignedApplicationEnum.AWAITING.getValue());
if (assignedApplicationsRequest.getStatus() != null) {
assignApplication.setStatus(assignedApplicationsRequest.getStatus().getValue());
}
assignApplication.setNote(assignedApplicationsRequest.getNote()); assignApplication.setNote(assignedApplicationsRequest.getNote());
assignApplication.setIsDeleted(false); assignApplication.setIsDeleted(false);
assignApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); assignApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
@@ -293,5 +286,14 @@ public class AssignedApplicationsDao {
log.info("Assigned application fetched successfully: {}", response); log.info("Assigned application fetched successfully: {}", response);
return response; return response;
} }
public AssignedApplicationsResponse updateAssignedApplicationStatus(HttpServletRequest request, Long assignedApplicationId, AssignedApplicationEnum status) {
AssignedApplicationsEntity assignedApplication = validateAssignedApplication(assignedApplicationId);
validator.validatePreInstructor(request, assignedApplication.getUserId());
AssignedApplicationsEntity oldAssignedApplicationEntity = Utils.getClonedEntityForData(assignedApplication);
assignedApplication.setStatus(status.getValue());
AssignedApplicationsEntity updatedAssignment = saveAssignedApplication(assignedApplication, oldAssignedApplicationEntity, VersionActionTypeEnum.UPDATE);
return convertEntityToResponse(updatedAssignment);
}
} }

View File

@@ -5,6 +5,9 @@ import com.fasterxml.jackson.annotation.JsonValue;
public enum AssignedApplicationEnum { public enum AssignedApplicationEnum {
OPEN ("OPEN"), OPEN ("OPEN"),
SOCCORSO("SOCCORSO"), SOCCORSO("SOCCORSO"),
AWAITING("AWAITING"),
CLOSE("CLOSE"); CLOSE("CLOSE");

View File

@@ -109,6 +109,7 @@ public enum UserActionContextEnum {
DELETE_ASSIGNED_APPLICATION("DELETE_ASSIGNED_APPLICATION"), DELETE_ASSIGNED_APPLICATION("DELETE_ASSIGNED_APPLICATION"),
GET_ASSIGNED_APPLICATION("GET_ASSIGNED_APPLICATION"), GET_ASSIGNED_APPLICATION("GET_ASSIGNED_APPLICATION"),
UPDATE_ASSIGNED_APPLICATION_DETAILS("UPDATE_ASSIGNED_APPLICATION_DETAILS"), UPDATE_ASSIGNED_APPLICATION_DETAILS("UPDATE_ASSIGNED_APPLICATION_DETAILS"),
UPDATE_ASSIGNED_APPLICATION_STATUS("UPDATE_ASSIGNED_APPLICATION_STATUS"),
/** Assigned form field context **/ /** Assigned form field context **/
CREATE_FORM_FIELD("CREATE_FORM_FIELD"), CREATE_FORM_FIELD("CREATE_FORM_FIELD"),

View File

@@ -6,5 +6,4 @@ import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
@Data @Data
public class AssignedApplicationsRequest { public class AssignedApplicationsRequest {
private String note; private String note;
private AssignedApplicationEnum status;
} }

View File

@@ -21,4 +21,5 @@ public interface AssignedApplicationsService {
AssignedApplicationsResponse updateAssignedApplication(HttpServletRequest request, Long id, UpdateAssignedApplicationRequest assignedApplicationsRequest); AssignedApplicationsResponse updateAssignedApplication(HttpServletRequest request, Long id, UpdateAssignedApplicationRequest assignedApplicationsRequest);
AssignedApplicationsResponse getAssignedApplicationById(HttpServletRequest request, Long id); AssignedApplicationsResponse getAssignedApplicationById(HttpServletRequest request, Long id);
AssignedApplicationsEntity validateAssignedApplication(Long assignedApplicationId); AssignedApplicationsEntity validateAssignedApplication(Long assignedApplicationId);
AssignedApplicationsResponse updateAssignedApplicationStatus(HttpServletRequest request, Long assignedApplicationId, AssignedApplicationEnum status);
} }

View File

@@ -62,5 +62,8 @@ public class AssignedApplicationsServiceImpl implements AssignedApplicationsServ
public AssignedApplicationsEntity validateAssignedApplication(Long assignedApplicationId) { public AssignedApplicationsEntity validateAssignedApplication(Long assignedApplicationId) {
return assignedApplicationsDao.validateAssignedApplication(assignedApplicationId); return assignedApplicationsDao.validateAssignedApplication(assignedApplicationId);
} }
@Override
public AssignedApplicationsResponse updateAssignedApplicationStatus(HttpServletRequest request, Long assignedApplicationId, AssignedApplicationEnum status) {
return assignedApplicationsDao.updateAssignedApplicationStatus(request, assignedApplicationId, status);
}
} }

View File

@@ -10,6 +10,7 @@ import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum; import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest; import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest; import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest;
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse; import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants; import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants;
@@ -100,6 +101,19 @@ public interface AssignedApplicationsApi {
ResponseEntity<Response<AssignedApplicationsResponse>> getAssignedApplicationById(HttpServletRequest request, ResponseEntity<Response<AssignedApplicationsResponse>> getAssignedApplicationById(HttpServletRequest request,
@Parameter(description = "The assigned application id", required = true) @PathVariable(value = "id", required = true) Long id); @Parameter(description = "The assigned application id", required = true) @PathVariable(value = "id", required = true) Long id);
@Operation(summary = "Api to update assigned application status",
responses = {
@ApiResponse(responseCode = "200", description = "OK"),
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
@PutMapping(value = "/{id}/status", produces = { "application/json" })
ResponseEntity<Response<AssignedApplicationsResponse>> updateAssignedApplicationStatus(HttpServletRequest request,
@Parameter(description = "The assigned application id", required = true) @PathVariable("id") Long id,
@Parameter(description = "status", required = true)@RequestParam(value = "status", required = true) AssignedApplicationEnum status);

View File

@@ -11,6 +11,7 @@ import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest; import net.gepafin.tendermanagement.model.request.AssignedApplicationsRequest;
import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest; import net.gepafin.tendermanagement.model.request.UpdateAssignedApplicationRequest;
import net.gepafin.tendermanagement.model.request.UserActionRequest; import net.gepafin.tendermanagement.model.request.UserActionRequest;
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse; import net.gepafin.tendermanagement.model.response.AssignedApplicationsResponse;
import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.service.AssignedApplicationsService; import net.gepafin.tendermanagement.service.AssignedApplicationsService;
@@ -91,6 +92,18 @@ public class AssignedApplicationsController implements AssignedApplicationsApi {
.body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG))); .body(new Response<>(application, Status.SUCCESS, Translator.toLocale(GepafinConstant.GET_ASSIGNED_APPLICATION_SUCCESS_MSG)));
} }
@Override
public ResponseEntity<Response<AssignedApplicationsResponse>> updateAssignedApplicationStatus(HttpServletRequest request, Long assignedApplicationId, AssignedApplicationEnum status) {
/** This code is responsible for creating user action logs for the "update assigned application status" operation. **/
loggingUtil.logUserAction(
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.UPDATE_ASSIGNED_APPLICATION_STATUS).build());
AssignedApplicationsResponse applicationResponse = assignedApplicationsService.updateAssignedApplicationStatus(request, assignedApplicationId, status);
return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_STATUS_UPDATED_SUCCESSFULLY)));
}
} }

View File

@@ -362,3 +362,4 @@ evaluation.form.deleted.successfully=Evaluation form deleted successfully.
evaluation.form.fetched.successfully=Evaluation form fetched successfully. evaluation.form.fetched.successfully=Evaluation form fetched successfully.
evaluation.form.not.found=Evaluation form not found. evaluation.form.not.found=Evaluation form not found.
assigned.application.status.updated.successfully=Assigned application status updated successfully.

View File

@@ -352,3 +352,6 @@ evaluation.form.deleted.successfully=Modulo di valutazione eliminato con success
evaluation.form.fetched.successfully=Modulo di valutazione recuperato con successo. evaluation.form.fetched.successfully=Modulo di valutazione recuperato con successo.
evaluation.form.not.found=Modulo di valutazione non trovato. evaluation.form.not.found=Modulo di valutazione non trovato.
assigned.application.status.updated.successfully=Stato dell'applicazione assegnata aggiornato con successo.