From 162c87e0d5cbddbdbc1b03f0d781c5a7a85254e5 Mon Sep 17 00:00:00 2001 From: rajesh Date: Fri, 18 Oct 2024 15:27:56 +0530 Subject: [PATCH] updated code --- .../constants/GepafinConstant.java | 1 + .../net/gepafin/tendermanagement/dao/CallDao.java | 8 ++++++-- .../dao/EvaluationCriteriaDao.java | 7 +++++-- .../net/gepafin/tendermanagement/dao/FormDao.java | 14 ++++++++++---- .../entities/CriteriaFormFieldEntity.java | 4 ++++ .../repositories/CriteriaFormFieldRepository.java | 4 ++-- .../resources/db/changelog/db.changelog-1.0.0.xml | 12 ++++++------ src/main/resources/message_en.properties | 2 ++ src/main/resources/message_it.properties | 2 ++ 9 files changed, 38 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index 38121a98..2ffb9604 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -233,5 +233,6 @@ public class GepafinConstant { public static final String CANNOT_DELETE_COMPANY_WITH_APPLICATION_SUBMITT = "application.in.submit.status.cannot.delete.company"; public static final String GET_USERS_SUCCESS_MSG = "get.users.success.msg"; public static final String CANNOT_CREATE_BENEFICIARY_USER="cannot.create.beneficiary.user"; + public static final String EVALUATIONCRITERIA_INVALID = "evaluationCriteria.invalid"; } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java index 1a5e78da..3bba946a 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java @@ -212,8 +212,12 @@ public class CallDao { private void softDeleteEvaluationCriteria(EvaluationCriteriaEntity evaluationCriteriaEntity) { evaluationCriteriaEntity.setIsDeleted(true); evaluationCriteriaRepository.save(evaluationCriteriaEntity); - List list = criteriaFormFieldRepository.findByEvaluationCriteriaId(evaluationCriteriaEntity.getId()); - criteriaFormFieldRepository.deleteAll(list); + List list = criteriaFormFieldRepository + .findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId()) + .stream() + .peek(data -> data.setIsDeleted(Boolean.TRUE)) + .toList(); + criteriaFormFieldRepository.saveAll(list); } private EvaluationCriteriaEntity convertToEvaluationCriteriaEntity(EvaluationCriteriaReq criteriaReq, diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java index fbb0a7ba..b865121e 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java @@ -81,8 +81,11 @@ public class EvaluationCriteriaDao { EvaluationCriteriaEntity evaluationCriteriaEntity = validateEvaluationCriteria(id); evaluationCriteriaEntity.setIsDeleted(Boolean.TRUE); evaluationCriteriaRepository.save(evaluationCriteriaEntity); - List list = criteriaFormFieldRepository.findByEvaluationCriteriaId(evaluationCriteriaEntity.getId()); - criteriaFormFieldRepository.deleteAll(list); + List list = criteriaFormFieldRepository.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaEntity.getId()) + .stream() + .peek(data -> data.setIsDeleted(Boolean.TRUE)) + .toList();; + criteriaFormFieldRepository.saveAll(list); } private EvaluationCriteriaResponseBean convertEvaluationCriteriaEntityEvaluationCriteriaToResponseBean( diff --git a/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java b/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java index c13545c2..5c43855e 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/FormDao.java @@ -92,7 +92,7 @@ public class FormDao { ContentResponseBean.class); contentList.forEach(data -> { List criteriaIds = criteriaFormFieldRepository - .findByCallIdAndFormIdAndFormFieldId(formEntity.getCall().getId(), formEntity.getId(), data.getId()) + .findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(formEntity.getCall().getId(), formEntity.getId(), data.getId()) .stream().map(CriteriaFormFieldEntity::getEvaluationCriteriaId).toList(); data.setCriteria(criteriaIds); }); @@ -122,7 +122,7 @@ public class FormDao { contentResponseBeans.forEach(content -> { // Fetch existing records from the repository based on the call, form, and field ID List existingCriteriaFields = criteriaFormFieldRepository - .findByCallIdAndFormIdAndFormFieldId(callEntity.getId(), formEntity.getId(), content.getId()); + .findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(callEntity.getId(), formEntity.getId(), content.getId()); // Extract existing evaluation criteria IDs into a set for quick lookup Set existingEvaluationCriteriaIds = existingCriteriaFields.stream() @@ -139,10 +139,11 @@ public class FormDao { List toBeDeleted = existingCriteriaFields.stream() .filter(criteriaFormField -> !criteriaList.contains(criteriaFormField.getEvaluationCriteriaId())) + .peek(data->data.setIsDeleted(Boolean.TRUE)) .collect(Collectors.toList()); if (!toBeDeleted.isEmpty()) { - criteriaFormFieldRepository.deleteAll(toBeDeleted); + criteriaFormFieldRepository.saveAll(toBeDeleted); } }); } @@ -150,11 +151,16 @@ public class FormDao { private void createCriteriaFormField(CallEntity callEntity, FormEntity formEntity, String formFieldId,Long evaluationCriteriaId) { - evaluationCriteriaService.validateEvaluationCriteria(evaluationCriteriaId); + EvaluationCriteriaEntity evaluationCriteria = evaluationCriteriaService.validateEvaluationCriteria(evaluationCriteriaId); + if (Boolean.FALSE.equals(evaluationCriteria.getCall().getId().equals(callEntity.getId()))) { + throw new CustomValidationException(Status.VALIDATION_ERROR, + Translator.toLocale(GepafinConstant.EVALUATIONCRITERIA_INVALID)); + } CriteriaFormFieldEntity criteriaFormField = new CriteriaFormFieldEntity(); criteriaFormField.setCallId(callEntity.getId()); criteriaFormField.setFormId(formEntity.getId()); criteriaFormField.setFormFieldId(formFieldId); + criteriaFormField.setIsDeleted(Boolean.FALSE); criteriaFormField.setEvaluationCriteriaId(evaluationCriteriaId); criteriaFormFieldRepository.save(criteriaFormField); diff --git a/src/main/java/net/gepafin/tendermanagement/entities/CriteriaFormFieldEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/CriteriaFormFieldEntity.java index 72876b92..1177bbd2 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/CriteriaFormFieldEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/CriteriaFormFieldEntity.java @@ -1,5 +1,6 @@ package net.gepafin.tendermanagement.entities; +import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import lombok.Data; @@ -16,5 +17,8 @@ public class CriteriaFormFieldEntity extends BaseEntity { private String formFieldId; private Long evaluationCriteriaId; + + @Column(name ="IS_DELETED", nullable = false) + private Boolean isDeleted = false; } diff --git a/src/main/java/net/gepafin/tendermanagement/repositories/CriteriaFormFieldRepository.java b/src/main/java/net/gepafin/tendermanagement/repositories/CriteriaFormFieldRepository.java index 88f67da8..7f63d5e2 100644 --- a/src/main/java/net/gepafin/tendermanagement/repositories/CriteriaFormFieldRepository.java +++ b/src/main/java/net/gepafin/tendermanagement/repositories/CriteriaFormFieldRepository.java @@ -10,8 +10,8 @@ import net.gepafin.tendermanagement.entities.CriteriaFormFieldEntity; @Repository public interface CriteriaFormFieldRepository extends JpaRepository{ - List findByCallIdAndFormIdAndFormFieldId(Long callId, Long formId, String formFieldId); + List findByCallIdAndFormIdAndFormFieldIdAndIsDeletedFalse(Long callId, Long formId, String formFieldId); - List findByEvaluationCriteriaId(Long evaluationCriteriaId); + List findByEvaluationCriteriaIdAndIsDeletedFalse(Long evaluationCriteriaId); } 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 75455b59..5aada016 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 @@ -1113,6 +1113,9 @@ + + + @@ -1121,22 +1124,19 @@ baseColumnNames="call_id" referencedTableName="call" referencedColumnNames="id" - constraintName="fk_criteria_form_field_call_id" - onDelete="CASCADE"/> + constraintName="fk_criteria_form_field_call_id"/> + constraintName="fk_criteria_form_field_form_id"/> + constraintName="fk_criteria_form_field_evaluation_criteria_id"/> diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index 683e335c..4ba49d72 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -253,6 +253,8 @@ get_login_attempt_se_msg=Login attempts fetched successfully. application.in.submit.status.cannot.delete.company=The company cannot be deleted because there are active applications in the SUBMITTED status. get.users.success.msg = Successfully fetched users. cannot.create.beneficiary.user = Creation of a Beneficiary user is not allowed. Please assign the appropriate role. +evaluationCriteria.invalid=This evaluation criterion does not belong to the current call. + diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index 4731e451..7c9dd9bc 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -250,4 +250,6 @@ application.in.submit.status.cannot.delete.company=Non get.users.success.msg = Utenti recuperati con successo cannot.create.beneficiary.user = La creazione di un utente beneficiario non è consentita. Si prega di assegnare il ruolo appropriato. +evaluationCriteria.invalid=Questo criterio di valutazione non appartiene alla chiamata corrente. +