diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/MigrationMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/MigrationMessageReceiver.java index e8222eac..dcc28038 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/MigrationMessageReceiver.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/MigrationMessageReceiver.java @@ -49,7 +49,6 @@ public class MigrationMessageReceiver { MigrationRequest migrationRequest = objectMapper.readValue(message.getBody(), MigrationRequest.class); log.info("--------------------------------------------------------------------"); log.info("Starting redactionLog to entityLog migration for dossierId {} and fileId {}", migrationRequest.getDossierId(), migrationRequest.getFileId()); - // TODO: if an image is not found, try to copy the old one exactly (like with TextEntities) dictionaryService.updateDictionary(migrationRequest.getDossierTemplateId(), migrationRequest.getDossierId()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java index cf4be6d3..bfd921fa 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/migration/RedactionLogToEntityLogMigrationService.java @@ -26,6 +26,7 @@ import com.iqser.red.service.redaction.v1.server.model.MigratedEntityLog; import com.iqser.red.service.redaction.v1.server.model.MigrationEntity; import com.iqser.red.service.redaction.v1.server.model.RectangleWithPage; import com.iqser.red.service.redaction.v1.server.model.document.TextRange; +import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image; @@ -177,7 +178,11 @@ public class RedactionLogToEntityLogMigrationService { .map(MigrationEntity::fromRedactionLogEntry) .peek(migrationEntity -> { if (migrationEntity.getRedactionLogEntry().lastChangeIsRemoved()) { - migrationEntity.getManualEntity().remove(migrationEntity.getManualEntity().getRuleIdentifier(), migrationEntity.getRedactionLogEntry().getReason()); + if (migrationEntity.getManualEntity().getEntityType().equals(EntityType.HINT)) { + migrationEntity.getManualEntity().ignore(migrationEntity.getManualEntity().getRuleIdentifier(), migrationEntity.getRedactionLogEntry().getReason()); + } else { + migrationEntity.getManualEntity().remove(migrationEntity.getManualEntity().getRuleIdentifier(), migrationEntity.getRedactionLogEntry().getReason()); + } } else if (migrationEntity.getManualEntity().isApplied()) { migrationEntity.getManualEntity() .apply(migrationEntity.getManualEntity().getRuleIdentifier(), diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java index 10c0e2be..b8e2aa54 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java @@ -174,10 +174,24 @@ public final class MigrationEntity { entityLogEntry.setLegalBasis(redactionLogEntry.getLegalBasis()); } + if (entityLogEntry.getEntryType().equals(EntryType.HINT) && lastManualChangeIsRemoveLocally(entityLogEntry)) { + entityLogEntry.setState(EntryState.IGNORED); + } + return entityLogEntry; } + private static boolean lastManualChangeIsRemoveLocally(EntityLogEntry entityLogEntry) { + + return entityLogEntry.getManualChanges() + .stream() + .reduce((a, b) -> b) + .filter(mc -> mc.getManualRedactionType() + .equals(com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.REMOVE_LOCALLY)) + .isPresent(); + } + private List migrateManualChanges(List manualChanges) { if (manualChanges == null) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java index fcc8b834..f40de35e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java @@ -437,7 +437,7 @@ public class ComponentCreationService { /** - * Joins values from entities that are in the same table row. If entities are not in a table cell they are added as a single component. + * Joins values from entities that are in the same table row. They are sorted from left to right. If entities are not in a table cell they are added as a single component. * * @param ruleIdentifier the identifier of the rule * @param name the name of the entity