Merge pull request #352 from Kitzanos/feature/GEPAFINBE-6139-1

Manage application status during amendment
This commit is contained in:
Rinaldo
2025-10-14 08:22:21 +02:00
committed by GitHub
4 changed files with 28 additions and 16 deletions

View File

@@ -337,6 +337,7 @@ public class ApplicationAmendmentRequestDao {
applicationAmendmentRequestEntity.setIsNotification(applicationAmendmentRequest.getIsSendNotification());
applicationAmendmentRequestEntity.setStartDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
applicationAmendmentRequestEntity.setStatus(ApplicationAmendmentRequestEnum.AWAITING.getValue());
applicationAmendmentRequestEntity.setType(ApplicationAmendmentRequestTypeEnum.REGULAR.getValue());
ApplicationEvaluationEntity applicationEvaluationEntity = applicationEvaluationService.validateApplicationEvaluation(applicationEvaluationId);
//cloned for old data entity
ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(applicationEvaluationEntity);
@@ -345,7 +346,8 @@ public class ApplicationAmendmentRequestDao {
Long applicationId = applicationEvaluationEntity.getApplicationId();
Long assignedApplicationId = applicationEvaluationEntity.getAssignedApplicationsEntity().getId();
applicationAmendmentRequestEntity.setApplicationId(applicationId);
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationId);
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
if (applicationAmendmentRequest.getFormFields() != null) {
List<AmendmentFormField> formFieldRequestBean = applicationAmendmentRequest.getFormFields().stream()
.filter(AmendmentFormFieldResponse::isSelected)
@@ -362,18 +364,22 @@ public class ApplicationAmendmentRequestDao {
}
List<ApplicationAmendmentRequestEntity> amendmentRequest = applicationAmendmentRequestRepository.findAllByApplicationEvaluationIdAndIsDeletedFalse(applicationEvaluationEntity.getId());
// Ensure startDate and initialDays are not null to avoid NullPointerException
if (amendmentRequest !=null && amendmentRequest.isEmpty() && applicationEvaluationEntity.getStartDate() != null && applicationEvaluationEntity.getInitialDays() != null ) {
Long initialDays = applicationEvaluationEntity.getInitialDays();
LocalDateTime startDate = applicationEvaluationEntity.getStartDate();
LocalDateTime nowInUTC = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
// Calculate remaining days
Long remainingDays = initialDays - DAYS.between(startDate, nowInUTC);
// Set remaining days in the entity
applicationEvaluationEntity.setRemainingDays(remainingDays);
//Set stop date time in the entity becuase amendment has started
applicationEvaluationEntity.setStopDateTime(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
if (amendmentRequest !=null && amendmentRequest.isEmpty()) {
if (applicationEvaluationEntity.getStartDate() != null && applicationEvaluationEntity.getInitialDays() != null) {
Long initialDays = applicationEvaluationEntity.getInitialDays();
LocalDateTime startDate = applicationEvaluationEntity.getStartDate();
LocalDateTime nowInUTC = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
// Calculate remaining days
Long remainingDays = initialDays - DAYS.between(startDate, nowInUTC);
// Set remaining days in the entity
applicationEvaluationEntity.setRemainingDays(remainingDays);
//Set stop date time in the entity becuase amendment has started
applicationEvaluationEntity.setStopDateTime(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
}
applicationEntity.setPreviousStatus(oldApplicationEntity.getStatus());
}
UserEntity userEntity = userService.validateUser(applicationEvaluationEntity.getUserId());
Long protocolNumber = protocolDao.getProtocolNumber(userEntity.getHub());
ProtocolEntity protocolEntity = protocolDao.createProtocolEntity(
@@ -396,8 +402,7 @@ public class ApplicationAmendmentRequestDao {
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluationEntity).newData(applicationEvaluationEntity).build());
}
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationId);
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
String applicationStatusType = applicationEntity.getStatus();
if (Boolean.FALSE.equals(applicationStatusType.equals((ApplicationStatusTypeEnum.SOCCORSO.getValue())))) {
applicationEntity.setStatus(ApplicationStatusTypeEnum.SOCCORSO.getValue());
@@ -1116,10 +1121,10 @@ public class ApplicationAmendmentRequestDao {
log.info("Updated ApplicationEvaluation status to OPEN for ID: {}", existingApplicationEvaluationEntity.getId());
if(Boolean.FALSE.equals(existingApplicationAmendment.getType().equals(ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue()))){
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
application.setStatus(application.getPreviousStatus());
}
applicationRepository.save(application);
log.info("Updated Application status to EVALUATION for Application ID: {}", application.getId());
log.info("Updated Application status to previous state for Application ID: {}", application.getId());
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().setStatus(AssignedApplicationEnum.OPEN.getValue());