Merge branch 'RED-8043-update-text' into 'master'
RED-8043 - Fix surrounding text not updating when adding manual redaction Closes RED-8043 See merge request redactmanager/persistence-service!284
This commit is contained in:
commit
b2dbbbb405
@ -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();
|
||||
|
||||
@ -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<AddRedactionRequest> toAddRedactionRequestList(String dossierId, Set<AddRedactionRequestModel> addRedactionRequests, Dossier dossier) {
|
||||
|
||||
return addRedactionRequests.stream()
|
||||
|
||||
@ -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<ManualAddResponse> addAddRedaction(String dossierId, String fileId, List<AddRedactionRequest> addRedactionRequests) {
|
||||
|
||||
var response = new ArrayList<ManualAddResponse>();
|
||||
Set<ManualRedactionEntryEntity> manualRedactionEntryEntities = new HashSet<>();
|
||||
List<ManualRedactionEntryEntity> 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<ManualRedactionEntry> convertEntriesToAdd(List<ManualRedactionEntryEntity> source) {
|
||||
|
||||
return source.stream().map(entry -> convert(entry, ManualRedactionEntry.class, new ManualRedactionMapper())).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public List<ManualAddResponse> addRemoveRedaction(String dossierId, String fileId, List<RemoveRedactionRequest> removeRedactionRequests) {
|
||||
@ -250,6 +260,7 @@ public class ManualRedactionService {
|
||||
|
||||
|
||||
@Transactional
|
||||
@Observed(name = "ManualRedactionService", contextualName = "add-manual-redaction")
|
||||
public List<ManualAddResponse> addResizeRedaction(String dossierId, String fileId, List<ResizeRedactionRequest> resizeRedactionRequests, boolean includeUnprocessed) {
|
||||
|
||||
List<ManualAddResponse> 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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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<ManualResizeRedactionEntity> 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());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user