From 3df86ade4ac60ddf76732609820bde120b1d878f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Thu, 31 Oct 2024 11:00:51 +0100 Subject: [PATCH] RED-10353: Reset processingErrorCounter when rules are updated --- .../v1/external/api/impl/controller/RulesController.java | 3 +++ .../service/persistence/FileStatusPersistenceService.java | 4 ++++ .../service/persistence/repository/FileRepository.java | 7 +++++++ 3 files changed, 14 insertions(+) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java index e76aee9e8..ad0962f9b 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java @@ -26,6 +26,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.FileU import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.RulesValidationMapper; import com.iqser.red.service.persistence.service.v1.api.external.resource.RulesResource; @@ -52,6 +53,7 @@ public class RulesController implements RulesResource { private final RulesPersistenceService rulesPersistenceService; private final RulesValidationService rulesValidationService; private final AuditPersistenceService auditPersistenceService; + private final FileStatusPersistenceService fileStatusPersistenceService; @Override @@ -75,6 +77,7 @@ public class RulesController implements RulesResource { } if (!rules.isDryRun()) { rulesPersistenceService.setRules(rulesUploadRequest.getRules(), rulesUploadRequest.getDossierTemplateId(), rulesUploadRequest.getRuleFileType()); + fileStatusPersistenceService.resetErrorCounter(rules.getDossierTemplateId()); } auditPersistenceService.audit(AuditRequest.builder() 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 0c0c3a588..623d35c16 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 @@ -646,6 +646,10 @@ public class FileStatusPersistenceService { fileRepository.updateFileModificationDate(fileId, fileManipulationDate); } + @Transactional + public void resetErrorCounter(String dossierTemplateId){ + fileRepository.updateErrorCounter(dossierTemplateId, 0); + } @Transactional public void updateHasHighlights(String fileId, boolean hasHighlights) { 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 86c52d055..1a2388af6 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 @@ -125,6 +125,13 @@ public interface FileRepository extends JpaRepository { @Param("processingErrorCounter") int processingErrorCounter); + @Modifying(clearAutomatically = true) + @Query("update FileEntity f set f.processingErrorCounter = :processingErrorCounter " + + "where f.dossierId in (select fe.dossierId from FileEntity fe inner join DossierEntity d on d.id = fe.dossierId where d.dossierTemplateId = :dossierTemplateId) and f.processingStatus = 'ERROR'") + void updateErrorCounter(@Param("dossierTemplateId") String dossierTemplateId, + @Param("processingErrorCounter") int processingErrorCounter); + + @Modifying @Query("update FileEntity f set f.errorCause = :cause, f.errorQueue = :queue, f.errorService = :service, f.errorTimestamp = :timestamp " + "where f.id = :fileId") void updateStatusErrorInfo(@Param("fileId") String fileId,