From 45a6b5f69565044818c177d139f7efa8bc4c0705 Mon Sep 17 00:00:00 2001 From: xueqingkun <xueqingkun@126.com> Date: Thu, 25 Jul 2024 13:46:00 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=89=8B=E5=8A=A8=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=8E=9F=E5=AD=90=E6=8C=87=E6=A0=87=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/service/impl/ModelServiceImpl.java | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) 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不能为空");