From 6d245ae7b62a20fa728d9cce258a434fe49b3b78 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 24 Oct 2023 13:32:07 +0300 Subject: [PATCH] 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); }