diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/ReanalyzeNonApprovedFilesService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/ReanalyzeNonApprovedFilesService.java index 0d124c7ac..f47ebb44e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/ReanalyzeNonApprovedFilesService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/ReanalyzeNonApprovedFilesService.java @@ -28,11 +28,7 @@ public class ReanalyzeNonApprovedFilesService { List dossierEntities = dossierRepository.findAll(); dossierEntities.forEach(dossierEntity -> { - List unapprovedFilesByDossier = fileRepository.findByDossierId(dossierEntity.getId()) - .stream() - .filter(fileEntity -> !fileEntity.getWorkflowStatus().equals(WorkflowStatus.APPROVED)) - .toList(); - Set unapprovedFilesByDossierIds = unapprovedFilesByDossier.stream() + Set unapprovedFilesByDossierIds = fileRepository.findByDossierIdAndWorkflowStatusNotApproved(dossierEntity.getId()).stream() .map(FileEntity::getId) .collect(Collectors.toSet()); reanalysisService.reanalyzeFiles(dossierEntity.getId(), unapprovedFilesByDossierIds, true); 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 775564d99..8b12e1333 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 @@ -30,6 +30,10 @@ public interface FileRepository extends JpaRepository { List findByAddedBefore(OffsetDateTime end); + @Query("SELECT f FROM FileEntity f WHERE f.dossierId = :dossierId AND f.workflowStatus <> 'APPROVED'") + List findByDossierIdAndWorkflowStatusNotApproved(@Param("dossierId") String dossierId); + + @Modifying @Query("update FileEntity e set e.hasRedactions = :hasRedactions ," + " e.hasHints = :hasHints, e.hasSuggestions = :hasSuggestions," @@ -168,12 +172,13 @@ public interface FileRepository extends JpaRepository { @Param("lastUpdated") OffsetDateTime lastUpdated, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, " + "f.deleted = :softDeletedTime where f.id in (:fileIds)") int softDeleteFiles(@Param("fileIds") List fileIds, - @Param("processingStatus") ProcessingStatus processingStatus, - @Param("lastUpdated") OffsetDateTime lastUpdated, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Param("processingStatus") ProcessingStatus processingStatus, + @Param("lastUpdated") OffsetDateTime lastUpdated, + @Param("softDeletedTime") OffsetDateTime softDeletedTime); @Modifying @@ -380,10 +385,7 @@ public interface FileRepository extends JpaRepository { + " when f.deleted is not null then f.deleted " + "end " + "where f.id in (:fileIds)") - int hardDeleteFiles(@Param("fileIds") List fileIds, - @Param("processingStatus") ProcessingStatus processingStatus, - @Param("deletionTime") OffsetDateTime deletionTime); - + int hardDeleteFiles(@Param("fileIds") List fileIds, @Param("processingStatus") ProcessingStatus processingStatus, @Param("deletionTime") OffsetDateTime deletionTime); }