添加兜底保存原子指标结果,追加日志

topo_dev
DESKTOP-DDTUS3E\yaxin 6 months ago
parent a74e8f116f
commit c465432b72

@ -224,7 +224,7 @@ public class ModelServiceImpl implements ModelService {
log.info("开始计算指标结果");
// 遍历指标集合,处理每个指标的判断逻辑,得出结果
modelIndices.forEach(modelIndex -> {
log.info("开始计算指标ID:{},指标名称:{}", modelIndex.getId(), modelIndex.getName());
log.info("开始计算指标【{}】ID:{}", modelIndex.getId(), modelIndex.getName());
IndexRule indexRule = modelIndex.getIndexRule();
Set<Boolean> ruleConditionGroupResultList = new HashSet<>();
if (indexRule != null) {
@ -449,6 +449,7 @@ public class ModelServiceImpl implements ModelService {
switch (left.getAggregateType()) {
case AGGREGATE_TYPE_SUM:
if (OPERAND_TYPE_STRUCTURE.equals(right.getOperandType())) {
log.info("左操作数总和:【{}】,操作符:【{}】,右操作数:【{}】", getSumFromEvidences(left.getPropertyKey(), evidences), operator, right.getValue());
List<CaseEvidence> rightEvidences = getEvidencesByPromptId(rightModelAtomicIndex.getPromptId(), caseEvidences, evidenceDirectories, notePrompts);
if (CalculationUtil.evaluateExpression(String.valueOf(getSumFromEvidences(left.getPropertyKey(), evidences)), operator, String.valueOf(getSumFromEvidences(right.getPropertyKey(), rightEvidences)))) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
@ -456,6 +457,7 @@ public class ModelServiceImpl implements ModelService {
return true;
}
} else if (OPERAND_TYPE_VALUE.equals(right.getOperandType())) {
log.info("左操作数总和:【{}】,操作符:【{}】,右操作数:【{}】", getSumFromEvidences(left.getPropertyKey(), evidences), operator, right.getValue());
if (CalculationUtil.evaluateExpression(String.valueOf(getSumFromEvidences(left.getPropertyKey(), evidences)), operator, right.getValue())) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
modelAtomicResultService.saveOrUpdate(atomicResult);
@ -465,6 +467,7 @@ public class ModelServiceImpl implements ModelService {
break;
case AGGREGATE_TYPE_COUNT:
if (OPERAND_TYPE_STRUCTURE.equals(right.getOperandType())) {
log.info("左操作数数量:【{}】,操作符:【{}】,右操作数:【{}】", evidences.size(), operator, right.getValue());
List<CaseEvidence> rightEvidences = getEvidencesByPromptId(rightModelAtomicIndex.getPromptId(), caseEvidences, evidenceDirectories, notePrompts);
if (CalculationUtil.evaluateExpression(String.valueOf(evidences.size()), operator, String.valueOf(rightEvidences.size()))) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
@ -472,6 +475,7 @@ public class ModelServiceImpl implements ModelService {
return true;
}
} else if (OPERAND_TYPE_VALUE.equals(right.getOperandType())) {
log.info("左操作数数量:【{}】,操作符:【{}】,右操作数:【{}】", evidences.size(), operator, right.getValue());
if (CalculationUtil.evaluateExpression(String.valueOf(evidences.size()), operator, right.getValue())) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
modelAtomicResultService.saveOrUpdate(atomicResult);
@ -484,6 +488,7 @@ public class ModelServiceImpl implements ModelService {
List<CaseEvidence> rightEvidences = getEvidencesByPromptId(rightModelAtomicIndex.getPromptId(), caseEvidences, evidenceDirectories, notePrompts);
Set<String> leftValueSet = getValueSetFromEvidences(left, evidences);
Set<String> rightValueSet = getValueSetFromEvidences(right, rightEvidences);
log.info("左操作数值集合:【{}】,操作符:【{}】,右操作数:【{}】", leftValueSet, operator, right.getValue());
// 使用CalculationUtil.evaluateExpression方法遍历比较leftValueSet和rightValueSet的任一值一旦有一个满足返回true则return true
if (leftValueSet.stream().anyMatch(leftValue -> rightValueSet.stream().anyMatch(rightValue -> CalculationUtil.evaluateExpression(leftValue, operator, rightValue)))) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
@ -492,6 +497,7 @@ public class ModelServiceImpl implements ModelService {
}
} else if (OPERAND_TYPE_VALUE.equals(right.getOperandType())) {
Set<String> leftValueSet = getValueSetFromEvidences(left, evidences);
log.info("左操作数值集合:【{}】,操作符:【{}】,右操作数:【{}】", leftValueSet, operator, right.getValue());
if (leftValueSet.stream().anyMatch(leftValue -> CalculationUtil.evaluateExpression(leftValue, operator, right.getValue()))) {
atomicResult.setAtomicResult(JudgeResultEnum.EXIST.getCode());
modelAtomicResultService.saveOrUpdate(atomicResult);
@ -504,6 +510,8 @@ public class ModelServiceImpl implements ModelService {
modelAtomicResultService.saveOrUpdate(atomicResult);
break;
}
atomicResult.setAtomicResult(JudgeResultEnum.NOT_EXIST.getCode());
modelAtomicResultService.saveOrUpdate(atomicResult);
} else {
log.error("证据不存在。提示词ID:{}", modelAtomicIndex.getPromptId());
atomicResult.setAtomicResult(JudgeResultEnum.NOT_EXIST.getCode());

Loading…
Cancel
Save