RED-10353: Reanalyse files in ERROR state if rule changed and not ErrorCode = RULES_EXECUTION_TIMEOUT
This commit is contained in:
parent
441cebdd1b
commit
55f8da712e
@ -23,7 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
public class ManualChangesReorderingMigration23 extends Migration {
|
||||
|
||||
private static final String NAME = "Migration for reordering mixed up manual changes";
|
||||
private static final long VERSION = 28;
|
||||
private static final long VERSION = 23;
|
||||
private final EntityLogEntryDocumentRepository entityLogEntryDocumentRepository;
|
||||
private final AddRedactionPersistenceService addRedactionPersistenceService;
|
||||
private final FileStatusService fileStatusService;
|
||||
|
||||
@ -23,6 +23,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentMappingMetadata;
|
||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ErrorCode;
|
||||
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.ProcessingStatus;
|
||||
|
||||
@ -97,7 +98,7 @@ public class ReanalysisRequiredStatusService {
|
||||
}
|
||||
|
||||
if (ProcessingStatus.ERROR.equals(fileStatus.getProcessingStatus()) && !ignoreProcessingStates) {
|
||||
return new AnalysisRequiredResult(false, false);
|
||||
return computeAnalysisRequiredForErrorState(dossier, fileStatus, dossierTemplateVersionMap);
|
||||
}
|
||||
|
||||
if (ProcessingStatus.PROCESSED.equals(fileStatus.getProcessingStatus())
|
||||
@ -125,6 +126,22 @@ public class ReanalysisRequiredStatusService {
|
||||
}
|
||||
|
||||
|
||||
private AnalysisRequiredResult computeAnalysisRequiredForErrorState(DossierEntity dossier,FileModel fileStatus, Map<String, Map<VersionType, Long>> dossierTemplateVersionMap){
|
||||
Map<VersionType, Long> dossierTemplateVersions = dossierTemplateVersionMap.computeIfAbsent(dossier.getDossierTemplateId(),
|
||||
k -> buildVersionData(dossier.getDossierTemplateId()));
|
||||
var rulesVersionMatches = fileStatus.getRulesVersion() == dossierTemplateVersions.getOrDefault(RULES, -1L);
|
||||
var componentRulesVersionMatches = fileStatus.getComponentRulesVersion() == dossierTemplateVersions.getOrDefault(COMPONENT_RULES, -1L);
|
||||
|
||||
var isRuleExecutionTimeout = fileStatus.getFileErrorInfo() != null && fileStatus.getFileErrorInfo().getErrorCode() != null && fileStatus.getFileErrorInfo().getErrorCode().equals(
|
||||
ErrorCode.RULES_EXECUTION_TIMEOUT);
|
||||
|
||||
var fullAnalysisRequired = (!rulesVersionMatches || !componentRulesVersionMatches) && !isRuleExecutionTimeout;
|
||||
|
||||
return new AnalysisRequiredResult(false, fullAnalysisRequired);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private AnalysisRequiredResult requiresReanalysisBasedOnVersionDifference(FileModel fileStatus,
|
||||
DossierEntity dossier,
|
||||
Map<String, Map<VersionType, Long>> dossierTemplateVersionMap,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user