From 01c129866a3c0bbf3550f51574a5710891536085 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 21 Mar 2022 10:49:40 +0200 Subject: [PATCH] Processed value for manual redactions that are dictionary entries --- .../annotations/AddRedactionPersistenceService.java | 9 ++++++++- .../repository/ManualRedactionRepository.java | 3 +++ .../v1/server/service/ManualRedactionService.java | 8 +++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java index b3bd505e4..08f803073 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java @@ -9,6 +9,7 @@ import java.util.Set; import javax.transaction.Transactional; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualRedactionEntry; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -41,7 +42,8 @@ public class AddRedactionPersistenceService { manualRedactionEntry.setTypeId(addRedactionRequest.getTypeId()); manualRedactionEntry.setDictionaryEntryType(addRedactionRequest.getDictionaryEntryType()); - if (addRedactionRequest.getStatus() == AnnotationStatus.APPROVED) { + if (addRedactionRequest.getStatus() == AnnotationStatus.APPROVED + && !(addRedactionRequest.isAddToDictionary() || addRedactionRequest.isAddToDossierDictionary())) { manualRedactionEntry.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } @@ -125,4 +127,9 @@ public class AddRedactionPersistenceService { manualRedactionRepository.updateStatus(fileIds, value, AnnotationStatus.REQUESTED, AnnotationStatus.APPROVED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + @Transactional + public void markAsProcessed(ManualRedactionEntry e) { + + manualRedactionRepository.markAsProcessed(new AnnotationEntityId(e.getAnnotationId(), e.getFileId()), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java index 9869d551e..5bb385995 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java @@ -50,4 +50,7 @@ public interface ManualRedactionRepository extends JpaRepository fileIds, String filterValue, AnnotationStatus filterStatus, AnnotationStatus newStatus, OffsetDateTime processedDate); + @Modifying + @Query("update ManualRedactionEntryEntity m set m.processedDate = :processedDate where m.id = :annotationEntityId") + void markAsProcessed(AnnotationEntityId annotationEntityId, OffsetDateTime processedDate); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java index 0069c630e..734390298 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java @@ -480,7 +480,7 @@ public class ManualRedactionService { addToDictionary(buildTypeId(redactionLogEntry, dossier), redactionLogEntry.getValue(), dossierId, fileId, DictionaryEntryType.ENTRY); } } - } else if(redactionLogEntryOptional.isPresent() && redactionLogEntryOptional.get().isHint()){ + } else if (redactionLogEntryOptional.isPresent() && redactionLogEntryOptional.get().isHint()) { reprocess(dossierId, fileId); } @@ -597,6 +597,9 @@ public class ManualRedactionService { // These are marked as processed once analysis completes, not when they are set as approved if (manualRedactions != null) { + if (manualRedactions.getEntriesToAdd() != null) { + manualRedactions.getEntriesToAdd().forEach(addRedactionPersistenceService::markAsProcessed); + } if (manualRedactions.getIdsToRemove() != null) { manualRedactions.getIdsToRemove().forEach(removeRedactionPersistenceService::markAsProcessed); } @@ -604,8 +607,7 @@ public class ManualRedactionService { manualRedactions.getForceRedactions().forEach(forceRedactionPersistenceService::markAsProcessed); } if (manualRedactions.getImageRecategorization() != null) { - manualRedactions.getImageRecategorization() - .forEach(recategorizationPersistenceService::markAsProcessed); + manualRedactions.getImageRecategorization().forEach(recategorizationPersistenceService::markAsProcessed); } } }