RED-9255: give reanalysis endpoint a request model
This commit is contained in:
parent
856f09583a
commit
27d2208a72
@ -23,6 +23,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileSta
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusMapper;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.FileExchangeExportService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.model.ReAnalysisSettings;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.resource.SupportResource;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus;
|
||||
@ -47,9 +48,10 @@ public class SupportController implements SupportResource {
|
||||
|
||||
|
||||
@Override
|
||||
public void reanalyzeFiles(String dossierTemplateId, boolean repeatStructureAnalysis) {
|
||||
public void reanalyzeFiles(String dossierTemplateId, ReAnalysisSettings reAnalysisSettings) {
|
||||
|
||||
reanalysisService.reanalyzeTemplate(dossierTemplateId, repeatStructureAnalysis);
|
||||
log.info("Scheduling reanalysis for all files in Dossier Tempalte {} with settings {}", dossierTemplateId, reAnalysisSettings);
|
||||
reanalysisService.reanalyzeTemplate(dossierTemplateId, reAnalysisSettings);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.model.ReAnalysisSettings;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatusFilter;
|
||||
@ -54,7 +55,7 @@ public interface SupportResource {
|
||||
@Operation(summary = "Reanalyze all files in dossier template", description = "None")
|
||||
@ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden")})
|
||||
void reanalyzeFiles(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId,
|
||||
@RequestParam(value = FULL_REANALYSIS_PARAM, required = false, defaultValue = FALSE) boolean repeatStructureAnalysis);
|
||||
@RequestBody ReAnalysisSettings reAnalysisSettings);
|
||||
|
||||
|
||||
@PostMapping(value = ERROR_REANALYSIS_REST_PATH)
|
||||
|
||||
@ -594,7 +594,7 @@ paths:
|
||||
- Component Definitions
|
||||
summary: Create new component definitions
|
||||
description: |
|
||||
Create new component definitions for a given dossier template. The component will have a technical name which is automatically converted to snake case
|
||||
Create new component definitions for a given dossier template. The component will have a technical name which is automatically converted to snake case
|
||||
that can't be updated after the creation. The rank is used to determine the order in which the components are displayed. The component's rank will
|
||||
automatically be appended at the end based on the current number of components of this dossier template.
|
||||
parameters:
|
||||
|
||||
@ -9,6 +9,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.external.model.ReAnalysisSettings;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.DeleteImportedRedactionsRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType;
|
||||
@ -265,13 +266,23 @@ public class ReanalysisService {
|
||||
}
|
||||
|
||||
|
||||
public void reanalyzeTemplate(String dossierTemplateId, boolean repeatStructureAnalysis) {
|
||||
public void reanalyzeTemplate(String dossierTemplateId, ReAnalysisSettings reAnalysisSettings) {
|
||||
|
||||
fileStatusService.getDossierTemplateStatus(dossierTemplateId)
|
||||
.stream()
|
||||
.filter(file -> !file.isSoftOrHardDeleted())
|
||||
.forEach(file -> fileStatusService.setStatusFullReprocess(file.getDossierId(), file.getId(), false, repeatStructureAnalysis));
|
||||
.filter(file -> isInList(file, reAnalysisSettings))
|
||||
.filter(file -> file.getProcessingStatus().equals(ProcessingStatus.ERROR) || !reAnalysisSettings.onlyErrorFiles())
|
||||
.peek(file -> log.info("Reanalyzing file {}", file.getId()))
|
||||
.forEach(file -> fileStatusService.setStatusFullReprocess(file.getDossierId(), file.getId(), false, reAnalysisSettings.repeatStructureAnalysis()));
|
||||
|
||||
}
|
||||
|
||||
|
||||
private boolean isInList(FileModel file, ReAnalysisSettings reAnalysisSettings) {
|
||||
|
||||
return (reAnalysisSettings.fileIds().isEmpty() || reAnalysisSettings.fileIds().contains(file.getId())) //
|
||||
&& (reAnalysisSettings.dossierIds().isEmpty() || reAnalysisSettings.dossierIds().contains(file.getDossierId()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user