diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java index 2ca216e39..ea9bd7988 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/AnalysisFlagsCalculationService.java @@ -18,6 +18,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import io.micrometer.core.annotation.Timed; +import io.micrometer.observation.annotation.Observed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -32,6 +33,7 @@ public class AnalysisFlagsCalculationService { @Timed("redactmanager_calculateFlags") + @Observed(name = "AnalysisFlagsCalculationService", contextualName = "calculate-flags") public void calculateFlags(String dossierId, String fileId) { long startTime = System.currentTimeMillis(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index 6cff64c60..469da83f9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -32,6 +32,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.Remo import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ResizeRedactionRequestModel; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -44,6 +45,7 @@ public class ManualRedactionMapper { EntityLogService entityLogService; + @Observed(name = "ManualRedactionMapper", contextualName = "to-add-redaction-request-list") public List toAddRedactionRequestList(String dossierId, Set addRedactionRequests, Dossier dossier) { return addRedactionRequests.stream() diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index 008d3ea37..7f847d340 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manualredactions; +import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; + import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; @@ -29,6 +31,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RecategorizationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RemoveRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ResizeRedactionPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.utils.ManualRedactionMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest; @@ -44,6 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -73,10 +77,11 @@ public class ManualRedactionService { @Transactional + @Observed(name = "ManualRedactionService", contextualName = "add-manual-redaction") public List addAddRedaction(String dossierId, String fileId, List addRedactionRequests) { var response = new ArrayList(); - Set manualRedactionEntryEntities = new HashSet<>(); + List manualRedactionEntryEntities = new ArrayList<>(); var dossierEntity = dossierPersistenceService.getAndValidateDossier(dossierId); @@ -105,22 +110,27 @@ public class ManualRedactionService { manualRedactionEntryEntities = manualRedactionEntryEntities.stream() .filter(manualRedactionEntry -> !manualRedactionEntry.isAddToDictionary() && !manualRedactionEntry.isAddToDossierDictionary()) - .collect(Collectors.toSet()); + .collect(Collectors.toList()); if (!manualRedactionEntryEntities.isEmpty()) { ManualRedactions manualRedactions = ManualRedactions.builder() - .entriesToAdd(MagicConverter.convert(manualRedactionEntryEntities, ManualRedactionEntry.class)) + .entriesToAdd(convertEntriesToAdd(manualRedactionEntryEntities)) .build(); entityLogMergeService.sendToAnalyseQueue(fileId, dossierEntity, fileStatusService.getStatus(fileId), manualRedactions); + } else { + reprocess(dossierId, fileId); } analysisFlagsCalculationService.calculateFlags(dossierId, fileId); - reprocess(dossierId, fileId); - return response; } + private Set convertEntriesToAdd(List source) { + + return source.stream().map(entry -> convert(entry, ManualRedactionEntry.class, new ManualRedactionMapper())).collect(Collectors.toSet()); + } + @Transactional public List addRemoveRedaction(String dossierId, String fileId, List removeRedactionRequests) { @@ -250,6 +260,7 @@ public class ManualRedactionService { @Transactional + @Observed(name = "ManualRedactionService", contextualName = "add-manual-redaction") public List addResizeRedaction(String dossierId, String fileId, List resizeRedactionRequests, boolean includeUnprocessed) { List response = new ArrayList<>(); @@ -289,14 +300,12 @@ public class ManualRedactionService { .resizeRedactions(MagicConverter.convert(manualResizeRedactionEntities, ManualResizeRedaction.class)) .build(); entityLogMergeService.sendToAnalyseQueue(fileId, dossierPersistenceService.getAndValidateDossier(dossierId), fileStatusService.getStatus(fileId), manualRedactions); + } else { + reprocess(dossierId, fileId); } analysisFlagsCalculationService.calculateFlags(dossierId, fileId); - reprocess(dossierId, fileId); - - analysisFlagsCalculationService.calculateFlags(dossierId, fileId); - return response; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java index 840ff9c6e..574303499 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java @@ -9,6 +9,7 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; +import io.micrometer.observation.annotation.Observed; import jakarta.transaction.Transactional; import org.springframework.beans.BeanUtils; @@ -34,6 +35,7 @@ public class AuditPersistenceService { private final AuditRepository auditRepository; + @Observed(name = "AuditPersistenceService", contextualName = "audit") public void audit(AuditRequest auditRequest) { insertRecord(auditRequest); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/RedactionAnalysisResponseReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/RedactionAnalysisResponseReceiver.java index 7ef9fe2c1..581e4462b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/RedactionAnalysisResponseReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/RedactionAnalysisResponseReceiver.java @@ -51,26 +51,19 @@ public class RedactionAnalysisResponseReceiver { if (optionalManualRedactionEntry.isPresent()) { ManualRedactionEntryEntity manualRedactionEntry = optionalManualRedactionEntry.get(); - if (!Objects.equals(manualRedactionEntry.getTextAfter(), unprocessedManualEntity.getTextAfter()) || - !Objects.equals(manualRedactionEntry.getTextBefore(), unprocessedManualEntity.getTextBefore()) || - !Objects.equals(manualRedactionEntry.getSection(), unprocessedManualEntity.getSection())) { - manualRedactionEntry.setTextBefore(unprocessedManualEntity.getTextBefore()); - manualRedactionEntry.setTextAfter(unprocessedManualEntity.getTextAfter()); - manualRedactionEntry.setSection(unprocessedManualEntity.getSection()); - manualRedactionEntry.setPositions(convertPositions(unprocessedManualEntity.getPositions())); - addRedactionPersistenceService.update(manualRedactionEntry); - } + manualRedactionEntry.setTextBefore(unprocessedManualEntity.getTextBefore()); + manualRedactionEntry.setTextAfter(unprocessedManualEntity.getTextAfter()); + manualRedactionEntry.setSection(unprocessedManualEntity.getSection()); + manualRedactionEntry.setPositions(convertPositions(unprocessedManualEntity.getPositions())); + addRedactionPersistenceService.update(manualRedactionEntry); } Optional optionalManualResizeRedactionEntity = resizeRedactionPersistenceService.findResizeRedactionById(fileId, unprocessedManualEntity.getAnnotationId()); if (optionalManualResizeRedactionEntity.isPresent()) { ManualResizeRedactionEntity manualResizeRedaction = optionalManualResizeRedactionEntity.get(); - if (!Objects.equals(manualResizeRedaction.getTextAfter(), unprocessedManualEntity.getTextAfter()) || - !Objects.equals(manualResizeRedaction.getTextBefore(), unprocessedManualEntity.getTextBefore())) { - resizeRedactionPersistenceService.updateSurroundingText(manualResizeRedaction.getId(), - unprocessedManualEntity.getTextBefore(), - unprocessedManualEntity.getTextAfter()); - } + resizeRedactionPersistenceService.updateSurroundingText(manualResizeRedaction.getId(), + unprocessedManualEntity.getTextBefore(), + unprocessedManualEntity.getTextAfter()); } }); }