RED-9255: implement file exchange

* add simplified text file to layoutparsing file export
* add validation for fileId/dossierId combinations
This commit is contained in:
Kilian Schuettler 2024-06-20 11:46:13 +02:00
parent fbf9320f6c
commit 4b61a19a95
2 changed files with 22 additions and 4 deletions

View File

@ -270,13 +270,31 @@ public class ReanalysisService {
public void reanalyzeTemplate(String dossierTemplateId, ReanalysisSettings reanalysisSettings) {
requestValidator.validateRequestOrThrow404(dossierTemplateId, reanalysisSettings.dossierIds(), reanalysisSettings.fileIds());
fileStatusService.getDossierTemplateStatus(dossierTemplateId)
var files = fileStatusService.getDossierTemplateStatus(dossierTemplateId)
.stream()
.filter(file -> isInList(file, reanalysisSettings))
.filter(reanalysisSettings.fileStatusFilter().fileStatusPredicate())
.filter(reanalysisSettings.fileStatusFilter().asPredicate())
.peek(file -> log.info("Reanalyzing file {}", file.getId()))
.forEach(file -> fileStatusService.setStatusFullReprocess(file.getDossierId(), file.getId(), false, reanalysisSettings.repeatStructureAnalysis()));
.toList();
validateFilesForReanalysis(files);
files.forEach(file -> fileStatusService.setStatusFullReprocess(file.getDossierId(), file.getId(), false, reanalysisSettings.repeatStructureAnalysis()));
}
private void validateFilesForReanalysis(List<FileModel> files) {
for (var file : files) {
if (file.isSoftOrHardDeleted()) {
throw new BadRequestException("Cannot reanalyse deleted file!");
}
if (file.getWorkflowStatus() == WorkflowStatus.APPROVED) {
throw new BadRequestException("Cannot reanalyse approved file!");
}
}
}

View File

@ -32,7 +32,7 @@ public class FileStatusFilter {
}
public Predicate<FileModel> fileStatusPredicate() {
public Predicate<FileModel> asPredicate() {
if (this.getProcessingStatusList() == null) {
this.setProcessingStatusList(new ArrayList<>());