|
|
|
@ -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不能为空");
|
|
|
|
|