From 5aa342bd057c5119164c03e6608fc40a73a8acc1 Mon Sep 17 00:00:00 2001 From: rajesh Date: Mon, 13 Apr 2026 17:05:10 +0530 Subject: [PATCH] Resolved conflict --- .../dao/ApplicationAmendmentRequestDao.java | 8 +++---- .../ApplicationAmendmentScheduler.java | 21 +++++++++++++++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java index ae26a2a1..2951ded4 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationAmendmentRequestDao.java @@ -1166,9 +1166,10 @@ public class ApplicationAmendmentRequestDao { 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()); @@ -1189,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) diff --git a/src/main/java/net/gepafin/tendermanagement/scheduler/ApplicationAmendmentScheduler.java b/src/main/java/net/gepafin/tendermanagement/scheduler/ApplicationAmendmentScheduler.java index b96eb137..7ba784e2 100644 --- a/src/main/java/net/gepafin/tendermanagement/scheduler/ApplicationAmendmentScheduler.java +++ b/src/main/java/net/gepafin/tendermanagement/scheduler/ApplicationAmendmentScheduler.java @@ -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 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());