RED-10353: Reset processingErrorCounter when rules are updated

This commit is contained in:
Dominique Eifländer 2024-10-31 11:00:51 +01:00
parent a23aa12527
commit 3df86ade4a
3 changed files with 14 additions and 0 deletions

View File

@ -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()

View File

@ -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) {

View File

@ -125,6 +125,13 @@ public interface FileRepository extends JpaRepository<FileEntity, String> {
@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,