Merge pull request #394 from Kitzanos/feature/GEPAFINBE-6425-prod

Cherry-pick (Fixed application status issue)
This commit is contained in:
Rinaldo
2026-04-13 14:23:52 +02:00
committed by GitHub
2 changed files with 22 additions and 15 deletions

View File

@@ -1164,15 +1164,12 @@ public class ApplicationAmendmentRequestDao {
applicationEvaluationRepository.save(existingApplicationAmendment.getApplicationEvaluationEntity());
log.info("Updated ApplicationEvaluation status to OPEN for ID: {}", existingApplicationEvaluationEntity.getId());
String previousApplicationStatus = application.getPreviousStatus();
if (previousApplicationStatus != null) {
application.setStatus(previousApplicationStatus);
} else if (ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue().equals(existingApplicationAmendment.getType())) {
application.setStatus(ApplicationStatusTypeEnum.ADMISSIBLE.getValue());
log.warn("Special amendment close: previousStatus was null for applicationId={}, defaulting to ADMISSIBLE", application.getId());
if(Boolean.FALSE.equals(existingApplicationAmendment.getType().equals(ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue()))){
application.setStatus(application.getPreviousStatus());
applicationRepository.save(application);
loggingUtil.addVersionHistory(
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntityData).newData(application).build());
}
applicationRepository.save(application);
log.info("Updated Application status to previous state for Application ID: {}", application.getId());
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().setStatus(AssignedApplicationEnum.OPEN.getValue());
@@ -1193,9 +1190,6 @@ public class ApplicationAmendmentRequestDao {
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluationEntity)
.newData(existingApplicationEvaluationEntity).build());
/** This code is responsible for adding a version history log for the "Update Application status" operation. **/
loggingUtil.addVersionHistory(
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntityData).newData(application).build());
/** This code is responsible for adding a version history log for the "Update assigned application " operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldAssignedApplicationData)

View File

@@ -24,8 +24,8 @@ import org.springframework.stereotype.Component;
import net.gepafin.tendermanagement.entities.ApplicationAmendmentRequestEntity;
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestEnum;
import net.gepafin.tendermanagement.enums.ApplicationAmendmentRequestTypeEnum;
import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
import net.gepafin.tendermanagement.enums.NotificationTypeEnum;
import net.gepafin.tendermanagement.enums.UserActionContextEnum;
@@ -129,9 +129,22 @@ public class ApplicationAmendmentScheduler {
// Update AssignedApplicationsEntity status
updateAssignedApplicationStatus(evaluation.getAssignedApplicationsEntity());
// Update ApplicationEntity status
updateApplicationStatus(evaluation.getAssignedApplicationsEntity().getApplication());
// Skip application status restore only when every amendment expired *in this run* for this
// evaluation is SPECIAL. (Do not use all amendments on the eval — a closed non-SPECIAL
// record from the past would wrongly force a previousStatus restore after special expiry.)
List<ApplicationAmendmentRequestEntity> expiredThisRunForEval = amendmentRequests.stream()
.filter(req -> req.getApplicationEvaluationEntity().getId().equals(evaluation.getId()))
.toList();
boolean skipApplicationStatusRestore = !expiredThisRunForEval.isEmpty()
&& expiredThisRunForEval.stream()
.allMatch(req -> ApplicationAmendmentRequestTypeEnum.SPECIAL.getValue().equals(req.getType()));
if (!skipApplicationStatusRestore) {
updateApplicationStatus(evaluation.getAssignedApplicationsEntity().getApplication());
} else {
log.info(
"Amendment expiration: skipping Application status restore (all amendments expired this run are SPECIAL), evaluationId={}",
evaluation.getId());
}
log.info("Updated EndDate and suspension days for ApplicationEvaluation with ID: {}",
evaluation.getId());