From 5abe73cae2e0122f9f5d667a145cae7f333e84fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Fri, 2 Aug 2024 14:22:42 +0200 Subject: [PATCH] RED-9782: Added analysis function that only imports imported redactions --- .../redaction-service-api-v1/build.gradle.kts | 2 +- .../build.gradle.kts | 4 +- .../queue/RedactionMessageReceiver.java | 9 ++++- .../v1/server/service/AnalyzeService.java | 39 +++++++++++++++++++ .../rules-management/build.gradle.kts | 2 + 5 files changed, 52 insertions(+), 4 deletions(-) diff --git a/redaction-service-v1/redaction-service-api-v1/build.gradle.kts b/redaction-service-v1/redaction-service-api-v1/build.gradle.kts index b619769e..1b078cad 100644 --- a/redaction-service-v1/redaction-service-api-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-api-v1/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } description = "redaction-service-api-v1" -val persistenceServiceVersion = "2.473.0" +val persistenceServiceVersion = "2.503.0" dependencies { implementation("org.springframework:spring-web:6.0.12") diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index 07ad4fb5..bb3fd992 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -16,7 +16,7 @@ val layoutParserVersion = "0.141.0" val jacksonVersion = "2.15.2" val droolsVersion = "9.44.0.Final" val pdfBoxVersion = "3.0.0" -val persistenceServiceVersion = "2.496.0" +val persistenceServiceVersion = "2.503.0" val springBootStarterVersion = "3.1.5" val springCloudVersion = "4.0.4" val testContainersVersion = "1.19.7" @@ -69,7 +69,7 @@ dependencies { implementation("org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}") implementation("net.logstash.logback:logstash-logback-encoder:7.4") - implementation("ch.qos.logback:logback-classic") + api("ch.qos.logback:logback-classic") implementation("org.reflections:reflections:0.10.2") diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java index c41c0535..851f7dac 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java @@ -110,7 +110,14 @@ public class RedactionMessageReceiver { log.info("-------------------------------------------------------------------------------------------------"); shouldRespond = false; break; - + case IMPORTED_REDACTIONS_ONLY: + log.info("------------------------------Imported Redactions Analysis Only------------------------------------------"); + log.info("Starting Imported Redactions Analysis Only for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId()); + log.debug(analyzeRequest.getManualRedactions().toString()); + result = analyzeService.analyzeImportedRedactionsOnly(analyzeRequest); + log.info("Successful Imported Redactions Analysis Only dossier {} file {}", analyzeRequest.getDossierId(), analyzeRequest.getFileId()); + log.info("-------------------------------------------------------------------------------------------------"); + break; default: throw new IllegalArgumentException("Unknown MessageType: " + analyzeRequest.getMessageType()); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java index d0ee2e30..5c459852 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java @@ -199,6 +199,45 @@ public class AnalyzeService { } + @Timed("redactmanager_analyzeImportedRedactionsOnly") + @Observed(name = "AnalyzeService", contextualName = "analyzeImportedRedactionsOnly") + public AnalyzeResult analyzeImportedRedactionsOnly(AnalyzeRequest analyzeRequest) { + + long startTime = System.currentTimeMillis(); + + AnalysisData analysisData = analysisPreparationService.getAnalysisData(analyzeRequest); + + Context context = new Context(analyzeRequest.getFileId(), + analyzeRequest.getDossierId(), + analyzeRequest.getDossierTemplateId(), + analysisData.kieWrapperEntityRules().rulesVersion(), + analyzeRequest.getAnalysisNumber(), + TenantContext.getTenantId()); + + var notFoundManualOrImportedEntries = Stream.of(analysisData.notFoundManualRedactionEntries(), analysisData.notFoundImportedEntries()) + .flatMap(Collection::stream) + .collect(Collectors.toList()); + + EntityLogChanges entityLogChanges = entityLogCreatorService.createInitialEntityLog(analyzeRequest, + analysisData.document(), + notFoundManualOrImportedEntries, + analysisData.dictionary().getVersion(), + analysisData.kieWrapperEntityRules().rulesVersion()); + + notFoundImportedEntitiesService.processEntityLog(entityLogChanges.getEntityLog(), analyzeRequest, analysisData.notFoundImportedEntries()); + + return finalizeAnalysis(analyzeRequest, + startTime, + analysisData.kieWrapperComponentRules(), + entityLogChanges, + analysisData.document(), + analysisData.document().getNumberOfPages(), + false, + new HashSet<>(), + context); + } + + private AnalyzeResult finalizeAnalysis(AnalyzeRequest analyzeRequest, long startTime, KieWrapper kieWrapperComponentRules, diff --git a/redaction-service-v1/rules-management/build.gradle.kts b/redaction-service-v1/rules-management/build.gradle.kts index 3f2a5597..2aaea40c 100644 --- a/redaction-service-v1/rules-management/build.gradle.kts +++ b/redaction-service-v1/rules-management/build.gradle.kts @@ -46,6 +46,8 @@ dependencies { implementation("org.kie:kie-api:9.44.0.Final") implementation("org.drools:drools-compiler:9.44.0.Final") testImplementation("org.kie:kie-ci:9.44.0.Final") + + api("ch.qos.logback:logback-classic:1.4.11") } tasks.test {