diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index b0c4166d7..22326a2b9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -25,6 +25,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; @@ -33,6 +34,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.storage.commons.service.StorageService; @@ -57,6 +60,7 @@ public class DossierTemplateCloneService { private final WatermarkService watermarkService; private final ColorsService colorsService; private final StorageService storageService; + private final DossierStatusPersistenceService dossierStatusPersistenceService; public DossierTemplateEntity cloneDossierTemplate(String dossierTemplateId, String nameOfClonedDossierTemplate, String cloningUserId) { @@ -109,6 +113,9 @@ public class DossierTemplateCloneService { //set colors cloneColors(dossierTemplate.getId(), clonedDossierTemplate.getId()); + //set dossier status + cloneDossierStates(dossierTemplate.getId(), clonedDossierTemplate.getId()); + dossierTemplateRepository.save(clonedDossierTemplate); }, () -> { @@ -243,4 +250,20 @@ public class DossierTemplateCloneService { colorsService.saveColors(clonedColors); } + + private void cloneDossierStates(String dossierTemplateId, String clonedDossierTemplateId) { + + var states = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); + for (var state : states) { + var clonedState = CreateOrUpdateDossierStatusRequest.builder() + .name(state.getName()) + .description(state.getDescription()) + .color(state.getColor()) + .dossierTemplateId(clonedDossierTemplateId) + .rank(state.getRank()) + .build(); + dossierStatusPersistenceService.createOrUpdateDossierStatus(clonedState); + } + } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index 4332c40a6..647c85107 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -21,6 +21,7 @@ import org.springframework.boot.test.mock.mockito.MockBean; import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierAttributeConfigClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatusClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeConfigClient; import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient; @@ -50,6 +51,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Re import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType; @@ -88,6 +90,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { @Autowired private WatermarkClient watermarkClient; + @Autowired + private DossierStatusClient dossierStatusClient; + @Test public void testDossierTemplate() { @@ -185,8 +190,8 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .build(); var createdType1 = dictionaryClient.addType(type); var createdType2 = dictionaryClient.addType(type2); - var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getId(),null); - var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getId(),null); + var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getId(), null); + var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getId(), null); dictionaryClient.addEntries(loadedType1.getTypeId(), List.of("entry1", "entry2"), false, false, DictionaryEntryType.ENTRY); dictionaryClient.addEntries(loadedType2.getTypeId(), List.of("entry3", "entry4"), false, false, DictionaryEntryType.FALSE_POSITIVE); dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), List.of(DossierAttributeConfig.builder() @@ -225,7 +230,13 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .storageId("storageId") .uploadDate(OffsetDateTime.now()) .build(); - reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder().template("some text".getBytes(StandardCharsets.UTF_8)).dossierTemplateId(dossierTemplate.getId()).fileName("Report Template").activeByDefault(true).multiFileReport(false).build()); + reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder() + .template("some text".getBytes(StandardCharsets.UTF_8)) + .dossierTemplateId(dossierTemplate.getId()) + .fileName("Report Template") + .activeByDefault(true) + .multiFileReport(false) + .build()); watermarkClient.saveWatermark(dossierTemplate.getId(), Watermark.builder() .dossierTemplateId(dossierTemplate.getId()) .fontSize(10) @@ -250,6 +261,14 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .manualRedactionColor("#bbbbbb") .build(); dictionaryClient.setColors(dossierTemplate.getId(), col); + var dossierStatus = CreateOrUpdateDossierStatusRequest.builder() + .name("dossStatus1") + .description("dossier status description") + .color("#115599") + .rank(456) + .dossierTemplateId(dossierTemplate.getId()) + .build(); + dossierStatusClient.createOrUpdateDossierStatus(dossierStatus); var allTemplates = dossierTemplateClient.getAllDossierTemplates(); assertThat(allTemplates.size()).isEqualTo(1); @@ -267,13 +286,23 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getModifiedBy()).isEqualTo("user"); assertThat(loadedTemplate.getCreatedBy()).isEqualTo("user"); - assertThat(dossierAttributeConfigClient.getDossierAttributes(dossierTemplate.getId()).get(0).getLabel()).isEqualTo(dossierAttributeConfigClient.getDossierAttributes(clonedDT.getId()).get(0).getLabel()); - assertThat(fileAttributeConfigClient.getFileAttributeConfigs(dossierTemplate.getId()).get(0).getCsvColumnHeader()).isEqualTo(fileAttributeConfigClient.getFileAttributeConfigs(clonedDT.getId()).get(0).getCsvColumnHeader()); - assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId()).getFilenameMappingColumnHeaderName()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getFilenameMappingColumnHeaderName()); - assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()).get(0).getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName()); + assertThat(dossierAttributeConfigClient.getDossierAttributes(dossierTemplate.getId()) + .get(0) + .getLabel()).isEqualTo(dossierAttributeConfigClient.getDossierAttributes(clonedDT.getId()).get(0).getLabel()); + assertThat(fileAttributeConfigClient.getFileAttributeConfigs(dossierTemplate.getId()) + .get(0) + .getCsvColumnHeader()).isEqualTo(fileAttributeConfigClient.getFileAttributeConfigs(clonedDT.getId()).get(0).getCsvColumnHeader()); + assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId()) + .getFilenameMappingColumnHeaderName()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getFilenameMappingColumnHeaderName()); + assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()) + .get(0) + .getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName()); assertThat(watermarkClient.getWatermark(dossierTemplate.getId()).getText()).isEqualTo(watermarkClient.getWatermark(clonedDT.getId()).getText()); assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAdd()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAdd()); - assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId()).get(0).getRank()).isEqualTo(dictionaryClient.getAllTypesForDossierTemplate(clonedDT.getId()).get(0).getRank()); + assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId()) + .get(0) + .getRank()).isEqualTo(dictionaryClient.getAllTypesForDossierTemplate(clonedDT.getId()).get(0).getRank()); + assertThat(dossierStatusClient.getAllDossierStatuses(List.of(dossierTemplate.getId()))).isEqualTo(dossierStatusClient.getAllDossierStatuses(List.of(clonedDT.getId()))); } }