From 6d245ae7b62a20fa728d9cce258a434fe49b3b78 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 24 Oct 2023 13:32:07 +0300 Subject: [PATCH 1/3] RED-7812 - Dossier template will be renamed every time after each import - when checking for the existence of the dossier template name ignore the dossier template id of the one that will be replaced --- .../v1/processor/service/DossierTemplateImportService.java | 3 ++- .../persistence/DossierTemplatePersistenceService.java | 6 +++--- .../persistence/repository/DossierTemplateRepository.java | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index e0e467632..17a5ed46f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -556,6 +556,7 @@ public class DossierTemplateImportService { private void updateDossierTemplateMeta(DossierTemplateEntity dossierTemplateEntity, DossierTemplate dossierTemplate, String userId) { + dossierTemplate.setId(dossierTemplateEntity.getId()); if (!dossierTemplateEntity.getName().equalsIgnoreCase(dossierTemplate.getName())) { this.validateDossierTemplateName(dossierTemplate); } @@ -714,7 +715,7 @@ public class DossierTemplateImportService { int nameSuffix = 0; String dossierTemplateName = dossierTemplateMeta.getName(); - while (dossierTemplatePersistenceService.isDossierTemplateNameNotUnique(dossierTemplateMeta.getName())) { + while (dossierTemplatePersistenceService.isDossierTemplateNameNotUnique(dossierTemplateMeta.getName(), dossierTemplateMeta.getId())) { if (nameSuffix == 0) { dossierTemplateMeta.setName("Copy of " + dossierTemplateName); } else { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index 52ff50436..79f743e0b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -90,7 +90,7 @@ public class DossierTemplatePersistenceService { @Transactional public void validateDossierTemplateNameIsUnique(String templateName) { - if (isDossierTemplateNameNotUnique(templateName)) { + if (isDossierTemplateNameNotUnique(templateName, null)) { throw new ConflictException("DossierTemplate name must be unique"); } } @@ -109,9 +109,9 @@ public class DossierTemplatePersistenceService { @Transactional - public boolean isDossierTemplateNameNotUnique(String templateName) { + public boolean isDossierTemplateNameNotUnique(String templateName, String dossierTemplateIdToIgnore) { - return dossierTemplateRepository.existsByName(templateName); + return dossierTemplateRepository.existsByNameAndIdNot(templateName, dossierTemplateIdToIgnore); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java index b8f9348e5..057d20ca4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java @@ -18,6 +18,6 @@ public interface DossierTemplateRepository extends JpaRepository findByIdAndNotDeleted(String dossierTemplateId); - boolean existsByName(String name); + boolean existsByNameAndIdNot(String name, String id); } -- 2.47.2 From 5a3432e6c6d2a9744a094905ceef91eef53d90a5 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 24 Oct 2023 15:15:27 +0300 Subject: [PATCH 2/3] RED-7812 - Dossier template will be renamed every time after each import - put back the checking by name for the other cases (when cloning, creating, updating a dossier template) --- .../persistence/DossierTemplatePersistenceService.java | 10 ++++++++-- .../repository/DossierTemplateRepository.java | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index 79f743e0b..9eaf511b2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -89,8 +89,9 @@ public class DossierTemplatePersistenceService { @Transactional public void validateDossierTemplateNameIsUnique(String templateName) { - - if (isDossierTemplateNameNotUnique(templateName, null)) { + var isUnique = isDossierTemplateNameNotUnique(templateName); + log.info("validateDossierTemplateNameIsUnique {} - {}", isUnique, templateName); + if (isUnique) { throw new ConflictException("DossierTemplate name must be unique"); } } @@ -114,6 +115,11 @@ public class DossierTemplatePersistenceService { return dossierTemplateRepository.existsByNameAndIdNot(templateName, dossierTemplateIdToIgnore); } + @Transactional + public boolean isDossierTemplateNameNotUnique(String templateName) { + return dossierTemplateRepository.existsByName(templateName); + } + @Transactional public DossierTemplateStatus computeDossierTemplateStatus(DossierTemplateEntity dossierTemplate) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java index 057d20ca4..61fca2f2f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java @@ -17,6 +17,7 @@ public interface DossierTemplateRepository extends JpaRepository findByIdAndNotDeleted(String dossierTemplateId); + boolean existsByName(String name); boolean existsByNameAndIdNot(String name, String id); -- 2.47.2 From 8eac48206ba5345a5f478cf265979a9e6abb0d10 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 24 Oct 2023 15:24:08 +0300 Subject: [PATCH 3/3] RED-7812 - Dossier template will be renamed every time after each import - remove unnecessary logs --- .../persistence/DossierTemplatePersistenceService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index 9eaf511b2..cc3c0d40b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -89,9 +89,8 @@ public class DossierTemplatePersistenceService { @Transactional public void validateDossierTemplateNameIsUnique(String templateName) { - var isUnique = isDossierTemplateNameNotUnique(templateName); - log.info("validateDossierTemplateNameIsUnique {} - {}", isUnique, templateName); - if (isUnique) { + + if (isDossierTemplateNameNotUnique(templateName)) { throw new ConflictException("DossierTemplate name must be unique"); } } @@ -117,6 +116,7 @@ public class DossierTemplatePersistenceService { @Transactional public boolean isDossierTemplateNameNotUnique(String templateName) { + return dossierTemplateRepository.existsByName(templateName); } -- 2.47.2