Merge branch 'RED-10353-4.3' into 'release/2.589.x'
RED-10353: Renealyse files in error state after rule change is no rules... See merge request redactmanager/persistence-service!574
This commit is contained in:
commit
c2ed01b540
@ -25,6 +25,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.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.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.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.FileModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus;
|
||||||
|
|
||||||
@ -103,7 +104,7 @@ public class ReanalysisRequiredStatusService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ProcessingStatus.ERROR.equals(fileStatus.getProcessingStatus()) && !ignoreProcessingStates) {
|
if (ProcessingStatus.ERROR.equals(fileStatus.getProcessingStatus()) && !ignoreProcessingStates) {
|
||||||
return new AnalysisRequiredResult(false, false);
|
return computeAnalysisRequiredForErrorState(dossier, fileStatus, dossierTemplateVersionMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ProcessingStatus.PROCESSED.equals(fileStatus.getProcessingStatus())
|
if (ProcessingStatus.PROCESSED.equals(fileStatus.getProcessingStatus())
|
||||||
@ -131,6 +132,21 @@ 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,
|
private AnalysisRequiredResult requiresReanalysisBasedOnVersionDifference(FileModel fileStatus,
|
||||||
DossierEntity dossier,
|
DossierEntity dossier,
|
||||||
Map<String, Map<VersionType, Long>> dossierTemplateVersionMap,
|
Map<String, Map<VersionType, Long>> dossierTemplateVersionMap,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user