Merge pull request #195 from Kitzanos/feature/GEPAFINBE-159
GEPAFINBE-159 (Updated PUT Endpoint for Application Evaluation Form)
This commit is contained in:
@@ -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<ContentResponseBean> 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<ApplicationEvaluationFormFieldEntity> applicationEvaluationFormFieldEntities = applicationEvaluationFormFieldRepository.findByApplicationEvaluationFormId(applicationEvaluationFormEntity.getId());
|
||||
List<ApplicationEvaluationFormFieldReponseBean> evaluationFormFieldResponseBeans = createEvaluationFormFieldResponse(applicationEvaluationFormFieldEntities, applicationEvaluationFormEntity);
|
||||
ApplicationEvaluationResponseBean applicationEvaluationResponseBean = convertApplicationEvaluationEntityToApplicationEvaluationResponseBean(applicationEvaluationEntity);
|
||||
applicationEvaluationResponseBean.setFormFields(evaluationFormFieldResponseBeans);
|
||||
|
||||
return applicationEvaluationResponseBean;
|
||||
}
|
||||
|
||||
private List<ApplicationEvaluationFormFieldReponseBean> createEvaluationFormFieldResponse(
|
||||
List<ApplicationEvaluationFormFieldEntity> 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<FieldRequest> files;
|
||||
private List<EvaluationDocumentRequest> evaluationDocument;
|
||||
private List<AmendmentDetailsRequest> amendmentDetails;
|
||||
private String note;
|
||||
private ApplicationStatusForEvaluation applicationStatus;
|
||||
private List<ApplicationFormFieldRequestBean> formFields;
|
||||
private String motivation;
|
||||
private BigDecimal amountAccepted;
|
||||
}
|
||||
@@ -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<ApplicationEvaluationFormFieldReponseBean> formFields;
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<Response<ApplicationEvaluationResponseBean>> createApplicationEvaluation(HttpServletRequest request,
|
||||
@Valid @RequestBody ApplicationRequestBean applicationRequestBean,
|
||||
ResponseEntity<Response<ApplicationEvaluationFormResponse>> 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);
|
||||
|
||||
|
||||
@@ -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<Response<ApplicationEvaluationResponseBean>> createApplicationEvaluation(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long assignedApplicationId, Long evaluationFormId) {
|
||||
public ResponseEntity<Response<ApplicationEvaluationFormResponse>> 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)));
|
||||
|
||||
Reference in New Issue
Block a user