diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java index 248806af3..7ffcf8bc7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java @@ -446,4 +446,10 @@ public class DictionaryManagementService { return dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId); } + + public void hardDeleteByDossierId(String dossierId) { + + dictionaryPersistenceService.hardDeleteTypesByDossierId(dossierId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java index 210029729..2ba896148 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java @@ -14,6 +14,7 @@ public class DossierDeletionService { private final FileDeletionService fileDeletionService; private final DossierService dossierService; + private final DictionaryManagementService dictionaryManagementService; @Transactional @@ -48,6 +49,7 @@ public class DossierDeletionService { public void deleteAllDossiersInTemplate(String dossierId) { fileDeletionService.hardDeleteFilesAndDataByDossierId(dossierId); + dictionaryManagementService.hardDeleteByDossierId(dossierId); dossierService.hardDeleteDossier(dossierId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java index 2160e4740..b438c9dc6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; @@ -26,6 +27,7 @@ public class DossierTemplateManagementService { private final DossierDeletionService dossierDeletionService; private final DictionaryManagementService dictionaryManagementService; private final ComponentMappingService componentMappingService; + private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; public DossierTemplate createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest dossierTemplate) { @@ -48,6 +50,7 @@ public class DossierTemplateManagementService { public void deleteDossierTemplateCompletely(String dossierTemplateId) { + fileAttributeConfigPersistenceService.deleteByDossierTemplateId(dossierTemplateId); dictionaryManagementService.hardDeleteByDossierTemplateId(dossierTemplateId); componentMappingService.deleteByDossierTemplateId(dossierTemplateId); dossierDeletionService.deleteAllDossiersInTemplate(dossierTemplateId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index 93d90f097..2d5124d5d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -348,4 +348,15 @@ public class DictionaryPersistenceService { } } + + public void hardDeleteTypesByDossierId(String dossierId) { + + for (TypeEntity typeEntity : typeRepository.findByDossierId(dossierId)) { + entryRepository.deleteAllByTypeId(typeEntity.getType()); + falsePositiveEntryRepository.deleteAllByTypeId(typeEntity.getType()); + falseRecommendationEntryRepository.deleteAllByTypeId(typeEntity.getType()); + typeRepository.deleteById(typeEntity.getId()); + } + } + } 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 c37aede92..a48006378 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 @@ -174,6 +174,15 @@ public class FileAttributeConfigPersistenceService { } + @Transactional + public void deleteByDossierTemplateId(String dossierTemplateId) { + + for (FileAttributeConfigEntity fileAttribute : getFileAttributes(dossierTemplateId)) { + deleteFileAttribute(fileAttribute.getId()); + } + } + + @Transactional public void deleteFileAttribute(String fileAttributeId) {