From d93bdf133004d95dc58bd8152552eda75ea7c961 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Mon, 27 May 2024 16:42:10 +0200 Subject: [PATCH] RED-8670: integrate table inference from research * introduce controllerAdvice to ControllerV2 package * remove unnecessary analysis requirement calculation for deleted files * silence javadoc lint warnings (e.g. no comment) --- .../com.iqser.red.service.java-conventions.gradle.kts | 7 +++++-- .../v1/processor/entity/dossier/FileEntity.java | 2 +- .../v1/processor/service/FileStatusMapper.java | 1 + .../service/ReanalysisRequiredStatusService.java | 6 +++++- .../v1/processor/service/job/AutomaticAnalysisJob.java | 9 +++++---- .../service/v1/api/shared/model/FileStatus.java | 4 +++- 6 files changed, 20 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts b/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts index 6e231f22f..eeff524f4 100644 --- a/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/com.iqser.red.service.java-conventions.gradle.kts @@ -67,8 +67,11 @@ java { allprojects { tasks.withType { - logging.captureStandardOutput(LogLevel.ERROR) - logging.captureStandardError(LogLevel.ERROR) + options { + this as StandardJavadocDocletOptions + addBooleanOption("Xdoclint:none", true) + addStringOption("Xmaxwarns", "1") + } } publishing { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java index f55773cd6..4ba0806b4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java @@ -199,7 +199,7 @@ public class FileEntity { @Column private OffsetDateTime errorTimestamp; - @ElementCollection(fetch = FetchType.EAGER) + @ElementCollection private List componentMappingVersions; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusMapper.java index 4dae625a7..79e57a923 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusMapper.java @@ -66,6 +66,7 @@ public class FileStatusMapper { .lastIndexed(status.getLastIndexed()) .fileSize(status.getFileSize()) .fileErrorInfo(status.getFileErrorInfo()) + .componentMappingVersions(status.getComponentMappingVersions()) .build(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java index 6db7163df..0857d3115 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisRequiredStatusService.java @@ -86,8 +86,12 @@ public class ReanalysisRequiredStatusService { fileStatus.setDossierTemplateId(dossier.getDossierTemplateId()); fileStatus.setDossierStatusId(dossier.getDossierStatusId()); + if (fileStatus.isSoftOrHardDeleted()) { + log.debug("File {} is deleted, thus analysis is not required", fileStatus.getId()); + return new AnalysisRequiredResult(false, false); + } if (dossier.getSoftDeletedTime() != null || dossier.getHardDeletedTime() != null || dossier.getArchivedTime() != null) { - log.info("Dossier {} is deleted, thus analysis is not required", fileStatus.getDossierId()); + log.debug("Dossier {} is deleted, thus analysis is not required", fileStatus.getDossierId()); return new AnalysisRequiredResult(false, false); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java index c4794dbf6..970b1a173 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AutomaticAnalysisJob.java @@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; import java.util.Comparator; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Set; @@ -82,17 +83,17 @@ public class AutomaticAnalysisJob implements Job { var consumerCount = redactionQueueInfo.getConsumerCount(); if (redactionQueueInfo.getMessageCount() <= consumerCount * 5) { // queue up 5 files - var allStatuses = getAllRelevantStatuses(); + List allStatuses = getAllRelevantStatuses(); allStatuses.sort(Comparator.comparing(FileModel::getLastUpdated)); - var allStatusesIterator = allStatuses.iterator(); + Iterator allStatusesIterator = allStatuses.iterator(); log.debug("[Tenant:{}] Files that require reanalysis: {}", TenantContext.getTenantId(), allStatuses.size()); - var queuedFiles = 0; + int queuedFiles = 0; while (queuedFiles < (consumerCount * 5) && allStatusesIterator.hasNext()) { - var next = allStatusesIterator.next(); + FileModel next = allStatusesIterator.next(); // in case the file doesn't have numberOfPages set, we assume an average. reanalyseFile(next); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java index 1af0c17f7..d3baf9030 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java @@ -1,6 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model; import java.time.OffsetDateTime; +import java.util.Map; import java.util.Set; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; @@ -147,7 +148,8 @@ public class FileStatus { private OffsetDateTime lastIndexed; @Schema(description = "The error information for the error state of the file") private FileErrorInfo fileErrorInfo; - + @Schema(description = "Shows which versions of each mapping the last analysis has been performed") + private Map componentMappingVersions; @Schema(description = "Shows if this file has been OCRed by us. Last Time of OCR.") public OffsetDateTime getLastOCRTime() {