From 43e36ddff4446ff2cb312ed7d45ed78b7ec41a9d Mon Sep 17 00:00:00 2001 From: devplant Date: Fri, 30 Sep 2022 18:55:39 +0300 Subject: [PATCH] RED-2200 - Dossier Template export and import - fix problems for entries and file attribute primary flag. --- .../FileAttributeConfigPersistenceService.java | 5 +++++ .../repository/FileAttributeConfigRepository.java | 4 ++++ .../service/DossierTemplateImportService.java | 15 +++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java index 44fae6cbb..c8bd3500f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java @@ -65,6 +65,11 @@ public class FileAttributeConfigPersistenceService { } } + @Transactional + public void updatePrimaryAttribute(String fileAttribute) { + fileAttributeConfigRepository.updatePrimaryAttributeValueToTrue(fileAttribute); + } + public FileAttributesGeneralConfigurationEntity setFileAttributesGeneralConfig(String dossierTemplateId, FileAttributesGeneralConfigurationEntity fileAttributesConfig) { fileAttributesConfig.setDossierTemplateId(dossierTemplateId); fileAttributesConfig.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId)); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java index a40232d67..b2b15366a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java @@ -16,6 +16,10 @@ public interface FileAttributeConfigRepository extends JpaRepository findByIdOrDossierTemplateIdAndLabel(String dossierTemplateId, String fileAttributeId, String label); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java index 9e1960de1..17d8e6afa 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java @@ -244,9 +244,9 @@ public class DossierTemplateImportService { return dossierTemplateId; } - private void addEntries(Map> entries, String typeId, String initialTypeId, DictionaryEntryType dictionaryType) { - if (entries != null && !entries.isEmpty() && entries.get(initialTypeId) != null && !entries.get(initialTypeId).isEmpty()) { - dictionaryService.addEntries(typeId, entries.get(initialTypeId), true, true, dictionaryType); + private void addEntries(Map> entries, String typeId, String typeName, DictionaryEntryType dictionaryType) { + if (entries != null && !entries.isEmpty() && entries.get(typeName) != null && !entries.get(typeName).isEmpty()) { + dictionaryService.addEntries(typeId, entries.get(typeName), true, true, dictionaryType); } else { // no entries, delete current entries List existing = entryPersistenceService.getEntries(typeId, dictionaryType, null) .stream() @@ -342,9 +342,9 @@ public class DossierTemplateImportService { } typeIdsAdded.add(typeId); - this.addEntries(request.getEntries(), typeId, type.getTypeId(), DictionaryEntryType.ENTRY); - this.addEntries(request.getFalsePositives(), typeId, type.getTypeId(), DictionaryEntryType.FALSE_POSITIVE); - this.addEntries(request.getFalseRecommendations(), typeId, type.getTypeId(), DictionaryEntryType.FALSE_RECOMMENDATION); + this.addEntries(request.getEntries(), typeId, type.getType(), DictionaryEntryType.ENTRY); + this.addEntries(request.getFalsePositives(), typeId, type.getType(), DictionaryEntryType.FALSE_POSITIVE); + this.addEntries(request.getFalseRecommendations(), typeId, type.getType(), DictionaryEntryType.FALSE_RECOMMENDATION); } // remove additional types and not included in the archive this.deleteTypes(currentTypes, typeIdsAdded); @@ -416,6 +416,9 @@ public class DossierTemplateImportService { fa.setId(fileAttributeConfigPersistenceService.getFileAttributeByIdOrName(dossierTemplateId, fa.getId(), fa.getLabel())); FileAttributeConfigEntity fileAttributeAdded = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); fileAttributeIdsAdded.add(fileAttributeAdded.getId()); + if (fa.isPrimaryAttribute()) { + fileAttributeConfigPersistenceService.updatePrimaryAttribute(fileAttributeAdded.getId()); + } }); // remove existing file attributes and not included in archive Set attributesToRemove = currentFileAttributeIds.stream().filter(fa -> !fileAttributeIdsAdded.contains(fa)).collect(Collectors.toSet());