diff --git a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java index 374998d..9e1d5a8 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelServiceImpl.java @@ -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不能为空");