From 829dc2f4b3ba7a797dc630332e57d42c99e9465f Mon Sep 17 00:00:00 2001 From: maverickstuder Date: Thu, 15 Aug 2024 16:26:20 +0200 Subject: [PATCH] RED-9782: fix for ignored flag excludeFromAutomaticAnalysis when overriding files that are hard deleted --- .../management/v1/processor/service/FileService.java | 2 +- .../v1/processor/service/FileStatusService.java | 7 +++---- .../persistence/FileStatusPersistenceService.java | 6 +++--- .../persistence/repository/FileRepository.java | 12 +++++++----- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java index d339d6d67..354ca0846 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileService.java @@ -61,7 +61,7 @@ public class FileService { if (existingStatus != null) { // the file is already uploaded, just reanalyse it. - fileStatusService.overwriteFile(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename(), keepManualRedactions); + fileStatusService.overwriteFile(request.getDossierId(), request.getFileId(), request.getUploader(), request.getFilename(), keepManualRedactions, disableAutomaticAnalysis); } else { // the file is new, should create a new status for it. log.info("File {} has no status yet, creating one and setting to unprocessed.", request.getFilename()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java index 0d34d4c86..21e6f9bb7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java @@ -61,7 +61,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType; import com.knecon.fforesight.service.ocr.v1.api.model.DocumentRequest; import jakarta.transaction.Transactional; @@ -780,7 +779,7 @@ public class FileStatusService { @Transactional - public void overwriteFile(String dossierId, String fileId, String uploader, String filename, boolean keepManualRedactions) { + public void overwriteFile(String dossierId, String fileId, String uploader, String filename, boolean keepManualRedactions, boolean disableAutomaticAnalysis) { fileManagementStorageService.deleteObject(dossierId, fileId, FileType.ORIGIN); fileManagementStorageService.deleteObject(dossierId, fileId, FileType.REDACTION_LOG); @@ -795,9 +794,9 @@ public class FileStatusService { fileManagementStorageService.deleteObject(dossierId, fileId, FileType.TABLES); if (keepManualRedactions) { - fileStatusPersistenceService.overwriteFile(fileId, uploader, filename, true); + fileStatusPersistenceService.overwriteFile(fileId, uploader, filename, true, disableAutomaticAnalysis); } else { - fileStatusPersistenceService.overwriteFile(fileId, uploader, filename, false); + fileStatusPersistenceService.overwriteFile(fileId, uploader, filename, false, disableAutomaticAnalysis); deleteManualRedactions(dossierId, fileId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index c8bbcbd78..027b537e1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -535,7 +535,7 @@ public class FileStatusPersistenceService { @Transactional - public void overwriteFile(String fileId, String uploader, String filename, boolean keepManualRedactions) { + public void overwriteFile(String fileId, String uploader, String filename, boolean keepManualRedactions, boolean disableAutomaticAnalysis) { int countUpdate; @@ -545,7 +545,7 @@ public class FileStatusPersistenceService { uploader, ProcessingStatus.UNPROCESSED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), - OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), disableAutomaticAnalysis); } else { fileRepository.findById(fileId) @@ -557,7 +557,7 @@ public class FileStatusPersistenceService { ProcessingStatus.UNPROCESSED, WorkflowStatus.NEW, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), - OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), disableAutomaticAnalysis); deleteFileAttributes(fileId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java index c7cad8c22..e5cfa10d0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java @@ -210,14 +210,14 @@ public interface FileRepository extends JpaRepository { @Modifying(clearAutomatically = true) @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + "f.workflowStatus = :workflowStatus, f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, " - + "f.fileManipulationDate = :lastUploaded, " + + "f.fileManipulationDate = :lastUploaded, f.excludedFromAutomaticAnalysis = :excludedFromAutomaticAnalysis, " + "f.ocrEndTime = null, f.ocrStartTime = null, f.numberOfPagesToOCR = null, f.numberOfOCRedPages = null, " + "f.excluded = false, f.lastProcessed = null, f.lastReviewer = null, f.lastApprover = null, " + "f.assignee = null, f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, " + "f.redactionModificationDate = null, " + "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " - + "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, f.excludedFromAutomaticAnalysis = false, " + + "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, " + "f.processingErrorCounter = 0, f.errorCause = null, f.errorQueue = null, f.errorService = null, " + "f.errorTimestamp = null where f.id = :fileId") int overwriteFile(@Param("fileId") String fileId, @@ -226,13 +226,14 @@ public interface FileRepository extends JpaRepository { @Param("processingStatus") ProcessingStatus processingStatus, @Param("workflowStatus") WorkflowStatus workflowStatus, @Param("lastUploaded") OffsetDateTime lastUploaded, - @Param("lastUpdated") OffsetDateTime lastUpdated); + @Param("lastUpdated") OffsetDateTime lastUpdated, + @Param("excludedFromAutomaticAnalysis") boolean excludedFromAutomaticAnalysis); @Modifying(clearAutomatically = true) @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + "f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " - + "f.lastProcessed = null," + + " f.excludedFromAutomaticAnalysis = :excludedFromAutomaticAnalysis, f.lastProcessed = null," + "f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, f.redactionModificationDate = null, " + "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " @@ -245,7 +246,8 @@ public interface FileRepository extends JpaRepository { @Param("uploader") String uploader, @Param("processingStatus") ProcessingStatus processingStatus, @Param("lastUploaded") OffsetDateTime lastUploaded, - @Param("lastUpdated") OffsetDateTime lastUpdated); + @Param("lastUpdated") OffsetDateTime lastUpdated, + @Param("excludedFromAutomaticAnalysis") boolean excludedFromAutomaticAnalysis); @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId " -- 2.47.2