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

View File

@@ -79,4 +79,6 @@ public class ApplicationEntity extends BaseEntity {
@Column(name="VAT_NUMBER") @Column(name="VAT_NUMBER")
private String vatNumber; private String vatNumber;
@Column(name = "PREVIOUS_STATUS")
private String previousStatus;
} }

View File

@@ -161,7 +161,7 @@ public class ApplicationAmendmentScheduler {
public void updateApplicationStatus(ApplicationEntity applicationEntity){ public void updateApplicationStatus(ApplicationEntity applicationEntity){
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity); ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
applicationEntity.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue()); applicationEntity.setStatus(applicationEntity.getPreviousStatus());
applicationRepository.save(applicationEntity); applicationRepository.save(applicationEntity);
log.info("Updated status to EVALUATION for Application with ID: {}",applicationEntity.getId()); log.info("Updated status to EVALUATION for Application with ID: {}",applicationEntity.getId());

View File

@@ -3035,4 +3035,9 @@
<sqlFile dbms="postgresql" path="db/dump/insert_document_for_special_amendment.sql"/> <sqlFile dbms="postgresql" path="db/dump/insert_document_for_special_amendment.sql"/>
</changeSet> </changeSet>
<changeSet id="06-10-2025_RK_142435" author="Rajesh Khore">
<addColumn tableName="application">
<column name="previous_status" type="VARCHAR(255)"></column>
</addColumn>
</changeSet>
</databaseChangeLog> </databaseChangeLog>