Resolved conflicts
This commit is contained in:
@@ -655,6 +655,7 @@ public class ApplicationEvaluationDao {
|
||||
ApplicationEvaluationRequest req,
|
||||
Long assignedApplicationId) {
|
||||
|
||||
log.info("Start createOrUpdateApplicationEvaluation: assignedApplicationId={}, userId={}", assignedApplicationId, user.getId());
|
||||
Optional<ApplicationEvaluationEntity> existingEntityOptional =
|
||||
applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
||||
ApplicationEvaluationEntity entity = null;
|
||||
@@ -665,6 +666,7 @@ public class ApplicationEvaluationDao {
|
||||
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||
validateApplicationEvaluationRequest(req, application);
|
||||
if (existingEntityOptional.isPresent()) {
|
||||
log.info("Updating existing application evaluation for assignedApplicationId={}", assignedApplicationId);
|
||||
entity = existingEntityOptional.get();
|
||||
oldApplicationEvaluation = Utils.getClonedEntityForData(entity);
|
||||
if(req.getCriteria()!=null) {
|
||||
@@ -690,6 +692,7 @@ public class ApplicationEvaluationDao {
|
||||
entity = applicationEvaluationRepository.save(entity);
|
||||
|
||||
} else {
|
||||
log.info("Creating new application evaluation for assignedApplicationId={}", assignedApplicationId);
|
||||
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId);
|
||||
entity = convertToEntity(user, req, assignedApplicationId);
|
||||
actionType = VersionActionTypeEnum.INSERT;
|
||||
@@ -722,12 +725,13 @@ public class ApplicationEvaluationDao {
|
||||
List<ApplicationAmendmentRequestEntity> applicationAmendmentRequestEntities =
|
||||
applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(entity.getId());
|
||||
if(req.getEvaluationDocument()!=null) {
|
||||
log.info("Updating evaluation document for assignedApplicationId={}", assignedApplicationId);
|
||||
updateApplicationEvaluation(assignedApplicationId, req.getEvaluationDocument());
|
||||
}
|
||||
// Fetch amendment details from the request
|
||||
if(req.getAmendmentDetails()!=null) {
|
||||
log.debug("Processing amendment details for evaluationId={}", entity.getId());
|
||||
List<AmendmentDetailsRequest> amendmentDetailsRequests = req.getAmendmentDetails();
|
||||
|
||||
updateAmendmentDocumentsAndFormFields(applicationAmendmentRequestEntities, amendmentDetailsRequests);
|
||||
}
|
||||
|
||||
@@ -740,7 +744,10 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
private void validateApplicationEvaluationRequest(ApplicationEvaluationRequest req, ApplicationEntity application) {
|
||||
log.debug("Validating evaluation request for applicationId={}, evaluationVersion={}",
|
||||
application.getId(), application.getEvaluationVersion());
|
||||
if(EvaluationVersionEnum.V2.getValue().equals(application.getEvaluationVersion())) {
|
||||
log.info("Evaluation version is V2 for applicationId={}; setting checklist and criteria to null", application.getId());
|
||||
req.setChecklist(null);
|
||||
req.setCriteria(null);
|
||||
}
|
||||
@@ -1065,15 +1072,18 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
public ApplicationEvaluationEntity validateApplicationEvaluation(Long id) {
|
||||
|
||||
log.debug("Validating existence of ApplicationEvaluationEntity with ID: {}", id);
|
||||
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(id);
|
||||
if (entityOptional.isEmpty()) {
|
||||
log.warn("ApplicationEvaluationEntity not found or marked as deleted for ID: {}", id);
|
||||
throw new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, id));
|
||||
}
|
||||
log.info("Successfully validated ApplicationEvaluationEntity with ID: {}", id);
|
||||
return entityOptional.get();
|
||||
}
|
||||
|
||||
public void validatePreinstructor(HttpServletRequest request,Long applicationId,Long assignedApplicationId){
|
||||
log.debug("Validating preinstructor access: applicationId={}, assignedApplicationId={}", applicationId, assignedApplicationId);
|
||||
if (applicationId == null && assignedApplicationId == null) {
|
||||
throw new CustomValidationException(
|
||||
Status.BAD_REQUEST,
|
||||
@@ -1097,12 +1107,14 @@ public class ApplicationEvaluationDao {
|
||||
validator.validatePreInstructor(request, assignedApplications.getUserId());
|
||||
}
|
||||
public ApplicationEvaluationResponse getApplicationEvaluationByApplicationId(HttpServletRequest request, UserEntity user, Long applicationID, Long assignedApplicationID) {
|
||||
log.info("Entering getApplicationEvaluationByApplicationId: applicationID={}, assignedApplicationID={}", applicationID, assignedApplicationID);
|
||||
Long applicationId;
|
||||
Long assignedApplicationId;
|
||||
validatePreinstructor(request, applicationID, assignedApplicationID);
|
||||
|
||||
if (applicationID == null && assignedApplicationID != null) {
|
||||
assignedApplicationId = assignedApplicationID;
|
||||
log.debug("applicationID is null, fetching from assignedApplicationID={}", assignedApplicationId);
|
||||
Optional<AssignedApplicationsEntity> assignedApplicationsOptional =
|
||||
assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId);
|
||||
|
||||
@@ -1150,6 +1162,7 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
public ApplicationEvaluationResponse getEvaluationResponseByApplicationid(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
||||
|
||||
log.debug("Entering getEvaluationResponseByApplicationid with applicationId={}, assignedApplicationId={}, userId={}", applicationId, assignedApplicationId, user.getId());
|
||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
||||
CallEntity call = null;
|
||||
@@ -1203,6 +1216,7 @@ public class ApplicationEvaluationDao {
|
||||
ApplicationEvaluationResponse response,
|
||||
List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||
|
||||
log.info("Setting criteria responses for applicationId: {}", applicationId);
|
||||
List<CriteriaResponse> criteriaResponses = getInitialCriteriaResponses(entity, applicationId);
|
||||
|
||||
criteriaResponses.forEach(criteriaResponse -> {
|
||||
@@ -1398,6 +1412,7 @@ public class ApplicationEvaluationDao {
|
||||
private void setChecklistResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response,
|
||||
List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
||||
|
||||
log.info("Setting checklist responses for applicationId: {}", applicationId);
|
||||
List<ChecklistResponse> checklistResponses = entity.getChecklist() != null ? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||
}) : getChecklistResponse(applicationId);
|
||||
|
||||
@@ -1516,6 +1531,7 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
List<CriteriaResponse> getCriteriaResponse(Long applicationId) {
|
||||
log.info("Getting criteria response for applicationId: {}", applicationId);
|
||||
CallEntity call = getCallEntityByApplicationId(applicationId);
|
||||
List<EvaluationCriteriaEntity> evaluationCriterias = getEvaluationCriterias(call);
|
||||
|
||||
@@ -1525,10 +1541,12 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
private CallEntity getCallEntityByApplicationId(Long applicationId) {
|
||||
log.info("Fetching CallEntity for applicationId: {}", applicationId);
|
||||
return callRepository.findCallEntityByApplicationId(applicationId);
|
||||
}
|
||||
|
||||
private List<EvaluationCriteriaEntity> getEvaluationCriterias(CallEntity call) {
|
||||
log.info("Fetching evaluation criterias for callId: {}", call.getId());
|
||||
return evaluationCriteriaRepository
|
||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue());
|
||||
}
|
||||
@@ -1775,6 +1793,7 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
List<ChecklistResponse> getChecklistResponse(Long applicationId) {
|
||||
|
||||
log.info("Fetching checklist responses for applicationId: {}", applicationId);
|
||||
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository
|
||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.CHECKLIST.getValue());
|
||||
@@ -1860,7 +1879,7 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
public void deleteById(Long id) {
|
||||
|
||||
log.info("Starting soft delete for ApplicationEvaluation with id: {}", id);
|
||||
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
||||
ApplicationEvaluationEntity oldApplicationEvaluation = Utils.getClonedEntityForData(applicationEvaluationEntity);
|
||||
applicationEvaluationEntity.setIsDeleted(true);
|
||||
@@ -1882,6 +1901,8 @@ public class ApplicationEvaluationDao {
|
||||
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity,
|
||||
ApplicationStatusForEvaluation newStatus) {
|
||||
|
||||
log.info("Starting updateApplicationEvaluationStatus for applicationId: {}, assignedApplicationId: {}, newStatus: {}",
|
||||
application.getId(), assignedApplicationsEntity.getId(), newStatus);
|
||||
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(
|
||||
assignedApplicationsEntity.getId());
|
||||
ApplicationEvaluationEntity entity;
|
||||
@@ -1907,11 +1928,13 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
if(newStatus.equals(ApplicationStatusForEvaluation.TECHNICAL_EVALUATION) && Boolean.TRUE.equals(application.getStatus().equals(ApplicationStatusTypeEnum.ADMISSIBLE.getValue()))){
|
||||
log.info("Processing technical evaluation for applicationId: {}", application.getId());
|
||||
processTechnicalEvaluation(application.getId(), application, newStatus);
|
||||
}
|
||||
|
||||
if((newStatus.equals(ApplicationStatusForEvaluation.APPROVED) || newStatus.equals(ApplicationStatusForEvaluation.REJECTED)) && application.getStatus().equals(ApplicationStatusTypeEnum.EVALUATION.getValue())) {
|
||||
application.setStatus(newStatus.getValue());
|
||||
log.info("Application status updated to {} for applicationId: {}", newStatus, application.getId());
|
||||
}
|
||||
application = applicationRepository.save(application);
|
||||
|
||||
@@ -1923,6 +1946,7 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
List<ApplicationAmendmentRequestEntity> amendmentRequest = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndStatusAndIsDeletedFalse(existingEntity.getId(),List.of(ApplicationAmendmentRequestEnum.AWAITING.getValue(),ApplicationAmendmentRequestEnum.RESPONSE_RECEIVED.getValue()));
|
||||
if(amendmentRequest !=null && Boolean.FALSE.equals(amendmentRequest.isEmpty())){
|
||||
log.warn("Application cannot be approved or rejected due to pending amendment requests. applicationEvaluationId: {}", existingEntity.getId());
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.APPLICATION_CANNOT_APPROVED_OR_REJECTED));
|
||||
}
|
||||
String statusType = application.getStatus();
|
||||
@@ -1930,11 +1954,13 @@ public class ApplicationEvaluationDao {
|
||||
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
||||
existingEntity.setClosingDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.CLOSE.getValue());
|
||||
log.info("Closing ApplicationEvaluation and AssignedApplication for applicationId: {}", application.getId());
|
||||
}
|
||||
if (existingEntity.getStartDate() != null && existingEntity.getClosingDate() != null) {
|
||||
long activeDays = ChronoUnit.DAYS.between(existingEntity.getStartDate(), existingEntity.getClosingDate());
|
||||
activeDays -= existingEntity.getSuspendedDays() != null ? existingEntity.getSuspendedDays() : 0;
|
||||
existingEntity.setActiveDays(activeDays);
|
||||
log.debug("Calculated active days for ApplicationEvaluationEntity id {}: {}", existingEntity.getId(), activeDays);
|
||||
}
|
||||
entity = applicationEvaluationRepository.save(existingEntity);
|
||||
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||
@@ -1993,15 +2019,20 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
public ApplicationEvaluationEntity validateApplicationEvaluationByApplicationId(Long applicationId) {
|
||||
log.info("Validating ApplicationEvaluation for applicationId: {}", applicationId);
|
||||
return applicationEvaluationRepository
|
||||
.findByApplicationIdAndIsDeletedFalse(applicationId)
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
|
||||
Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND)));
|
||||
.orElseThrow(() -> {
|
||||
log.error("ApplicationEvaluation not found for applicationId: {}", applicationId);
|
||||
return new ResourceNotFoundException(Status.NOT_FOUND,
|
||||
Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND));
|
||||
});
|
||||
}
|
||||
|
||||
public ApplicationEvaluationResponse updateApplicationEvaluation(
|
||||
Long assignedApplicationId,
|
||||
List<EvaluationDocumentRequest> docRequest) {
|
||||
log.info("Starting updateApplicationEvaluation for assignedApplicationId: {}", assignedApplicationId);
|
||||
Optional<ApplicationEvaluationEntity> entityOptional=applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
||||
ApplicationEvaluationEntity applicationEvaluationEntity =null;
|
||||
ApplicationEvaluationEntity oldApplicationEvaluation = Utils.getClonedEntityForData(entityOptional.get());
|
||||
@@ -2023,14 +2054,17 @@ public class ApplicationEvaluationDao {
|
||||
applicationEvaluationEntity.setEvaluationDocument(updatedEvaluationDocJson);
|
||||
}
|
||||
ApplicationEvaluationEntity savedEntity = applicationEvaluationRepository.save(applicationEvaluationEntity);
|
||||
log.info("Saved ApplicationEvaluationEntity with id: {}", savedEntity.getId());
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Upload Document in Application Evaluation" operation. **/
|
||||
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluation).newData(savedEntity).build());
|
||||
log.info("Version history logged for update on ApplicationEvaluationEntity id: {}", savedEntity.getId());
|
||||
return convertToResponse(savedEntity);
|
||||
}
|
||||
|
||||
public ApplicationEvaluationFormResponse createApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationFormRequestBean applicationEvaluationFormRequestBean, Long evaluationFormId, Long assignedApplicationId){
|
||||
|
||||
|
||||
log.info("Start createApplicationEvaluation - assignedApplicationId: {}, evaluationFormId: {}", assignedApplicationId, evaluationFormId);
|
||||
UserEntity user = validator.validateUser(request);
|
||||
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsService.validateAssignedApplication(assignedApplicationId);
|
||||
ApplicationEntity application = applicationService.validateApplication(assignedApplicationsEntity.getApplication().getId());
|
||||
@@ -2094,6 +2128,7 @@ public class ApplicationEvaluationDao {
|
||||
String fieldId = requestField.getFieldId();
|
||||
|
||||
if (!contentMap.containsKey(fieldId)) {
|
||||
log.warn("Field ID not found in evaluation form: {}", fieldId);
|
||||
validator.addError(MessageFormat.format(Translator.toLocale(GepafinConstant.FIELD_ID_NOT_FOUND), fieldId));
|
||||
}
|
||||
|
||||
@@ -2121,6 +2156,7 @@ public class ApplicationEvaluationDao {
|
||||
ApplicationEvaluationFormEntity applicationEvaluationFormEntity,
|
||||
List<ApplicationEvaluationFormFieldEntity> applicationEvaluationFormFieldEntities,
|
||||
EvaluationFormEntity evaluationFormEntity,FieldValidator fieldValidator){
|
||||
log.debug("Starting createOrUpdateApplicationEvaluationFormField for fieldId: {}", applicationFormFieldRequestBean.getFieldId());
|
||||
ApplicationEvaluationFormFieldEntity applicationEvaluationFormFieldEntity = new ApplicationEvaluationFormFieldEntity();
|
||||
validateFileUploadDocuments(applicationFormFieldRequestBean, evaluationFormEntity);
|
||||
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||
@@ -2161,6 +2197,7 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
|
||||
private List<Long> validateFileUploadDocuments(ApplicationFormFieldRequestBean applicationFormFieldRequestBean, EvaluationFormEntity evaluationFormEntity) {
|
||||
log.debug("Validating file upload documents for fieldId: {}", applicationFormFieldRequestBean.getFieldId());
|
||||
List<Long> documentIds=null;
|
||||
|
||||
List<ContentResponseBean> contentResponseBeans=evaluationFormDao.convertEvaluationFormEntityToEvaluationFormResponseBean(evaluationFormEntity).getContent();
|
||||
@@ -2185,6 +2222,9 @@ public class ApplicationEvaluationDao {
|
||||
private List<ApplicationEvaluationFormFieldReponseBean> createEvaluationFormFieldResponse(
|
||||
List<ApplicationEvaluationFormFieldEntity> evaluationFormFieldEntities,
|
||||
ApplicationEvaluationFormEntity applicationEvaluationFormEntity){
|
||||
log.info("Starting to create evaluation form field response for EvaluationFormEntity ID: {}",
|
||||
applicationEvaluationFormEntity.getEvaluationForm().getId());
|
||||
|
||||
List<ApplicationEvaluationFormFieldReponseBean> evaluationFormFieldResponseBeans = new ArrayList<>();
|
||||
List<ContentResponseBean> contentResponseBeans =evaluationFormDao.convertEvaluationFormEntityToEvaluationFormResponseBean(applicationEvaluationFormEntity.getEvaluationForm()).getContent();
|
||||
|
||||
@@ -2276,6 +2316,7 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
public ApplicationEvaluationFormResponse getApplicationEvaluationForm(HttpServletRequest request, Long applicationId, Long assignedApplicationId ){
|
||||
|
||||
log.debug("Fetching evaluation form. applicationId: {}, assignedApplicationId: {}", applicationId, assignedApplicationId);
|
||||
if (applicationId == null && assignedApplicationId == null) {
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.EITHER_APPLICATION_ID_OR_ASSIGNED_APPLICATION_ID_MUST_BE_PROVIDED));
|
||||
}
|
||||
@@ -2505,6 +2546,7 @@ public class ApplicationEvaluationDao {
|
||||
return false;
|
||||
}
|
||||
private void processTechnicalEvaluation(Long applicationId, ApplicationEntity applicationEntity, ApplicationStatusForEvaluation status){
|
||||
log.info("Starting technical evaluation processing for applicationId: {}", applicationId);
|
||||
Optional<ApplicationEvaluationEntity> evaluationEntityOpt = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
||||
if (evaluationEntityOpt.isPresent()){
|
||||
ApplicationEvaluationEntity evaluationEntity = evaluationEntityOpt.get();
|
||||
@@ -2513,9 +2555,10 @@ public class ApplicationEvaluationDao {
|
||||
BigDecimal totalScore = calculateTotalScore(evaluationEntity.getCriteria());
|
||||
if (totalScore.compareTo(new BigDecimal("40")) > 0) {
|
||||
applicationEntity.setStatus(status.getValue());
|
||||
log.info("Status updated to TECHNICAL_EVALUATION for applicationId: " + applicationId);
|
||||
log.info("Status updated to TECHNICAL_EVALUATION for applicationId: {}", applicationId);
|
||||
}
|
||||
else{
|
||||
log.warn("Insufficient score ({}) for applicationId: {}. Throwing validation exception.", totalScore, applicationId);
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.INSUFFICIENT_SCORE_MESSAGE));
|
||||
}
|
||||
}
|
||||
@@ -2537,10 +2580,11 @@ public class ApplicationEvaluationDao {
|
||||
})
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
log.info("Total score calculated successfully: {}", totalScore);
|
||||
return totalScore;
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.error(" Error parsing criteria JSON: {}", e.getMessage());
|
||||
log.error("Error parsing criteria JSON. Input: {}. Exception: {}", criteriaJson, e.getMessage(), e);
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user