From 2023ac13b97f8ff10ce5c8d96c7fcad3f2aa507c Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Tue, 10 Jan 2023 12:40:03 +0100 Subject: [PATCH] RED-5892: Corrected next processing step calculation. Changed the calculation to always re-produce NER-entities if they are missing, instead of only doing that for full re-processing. --- .../v1/server/service/FileStatusService.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index 34fb1b22e..a0a2b49d3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -577,11 +577,6 @@ public class FileStatusService { return; } - var fileModel = convert(fileEntity, FileModel.class, new FileModelMapper()); - reanalysisRequiredStatusService.enhanceFileStatusWithAnalysisRequirements(fileModel, true); - - boolean reanalyse = fileModel.isReanalysisRequired() || manualRedactionReanalyse; - if (settings.isFigureDetectionEnabled() && !fileManagementStorageService.objectExists(dossierId, fileId, FileType.FIGURE)) { log.debug("Add file: {} from dossier {} to Figure Detection queue", fileId, dossierId); addToFigureDetectionRequestQueue(dossierId, fileId); @@ -600,20 +595,32 @@ public class FileStatusService { return; } + var fileModel = convert(fileEntity, FileModel.class, new FileModelMapper()); + reanalysisRequiredStatusService.enhanceFileStatusWithAnalysisRequirements(fileModel, true); + if (settings.isOcrByDefault() && fileModel.getOcrEndTime() == null) { log.debug("Add file: {} from dossier {} to OCR queue", fileId, dossierId); setStatusOcrQueued(dossierId, fileId); return; } - MessageType messageType = calculateMessageType(dossierId, fileId, reanalyse, fileModel.getProcessingStatus(), fileModel); + MessageType messageType = null; - if (MessageType.ANALYSE.equals(messageType) && settings.isNerServiceEnabled() && !fileManagementStorageService.objectExists(dossierId, fileId, FileType.NER_ENTITIES)) { + if (!fileManagementStorageService.objectExists(dossierId, fileId, FileType.TEXT)) { + messageType = MessageType.STRUCTURE_ANALYSE; + } + + if (messageType == null && settings.isNerServiceEnabled() && !fileManagementStorageService.objectExists(dossierId, fileId, FileType.NER_ENTITIES)) { log.debug("Add file: {} from dossier {} to NER queue", fileId, dossierId); addToNerQueue(dossierId, fileId); return; } + if (messageType == null) { + boolean reanalyse = fileModel.isReanalysisRequired() || manualRedactionReanalyse; + messageType = calculateMessageType(dossierId, fileId, reanalyse, fileModel.getProcessingStatus(), fileModel); + } + var analyseRequest = AnalyzeRequest.builder() .messageType(messageType) .dossierId(dossierId) @@ -670,18 +677,18 @@ public class FileStatusService { private MessageType calculateMessageType(String dossierId, String fileId, boolean reanalyse, ProcessingStatus processingStatus, FileModel fileModel) { - if (!fileManagementStorageService.objectExists(dossierId, fileId, FileType.TEXT)) { - return MessageType.STRUCTURE_ANALYSE; - } if (ProcessingStatus.NER_ANALYZING.equals(processingStatus)) { return MessageType.ANALYSE; } + if (reanalyse) { if (fileModel.getLastFileAttributeChange() != null && fileModel.getLastProcessed().isBefore(fileModel.getLastFileAttributeChange())) { return MessageType.ANALYSE; + } else { + return MessageType.REANALYSE; } - return MessageType.REANALYSE; } + return MessageType.ANALYSE; }