From ef0145bcc21cbb51c7500578ace4002dcbd8f3ea Mon Sep 17 00:00:00 2001 From: Piyush Date: Tue, 25 Mar 2025 16:22:28 +0530 Subject: [PATCH 1/3] Remove Validation and set applicationSignedDocument Status to INACTIVE --- .../net/gepafin/tendermanagement/dao/ApplicationDao.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index bfec7c1d..a639a818 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -1180,9 +1180,8 @@ public class ApplicationDao { ApplicationSignedDocumentEntity oldApplicationSingedDocumentData = Utils.getClonedEntityForData(applicationSignedDocument); if (applicationSignedDocument != null) { - throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED)); - // applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue()); - // applicationSignedDocumentRepository.save(applicationSignedDocument); + applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue()); + applicationSignedDocumentRepository.save(applicationSignedDocument); } UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file, applicationEntity.getCall().getId(), applicationId); applicationSignedDocument = new ApplicationSignedDocumentEntity(); From c9fab88a6e8b6fe5f7e4845123067dd98147b0fb Mon Sep 17 00:00:00 2001 From: Piyush Date: Tue, 25 Mar 2025 20:05:18 +0530 Subject: [PATCH 2/3] Moved signed document to deleted folder --- .../tendermanagement/dao/ApplicationDao.java | 16 ++++++++++++++-- .../enums/DocOtherSourceTypeEnum.java | 3 ++- .../db/changelog/db.changelog-1.0.0.xml | 11 +++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index a639a818..57ae08f6 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -1180,8 +1180,7 @@ public class ApplicationDao { ApplicationSignedDocumentEntity oldApplicationSingedDocumentData = Utils.getClonedEntityForData(applicationSignedDocument); if (applicationSignedDocument != null) { - applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue()); - applicationSignedDocumentRepository.save(applicationSignedDocument); + deleteSignedDocumentFromS3(applicationSignedDocument); } UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file, applicationEntity.getCall().getId(), applicationId); applicationSignedDocument = new ApplicationSignedDocumentEntity(); @@ -1204,6 +1203,19 @@ public class ApplicationDao { return convertApplicationSignedDocumentToApplicationSignedDocumentResponse(applicationSignedDocument); } + public void deleteSignedDocumentFromS3(ApplicationSignedDocumentEntity applicationSignedDocumentEntity){ + ApplicationSignedDocumentEntity oldApplicationSignedDocument = Utils.getClonedEntityForData(applicationSignedDocumentEntity); + String oldS3Path = applicationSignedDocumentEntity.getFilePath(); + String newS3Path = s3ConfigBean.generateDocumentPathForOther(DocOtherSourceTypeEnum.DELETED_USER_SIGNED_DOCUMENT,applicationSignedDocumentEntity.getApplication().getCall().getId(),applicationSignedDocumentEntity.getApplication().getId(),0L); + + UploadFileOnAmazonS3Response response = amazonS3Service.moveFile(applicationSignedDocumentEntity.getFileName(), oldS3Path, newS3Path); + applicationSignedDocumentEntity.setStatus(ApplicationSignedDocumentStatusEnum.INACTIVE.getValue()); + applicationSignedDocumentEntity.setFileName(response.getFileName()); + applicationSignedDocumentEntity.setFilePath(response.getFilePath()); + + applicationSignedDocumentRepository.save(applicationSignedDocumentEntity); + loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldApplicationSignedDocument).newData(applicationSignedDocumentEntity).build()); + } private void validateFileTypeForCall(MultipartFile file, ApplicationEntity applicationEntity) { List validCallIds = Arrays.asList(callId.split(",")); diff --git a/src/main/java/net/gepafin/tendermanagement/enums/DocOtherSourceTypeEnum.java b/src/main/java/net/gepafin/tendermanagement/enums/DocOtherSourceTypeEnum.java index 05b42e3b..3746c7b1 100644 --- a/src/main/java/net/gepafin/tendermanagement/enums/DocOtherSourceTypeEnum.java +++ b/src/main/java/net/gepafin/tendermanagement/enums/DocOtherSourceTypeEnum.java @@ -8,7 +8,8 @@ public enum DocOtherSourceTypeEnum { DELETED_APPLICATION("DELETED_APPLICATION"), DELETED_EVALUATION("DELETED_EVALUATION"), DELETED_CALL("DELETED_CALL"), - DELETED_AMENDMENT("DELETED_AMENDMENT"); + DELETED_AMENDMENT("DELETED_AMENDMENT"), + DELETED_USER_SIGNED_DOCUMENT("DELETED_USER_SIGNED_DOCUMENT"); private String value; diff --git a/src/main/resources/db/changelog/db.changelog-1.0.0.xml b/src/main/resources/db/changelog/db.changelog-1.0.0.xml index 568c4030..19a44408 100644 --- a/src/main/resources/db/changelog/db.changelog-1.0.0.xml +++ b/src/main/resources/db/changelog/db.changelog-1.0.0.xml @@ -2675,4 +2675,15 @@ + + + + + + + + + + + From 12a5ec48b2b2150e60127df499c7ee233e440e8d Mon Sep 17 00:00:00 2001 From: nisha Date: Wed, 26 Mar 2025 15:22:22 +0530 Subject: [PATCH 3/3] Done ticket GEPAFINBE-197 --- .../net/gepafin/tendermanagement/dao/ApplicationDao.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 57ae08f6..df638fa8 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -964,6 +964,13 @@ public class ApplicationDao { applicationEntity.setStatus(status.getValue()); log.info("Status updated to DRAFT for applicationId: " + applicationId); } + if (status.equals(ApplicationStatusTypeEnum.AWAITING) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.READY.getValue()))) { + ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository.findByApplicationIdAndStatus(applicationId, + ApplicationSignedDocumentStatusEnum.ACTIVE.getValue()); + deleteSignedDocumentFromS3(applicationSignedDocument); + applicationEntity.setStatus(status.getValue()); + log.info("Status updated to AWAITING for applicationId: " + applicationId); + } applicationEntity = applicationRepository.save(applicationEntity); log.info("Application status updated successfully | applicationId: {}, newStatus: {}", applicationId, applicationEntity.getStatus());