From 3803a6ff98f76994b767ba528241664f5c7d4080 Mon Sep 17 00:00:00 2001 From: nisha Date: Tue, 4 Feb 2025 15:52:36 +0530 Subject: [PATCH] Updated code for Application Evaluation form --- .../dao/ApplicationEvaluationDao.java | 96 +++++++++++++------ .../ApplicationEvaluationFormRequestBean.java | 19 ++++ .../ApplicationEvaluationResponseBean.java | 17 ---- .../service/ApplicationEvaluationService.java | 3 +- .../ApplicationEvaluationServiceImpl.java | 10 +- .../rest/api/ApplicationEvaluationApi.java | 7 +- .../ApplicationEvaluationApiController.java | 9 +- 7 files changed, 101 insertions(+), 60 deletions(-) create mode 100644 src/main/java/net/gepafin/tendermanagement/model/request/ApplicationEvaluationFormRequestBean.java delete mode 100644 src/main/java/net/gepafin/tendermanagement/model/response/ApplicationEvaluationResponseBean.java diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index 7ecadfcb..75ce444c 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -1946,13 +1946,27 @@ public class ApplicationEvaluationDao { return convertToResponse(savedEntity); } - public ApplicationEvaluationResponseBean createApplicationEvaluation(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long evaluationFormId, Long assignedApplicationId){ + public ApplicationEvaluationFormResponse createApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, Long evaluationFormId, Long assignedApplicationId){ + + UserEntity user = validator.validateUser(request); + AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId); + ApplicationEntity application = applicationService.validateApplication(assignedApplicationsEntity.getApplication().getId()); + + // Convert FormRequestBean to ApplicationEvaluationRequest + ApplicationEvaluationRequest req = convertToApplicationEvaluationRequest(applicationEvaluationFormRequestBean); + + // Call the existing method to create or update evaluation + ApplicationEvaluationResponse evaluationResponse = createOrUpdateApplicationEvaluation(user, req, assignedApplicationId); + + ApplicationEvaluationEntity entity = applicationEvaluationService.validateApplicationEvaluation(evaluationResponse.getId()); + + //Handling Application Evaluation form EvaluationFormEntity evaluationFormEntity = evaluationFormService.validateEvaluationForm(evaluationFormId); - validateFormFields(applicationRequestBean,evaluationFormEntity); - ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationRepository.findByAssignedApplicationsId(assignedApplicationId); - ApplicationEvaluationFormEntity applicationEvaluationFormEntity = getApplicationEvaluationFormOrCreate(evaluationFormEntity,applicationEvaluationEntity); - createOrUpdateMultipleFormFields(applicationRequestBean.getFormFields(), applicationEvaluationFormEntity, evaluationFormEntity); - return getEvaluationById(applicationEvaluationEntity.getId(),evaluationFormEntity.getId()); + validateFormFields(applicationEvaluationFormRequestBean,evaluationFormEntity); +// ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationRepository.findByAssignedApplicationsId(assignedApplicationId); + ApplicationEvaluationFormEntity applicationEvaluationFormEntity = getApplicationEvaluationFormOrCreate(evaluationFormEntity,entity); + createOrUpdateMultipleFormFields(applicationEvaluationFormRequestBean.getFormFields(), applicationEvaluationFormEntity, evaluationFormEntity); + return processEvaluationForm(entity); } private ApplicationEvaluationFormEntity getApplicationEvaluationFormOrCreate(EvaluationFormEntity evaluationFormEntity, ApplicationEvaluationEntity applicationEvaluationEntity) { @@ -1979,7 +1993,7 @@ public class ApplicationEvaluationDao { return saveApplicationEvaluationFormEntity(applicationEvaluationFormEntity); } - public void validateFormFields(ApplicationRequestBean request, EvaluationFormEntity evaluationFormEntity) { + public void validateFormFields(ApplicationEvaluationFormRequestBean request, EvaluationFormEntity evaluationFormEntity) { List contentResponseBeans=evaluationFormDao.convertEvaluationFormEntityToEvaluationFormResponseBean(evaluationFormEntity).getContent(); @@ -2074,17 +2088,6 @@ public class ApplicationEvaluationDao { return documentIds; } - public ApplicationEvaluationResponseBean getEvaluationById(Long evaluationId, Long evaluationFormId){ - ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(evaluationId); - - ApplicationEvaluationFormEntity applicationEvaluationFormEntity = applicationEvaluationFormRepository.findByEvaluationIdAndEvaluationFormId(applicationEvaluationEntity.getId(),evaluationFormId); - List applicationEvaluationFormFieldEntities = applicationEvaluationFormFieldRepository.findByApplicationEvaluationFormId(applicationEvaluationFormEntity.getId()); - List evaluationFormFieldResponseBeans = createEvaluationFormFieldResponse(applicationEvaluationFormFieldEntities, applicationEvaluationFormEntity); - ApplicationEvaluationResponseBean applicationEvaluationResponseBean = convertApplicationEvaluationEntityToApplicationEvaluationResponseBean(applicationEvaluationEntity); - applicationEvaluationResponseBean.setFormFields(evaluationFormFieldResponseBeans); - - return applicationEvaluationResponseBean; - } private List createEvaluationFormFieldResponse( List evaluationFormFieldEntities, @@ -2141,15 +2144,39 @@ public class ApplicationEvaluationDao { return applicationEvaluationFormFieldReponseBean; } - private ApplicationEvaluationResponseBean convertApplicationEvaluationEntityToApplicationEvaluationResponseBean(ApplicationEvaluationEntity entity){ - ApplicationEvaluationResponseBean response = new ApplicationEvaluationResponseBean(); - response.setId(entity.getId()); - response.setApplicationId(entity.getApplicationId()); - response.setEvaluationId(entity.getId()); - response.setNote(entity.getNote()); - response.setEvaluationVersion(EvaluationVersionEnum.valueOf(entity.getEvaluationVersion())); - response.setCreatedDate(entity.getCreatedDate()); - response.setUpdatedDate(entity.getUpdatedDate()); + private ApplicationEvaluationFormResponse convertToApplicationEvaluationResponseBean(ApplicationEvaluationResponse applicationEvaluationResponse){ + ApplicationEvaluationFormResponse response = new ApplicationEvaluationFormResponse(); + response.setId(applicationEvaluationResponse.getId()); + response.setApplicationId(applicationEvaluationResponse.getApplicationId()); + response.setNote(applicationEvaluationResponse.getNote()); + response.setEvaluationVersion(applicationEvaluationResponse.getEvaluationVersion()); + response.setCreatedDate(applicationEvaluationResponse.getCreatedDate()); + response.setUpdatedDate(applicationEvaluationResponse.getUpdatedDate()); + response.setApplicationStatus(applicationEvaluationResponse.getApplicationStatus()); + response.setAssignedApplicationId(applicationEvaluationResponse.getAssignedApplicationId()); + response.setMinScore(applicationEvaluationResponse.getMinScore()); + response.setStatus(applicationEvaluationResponse.getStatus()); + response.setFiles(applicationEvaluationResponse.getFiles()); + response.setEvaluationDocument(applicationEvaluationResponse.getEvaluationDocument()); + response.setAmendmentDetails(applicationEvaluationResponse.getAmendmentDetails()); + response.setBeneficiary(applicationEvaluationResponse.getBeneficiary()); + response.setAssignedUserId(applicationEvaluationResponse.getAssignedUserId()); + response.setAssignedUserName(applicationEvaluationResponse.getAssignedUserName()); + response.setProtocolNumber(applicationEvaluationResponse.getProtocolNumber()); + response.setCallName(applicationEvaluationResponse.getCallName()); + response.setMotivation(applicationEvaluationResponse.getMotivation()); + response.setSubmissionDate(applicationEvaluationResponse.getSubmissionDate()); + response.setEvaluationEndDate(applicationEvaluationResponse.getEvaluationEndDate()); + response.setCallEndDate(applicationEvaluationResponse.getCallEndDate()); + response.setCompanyName(applicationEvaluationResponse.getCompanyName()); + response.setAssignedAt(applicationEvaluationResponse.getAssignedAt()); + response.setNdg(applicationEvaluationResponse.getNdg()); + response.setAppointmentId(applicationEvaluationResponse.getAppointmentId()); + response.setAmountRequested(applicationEvaluationResponse.getAmountRequested()); + response.setAmountAccepted(applicationEvaluationResponse.getAmountAccepted()); + response.setDateAccepted(applicationEvaluationResponse.getDateAccepted()); + response.setDateRejected(applicationEvaluationResponse.getDateRejected()); + return response; } @@ -2219,5 +2246,20 @@ public class ApplicationEvaluationDao { return response; } + public static ApplicationEvaluationRequest convertToApplicationEvaluationRequest(ApplicationEvaluationFormRequestBean formRequestBean) { + ApplicationEvaluationRequest request = new ApplicationEvaluationRequest(); + request.setFiles(formRequestBean.getFiles()); + request.setEvaluationDocument(formRequestBean.getEvaluationDocument()); + request.setAmendmentDetails(formRequestBean.getAmendmentDetails()); + request.setNote(formRequestBean.getNote()); + request.setApplicationStatus(formRequestBean.getApplicationStatus()); + request.setMotivation(formRequestBean.getMotivation()); + request.setAmountAccepted(formRequestBean.getAmountAccepted()); + + request.setCriteria(null); + request.setChecklist(null); + + return request; + } } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/ApplicationEvaluationFormRequestBean.java b/src/main/java/net/gepafin/tendermanagement/model/request/ApplicationEvaluationFormRequestBean.java new file mode 100644 index 00000000..d2c0e2dc --- /dev/null +++ b/src/main/java/net/gepafin/tendermanagement/model/request/ApplicationEvaluationFormRequestBean.java @@ -0,0 +1,19 @@ +package net.gepafin.tendermanagement.model.request; + +import lombok.Data; +import net.gepafin.tendermanagement.enums.ApplicationStatusForEvaluation; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class ApplicationEvaluationFormRequestBean { + private List files; + private List evaluationDocument; + private List amendmentDetails; + private String note; + private ApplicationStatusForEvaluation applicationStatus; + private List formFields; + private String motivation; + private BigDecimal amountAccepted; +} diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationEvaluationResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationEvaluationResponseBean.java deleted file mode 100644 index b8adf7a6..00000000 --- a/src/main/java/net/gepafin/tendermanagement/model/response/ApplicationEvaluationResponseBean.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.gepafin.tendermanagement.model.response; - -import lombok.Data; -import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum; -import net.gepafin.tendermanagement.enums.EvaluationVersionEnum; -import net.gepafin.tendermanagement.model.BaseBean; - -import java.util.List; - -@Data -public class ApplicationEvaluationResponseBean extends BaseBean { - private Long applicationId; - private Long evaluationId; - private String note; - private EvaluationVersionEnum evaluationVersion; - private List formFields; -} diff --git a/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java b/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java index 50b4f299..86140ac6 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java +++ b/src/main/java/net/gepafin/tendermanagement/service/ApplicationEvaluationService.java @@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.service; import jakarta.servlet.http.HttpServletRequest; import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity; import net.gepafin.tendermanagement.enums.FormActionEnum; +import net.gepafin.tendermanagement.model.request.ApplicationEvaluationFormRequestBean; import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest; import net.gepafin.tendermanagement.model.request.ApplicationRequestBean; import net.gepafin.tendermanagement.model.request.EvaluationDocumentRequest; @@ -23,7 +24,7 @@ public interface ApplicationEvaluationService { ApplicationEvaluationEntity validateApplicationEvaluationByApplicationId(Long applicationId); - ApplicationEvaluationResponseBean createApplicationEvaluation(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long evaluationId, Long evaluationFormId); + ApplicationEvaluationFormResponse createApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, Long evaluationId, Long evaluationFormId); ApplicationEvaluationFormResponse getApplicationEvaluationForm(HttpServletRequest request, Long applicationId, Long assignedApplicationId); diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java index c1f5d0f2..044c0902 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationEvaluationServiceImpl.java @@ -7,13 +7,10 @@ import net.gepafin.tendermanagement.entities.ApplicationEntity; import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity; import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity; import net.gepafin.tendermanagement.entities.UserEntity; +import net.gepafin.tendermanagement.model.request.ApplicationEvaluationFormRequestBean; import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest; -import net.gepafin.tendermanagement.model.request.ApplicationRequestBean; -import net.gepafin.tendermanagement.model.request.EvaluationDocumentRequest; import net.gepafin.tendermanagement.model.response.ApplicationEvaluationFormResponse; import net.gepafin.tendermanagement.model.response.ApplicationEvaluationResponse; - -import net.gepafin.tendermanagement.model.response.ApplicationEvaluationResponseBean; import net.gepafin.tendermanagement.model.response.ApplicationEvaluationVersionResponse; import net.gepafin.tendermanagement.repositories.AssignedApplicationsRepository; import net.gepafin.tendermanagement.service.ApplicationEvaluationService; @@ -88,10 +85,11 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe } @Override - public ApplicationEvaluationResponseBean createApplicationEvaluation(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long assignedApplicationId, Long evaluationFormId) { + @Transactional(rollbackFor = Exception.class) + public ApplicationEvaluationFormResponse createApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, Long assignedApplicationId, Long evaluationFormId) { AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId); validator.validatePreInstructor(request, assignedApplicationsEntity.getUserId()); - return applicationEvaluationDao.createApplicationEvaluation(request,applicationRequestBean,evaluationFormId,assignedApplicationId); + return applicationEvaluationDao.createApplicationEvaluation(request,applicationEvaluationFormRequestBean,evaluationFormId,assignedApplicationId); } @Override diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationEvaluationApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationEvaluationApi.java index 891b86c8..18576c61 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationEvaluationApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationEvaluationApi.java @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.Valid; import net.gepafin.tendermanagement.enums.FormActionEnum; +import net.gepafin.tendermanagement.model.request.ApplicationEvaluationFormRequestBean; import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest; import net.gepafin.tendermanagement.model.request.ApplicationRequestBean; import net.gepafin.tendermanagement.model.request.EvaluationDocumentRequest; @@ -68,10 +69,10 @@ public interface ApplicationEvaluationApi { @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 = "/assignedApplication/{id}", + @PutMapping(value = "/assignedApplication/{id}/v2", produces = { "application/json" }) - ResponseEntity> createApplicationEvaluation(HttpServletRequest request, - @Valid @RequestBody ApplicationRequestBean applicationRequestBean, + ResponseEntity> createApplicationEvaluation(HttpServletRequest request, + @Valid @RequestBody ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, @Parameter(description = "Assigned Application ID", required = true) @PathVariable(value = "id", required = true) Long assignedApplicationId, @Parameter(description = "The evaluation form ID", required = true) @RequestParam("evaluationFormId") Long evaluationFormId); diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationEvaluationApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationEvaluationApiController.java index f7b9b8c1..50eadb36 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationEvaluationApiController.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/ApplicationEvaluationApiController.java @@ -6,10 +6,7 @@ import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.enums.FormActionEnum; import net.gepafin.tendermanagement.enums.UserActionContextEnum; import net.gepafin.tendermanagement.enums.UserActionLogsEnum; -import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest; -import net.gepafin.tendermanagement.model.request.ApplicationRequestBean; -import net.gepafin.tendermanagement.model.request.EvaluationDocumentRequest; -import net.gepafin.tendermanagement.model.request.UserActionRequest; +import net.gepafin.tendermanagement.model.request.*; import net.gepafin.tendermanagement.model.response.*; import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.service.ApplicationEvaluationService; @@ -85,13 +82,13 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation } @Override - public ResponseEntity> createApplicationEvaluation(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long assignedApplicationId, Long evaluationFormId) { + public ResponseEntity> createApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, Long assignedApplicationId, Long evaluationFormId) { /** This code is responsible for creating user action logs for the "Create or update application evaluation form" operation. **/ loggingUtil.logUserAction( UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.CREATE_UPDATE_APPLICATION_EVALUATION_FORM).build()); - ApplicationEvaluationResponseBean applicationEvaluationResponseBean = applicationEvaluationService.createApplicationEvaluation(request, applicationRequestBean, assignedApplicationId, evaluationFormId); + ApplicationEvaluationFormResponse applicationEvaluationResponseBean = applicationEvaluationService.createApplicationEvaluation(request, applicationEvaluationFormRequestBean, assignedApplicationId, evaluationFormId); return ResponseEntity.status(HttpStatus.CREATED) .body(new Response<>(applicationEvaluationResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_CREATED_SUCCESSFULLY)));