diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 661479859..caedb5b57 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -390,7 +390,7 @@ public class EntityLogMergeService { boolean isHint = isHint(recategorization.getType(), dossier); entityLogEntry.setType(recategorization.getType()); entityLogEntry.setEntryType(getEntryType(isHint, recategorization.getType())); - entityLogEntry.setState(EntryState.SKIPPED); + entityLogEntry.setState(isHint ? EntryState.SKIPPED : EntryState.APPLIED); } if (!Strings.isNullOrEmpty(recategorization.getLegalBasis())) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index bab4ccaae..a1ff3d00a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -2782,4 +2782,64 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .get(0).getProcessedDate()); } + + @Test + public void testLocalRecategorizeADictBasedRedactionWithAnalysisStopped() { //RED-9094 + + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); + var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); + var file = fileTesterAndProvider.testAndProvideFile(dossier); + + var type = typeProvider.testAndProvideType(dossierTemplate, "test", 100); + var type2 = typeProvider.testAndProvideType(dossierTemplate, "test2", 101); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getId(), DictionaryEntryType.ENTRY); + var entityLog = new EntityLog(1, + 1, + List.of(EntityLogEntry.builder() + .id("AnnotationId") + .type("test") + .value("Luke Skywalker") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .dictionaryEntry(true) + .section("section") + .legalBasis("Article legal basis") + .build()), + null, + 0, + 0, + 0, + 0); + fileManagementStorageService.saveEntityLog(dossier.getId(), file.getId(), entityLog); + when(entityLogService.getEntityLog(any(), any(), anyBoolean())).thenReturn(entityLog); + + fileStatusPersistenceService.toggleAutomaticAnalysis(file.getFileId(), true); + var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); + assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isEqualTo(true); + + ManualAddResponse response = manualRedactionClient.recategorizeBulk(dossier.getId(), + file.getId(), + Set.of(RecategorizationRequestModel.builder() + .type(type2.getType()) + .annotationId("AnnotationId") + .addToDictionary(false) + .addToAllDossiers(false) + .legalBasis("Article legal basis") + .section("section") + .value("Luke Skywalker") + .build()), + false) + .get(0); + + assertEquals(response.getEntityLogEntry().getId(), "AnnotationId"); + assertEquals(response.getEntityLogEntry().getType(), type2.getType()); + assertEquals(response.getEntityLogEntry().getManualChanges() + .get(0).getManualRedactionType(), ManualRedactionType.RECATEGORIZE); + assertEquals(response.getEntityLogEntry().getManualChanges() + .get(0).getPropertyChanges() + .get("type"), type2.getType()); + assertNull(response.getEntityLogEntry().getManualChanges() + .get(0).getProcessedDate()); + } + }