1. 手动定义原子指标处理

topo_dev
xueqingkun 9 months ago
parent 79472437ec
commit 45a6b5f695

@ -84,15 +84,16 @@ public class ModelServiceImpl implements ModelService {
//index_source==3
//查询图谱 index_source: 1人工定义 2数据库查询 3图谱生成 4大模型
if ("1".endsWith(atomicIndex.getIndexSource())) {
if ("1".equals(atomicIndex.getIndexSource())) {
// list
} else if ("2".endsWith(atomicIndex.getIndexSource()) && StringUtils.isNotEmpty(ql)) {
manuallyDefinedCase(analyseCaseDTO, result, atomicIndex);
} else if ("2".equals(atomicIndex.getIndexSource()) && StringUtils.isNotEmpty(ql)) {
//
analyseDataBaseCase(analyseCaseDTO, result, ql);
} else if ("3".endsWith(atomicIndex.getIndexSource()) && StringUtils.isNotEmpty(ql)) {
} else if ("3".equals(atomicIndex.getIndexSource()) && StringUtils.isNotEmpty(ql)) {
// 使用知识图谱进行计算
analyseGraphCase(analyseCaseDTO, result, ql);
} else if ("4".endsWith(atomicIndex.getIndexSource())) {
} else if ("4".equals(atomicIndex.getIndexSource())) {
//
}
} catch (Exception e) {
@ -106,14 +107,36 @@ public class ModelServiceImpl implements ModelService {
result.setId(exist.getId());
modelAtomicResultMapper.updateById(result);
}
// 所有原子指标id,判断结果是否为1,如果为1,则符合,为true
atomicResultMap.put(result.getAtomicId(), "1".equals(result.getAtomicResult()));
// 所有原子指标id,判断结果是否为1 或者3,如果为1或者3,则符合,为true
atomicResultMap.put(result.getAtomicId(), "1".equals(result.getAtomicResult()) || "3".equals(result.getAtomicResult()));
}
// 最终计算得分
calculateFinalScore(analyseCaseDTO, modelCase, atomicResultMap);
return R.ok();
}
/**
*
* @param analyseCaseDTO
* @param result
* @param atomicIndex
*/
private void manuallyDefinedCase(AnalyseCaseDTO analyseCaseDTO, ModelAtomicResult result, ModelAtomicIndex atomicIndex) {
List<ModelAtomicResult> modelAtomicResults = modelAtomicResultMapper.selectList(
new LambdaQueryWrapper<ModelAtomicResult>().eq(ModelAtomicResult::getCaseId, analyseCaseDTO.getCaseId())
.eq(ModelAtomicResult::getAtomicId, atomicIndex.getId()));
if (CollUtil.isEmpty(modelAtomicResults)){
log.info("manuallyDefinedCase:根据caseId:{},auomicId:{}未找到原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId());
return;
}
if (CollUtil.size(modelAtomicResults) > 0){
log.warn("manuallyDefinedCase:根据caseId:{},auomicId:{}找到多个原子指标结果", analyseCaseDTO.getCaseId(), atomicIndex.getId());
}
ModelAtomicResult modelAtomicResult = CollUtil.getFirst(modelAtomicResults);
result.setAtomicResult(modelAtomicResult.getAtomicResult());
}
@Override
public String caseScoreDetail(String caseId) {
Assert.notEmpty(caseId, "案件id不能为空");

Loading…
Cancel
Save