|
|
|
@ -155,8 +155,9 @@ public class ModelServiceImpl implements ModelService {
|
|
|
|
|
return R.fail("未找到指标原子关系信息");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 将原先的值进行赋值,设置到pre_result
|
|
|
|
|
modelIndexResultMapper.updatePreResult(analyseCaseDTO.getCaseId());
|
|
|
|
|
List<ModelAtomicResult> modelAtomicResultList = modelAtomicResultService.lambdaQuery().eq(ModelAtomicResult::getCaseId, caseId).list();
|
|
|
|
|
|
|
|
|
|
log.info("开始计算指标结果");
|
|
|
|
|
// 遍历指标集合,处理每个指标的判断逻辑,得出结果
|
|
|
|
|
modelIndices.forEach(modelIndex -> {
|
|
|
|
@ -226,7 +227,6 @@ public class ModelServiceImpl implements ModelService {
|
|
|
|
|
modelIndexResult.setId(exist.getId());
|
|
|
|
|
}
|
|
|
|
|
modelIndexResult.setIndexResult(result ? "true" : "false");
|
|
|
|
|
|
|
|
|
|
// 先清除掉与指标失去关联的原子指标对应的结果
|
|
|
|
|
removeAtomicResultWithNoReference(modelIndex.getId(), modelIndexAtomicRelations, modelAtomicResultList);
|
|
|
|
|
|
|
|
|
@ -254,7 +254,6 @@ public class ModelServiceImpl implements ModelService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void removeAtomicResultWithNoReference(String modelIndexId, List<ModelIndexAtomicRelation> modelIndexAtomicRelations,
|
|
|
|
|
List<ModelAtomicResult> modelAtomicResultList) {
|
|
|
|
|
List<String> atomicIds = modelIndexAtomicRelations.stream()
|
|
|
|
@ -266,7 +265,7 @@ public class ModelServiceImpl implements ModelService {
|
|
|
|
|
&& !atomicIds.contains(atomicResult.getAtomicId())).toList();
|
|
|
|
|
|
|
|
|
|
for (ModelAtomicResult modelAtomicResult : modelAtomicResults) {
|
|
|
|
|
log.info("删除无引用的原子指标结果,指标id:{},原子指标ID:{}", modelIndexId,modelAtomicResult.getAtomicId());
|
|
|
|
|
log.info("删除无引用的原子指标结果,指标id:{},原子指标ID:{}", modelIndexId, modelAtomicResult.getAtomicId());
|
|
|
|
|
modelAtomicResultMapper.deleteById(modelAtomicResult.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -358,7 +357,8 @@ public class ModelServiceImpl implements ModelService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isNotEmpty(ruleCondition.getOperator()) && StringUtils.isNotEmpty(ruleCondition.getValue()) && CalculationUtil.evaluateExpression(String.valueOf(count), ruleCondition.getOperator(), ruleCondition.getValue())) {
|
|
|
|
|
//如果关系判断要求“不存在”,则判断count是否为0,如果关系判断要求“存在”,则判断count是否大于value
|
|
|
|
|
if ((ruleCondition.getRelationalSymbol().equals("4") && count == 0) || (StringUtils.isNotEmpty(ruleCondition.getOperator()) && StringUtils.isNotEmpty(ruleCondition.getValue()) && CalculationUtil.evaluateExpression(String.valueOf(count), ruleCondition.getOperator(), ruleCondition.getValue()))) {
|
|
|
|
|
flag = true;
|
|
|
|
|
}
|
|
|
|
|
modelAtomicResultService.saveOrUpdate(atomicResult);
|
|
|
|
|