From 5d184623a96b7d080f28017f7cb17d0f5134ffa1 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Wed, 13 Apr 2022 14:48:59 +0200 Subject: [PATCH] RED-3880: Delete all false_positive manual redaction in migration --- .../migration/MigrationStarterService.java | 3 + .../RemoveFalsePositiveManualRedactions6.java | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/RemoveFalsePositiveManualRedactions6.java diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationStarterService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationStarterService.java index 6cf72fdc0..a2299487b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationStarterService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationStarterService.java @@ -10,6 +10,7 @@ import com.iqser.red.service.peristence.v1.server.migration.migrations.Dictionar import com.iqser.red.service.peristence.v1.server.migration.migrations.EntityTypesMigration4; import com.iqser.red.service.peristence.v1.server.migration.migrations.IndexMigration1; import com.iqser.red.service.peristence.v1.server.migration.migrations.MigrateHighlights3; +import com.iqser.red.service.peristence.v1.server.migration.migrations.RemoveFalsePositiveManualRedactions6; import com.iqser.red.service.peristence.v1.server.migration.migrations.TypeToEntityMigration5; import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.MigrationPersistenceService; @@ -31,6 +32,7 @@ public class MigrationStarterService { private final MigrateHighlights3 migrateHighlights3; private final EntityTypesMigration4 entityTypesMigration4; private final TypeToEntityMigration5 typeToEntityMigration5; + private final RemoveFalsePositiveManualRedactions6 removeFalsePositiveManualRedactions6; private final FileManagementServiceSettings settings; private final ApplicationContext ctx; @@ -52,6 +54,7 @@ public class MigrationStarterService { migrateHighlights3.run(); entityTypesMigration4.run(); typeToEntityMigration5.run(); + removeFalsePositiveManualRedactions6.run(); log.info("Migration is finished"); System.exit(SpringApplication.exit(ctx, () -> 0)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/RemoveFalsePositiveManualRedactions6.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/RemoveFalsePositiveManualRedactions6.java new file mode 100644 index 000000000..27c0fb599 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/RemoveFalsePositiveManualRedactions6.java @@ -0,0 +1,71 @@ +package com.iqser.red.service.peristence.v1.server.migration.migrations; + +import java.util.ArrayList; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iqser.red.service.peristence.v1.server.controller.ManualRedactionController; +import com.iqser.red.service.peristence.v1.server.migration.Migration; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; + +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Setter +@Service +public class RemoveFalsePositiveManualRedactions6 extends Migration { + + private static final String NAME = "Remove false positives manual redactions"; + private static final long VERSION = 6; + + @Autowired + private DossierPersistenceService dossierPersistenceService; + + @Autowired + private FileStatusPersistenceService fileStatusPersistenceService; + + @Autowired + private ManualRedactionController manualRedactionController; + + + public RemoveFalsePositiveManualRedactions6() { + + super(NAME, VERSION); + } + + + @Override + protected void migrate() { + + var dossiers = dossierPersistenceService.findAllDossiers(); + dossiers.forEach(dossier -> { + var files = fileStatusPersistenceService.getStatusesForDossier(dossier.getId()); + files.forEach(file -> { + if (file.getDeleted() == null) { + var annotationIdsToRemove = new ArrayList(); + var manualRedactions = manualRedactionController.getManualRedactions(dossier.getId(), file.getId()); + + if (manualRedactions != null && manualRedactions.getEntriesToAdd() != null) { + manualRedactions.getEntriesToAdd().forEach(addRedaction -> { + if (addRedaction.getType().contains("false_positive")) { + annotationIdsToRemove.add(addRedaction.getAnnotationId()); + } + }); + } + if (!annotationIdsToRemove.isEmpty()) { + manualRedactionController.deleteAddRedaction(dossier.getId(), file.getId(), annotationIdsToRemove); + } + } + }); + }); + } + +} + + + + +