From da98b4cc4e53e99b0f653f2b64b22178112f8c6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Wed, 17 Jan 2024 15:31:18 +0100 Subject: [PATCH] RED-7928: Reset ocr status values if ocr fails --- .../service/FileStatusProcessingUpdateService.java | 9 ++++++++- .../persistence/FileStatusPersistenceService.java | 7 +++++++ .../service/persistence/repository/FileRepository.java | 3 +++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java index c2916b5c2..91ddfbdc7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java @@ -65,6 +65,7 @@ public class FileStatusProcessingUpdateService { } + @Transactional public void preprocessingSuccessful(String dossierId, String fileId, UntouchedDocumentResponse untouchedDocumentResponse) { @@ -94,6 +95,7 @@ public class FileStatusProcessingUpdateService { public void preprocessingFailed(String dossierId, String fileId, FileErrorInfo fileErrorInfo) { + if (fileErrorInfo != null && StringUtils.isEmpty(fileErrorInfo.getCause())) { fileErrorInfo.setCause("preprocessingFailed"); } @@ -104,7 +106,11 @@ public class FileStatusProcessingUpdateService { private void setStatusError(String dossierId, String fileId, FileErrorInfo fileErrorInfo) { retryTemplate.execute(retryContext -> { - log.warn("Retrying {} time to set ERROR status for file {} in dossier {} with reason {} ", retryContext.getRetryCount(), fileId, dossierId, fileErrorInfo != null ? fileErrorInfo.getCause() : null); + log.warn("Retrying {} time to set ERROR status for file {} in dossier {} with reason {} ", + retryContext.getRetryCount(), + fileId, + dossierId, + fileErrorInfo != null ? fileErrorInfo.getCause() : null); fileStatusService.setStatusError(fileId, fileErrorInfo); return null; }); @@ -159,6 +165,7 @@ public class FileStatusProcessingUpdateService { fileErrorInfo.setCause("ocrFailed"); } setStatusError(dossierId, fileId, fileErrorInfo); + fileStatusPersistenceService.resetOcrStartAndEndDate(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 87f8a2261..19c0f5381 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 @@ -549,6 +549,13 @@ public class FileStatusPersistenceService { } + @Transactional + public void resetOcrStartAndEndDate(String fileId) { + + fileRepository.resetOcrStartAndEndDate(fileId); + } + + public void updateLayoutProcessedTime(String fileId) { fileRepository.updateLayoutProcessedTime(fileId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); 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 e2e91274f..23c0b5ad2 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 @@ -360,6 +360,9 @@ public interface FileRepository extends JpaRepository { @Query("select f.filename from FileEntity f where f.id = :fileId") Optional getFilenameById(@Param("fileId") String fileId); + @Modifying(clearAutomatically = true) + @Query("update FileEntity f set f.ocrStartTime = NULL, f.ocrEndTime = NULL, f.numberOfPagesToOCR = NULL, f.numberOfOCRedPages = NULL where f.id = :fileId") + void resetOcrStartAndEndDate(@Param("fileId") String fileId); }