Merge branch 'RED-9180-layout' into 'release/2.262.x'

RED-9180 - Also trigger a layout parsing when migrating non approved files

See merge request redactmanager/persistence-service!501
This commit is contained in:
Andrei Isvoran 2024-05-24 13:07:40 +02:00
commit f02f70ea39

View File

@ -1,17 +1,21 @@
package com.iqser.red.service.persistence.management.v1.processor.migration;
import static com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingQueueNames.LAYOUT_PARSING_REQUEST_QUEUE;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity;
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity;
import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService;
import com.iqser.red.service.persistence.management.v1.processor.service.layoutparsing.LayoutParsingRequestFactory;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus;
import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingRequest;
import lombok.RequiredArgsConstructor;
@ -23,17 +27,29 @@ public class ReanalyzeNonApprovedFilesService {
private final FileRepository fileRepository;
private final ReanalysisService reanalysisService;
private final LayoutParsingRequestFactory layoutParsingRequestFactory;
private final RabbitTemplate rabbitTemplate;
public void reanalyzeNonApprovedFiles() {
List<DossierEntity> dossierEntities = dossierRepository.findAll();
dossierEntities.stream().filter(dossier -> !dossier.isDeleted()).forEach(dossierEntity -> {
Set<String> unapprovedFilesByDossierIds = fileRepository.findByDossierIdAndWorkflowStatusNotApproved(dossierEntity.getId()).stream()
.filter(fileEntity -> !fileEntity.isSoftOrHardDeleted())
.map(FileEntity::getId)
.collect(Collectors.toSet());
reanalysisService.reanalyzeFiles(dossierEntity.getId(), unapprovedFilesByDossierIds, true);
});
dossierEntities.stream()
.filter(dossier -> !dossier.isDeleted())
.forEach(dossierEntity -> {
Set<String> unapprovedFilesByDossierIds = fileRepository.findByDossierIdAndWorkflowStatusNotApproved(dossierEntity.getId())
.stream()
.filter(fileEntity -> !fileEntity.isSoftOrHardDeleted())
.map(FileEntity::getId)
.collect(Collectors.toSet());
unapprovedFilesByDossierIds.forEach(id -> {
LayoutParsingRequest layoutParsingRequest = layoutParsingRequestFactory.build(dossierEntity.getId(), id, false);
rabbitTemplate.convertAndSend(LAYOUT_PARSING_REQUEST_QUEUE, layoutParsingRequest);
});
reanalysisService.reanalyzeFiles(dossierEntity.getId(), unapprovedFilesByDossierIds, true);
});
}
}