From 889b41485af074dbc0b884f18e91561d344aad66 Mon Sep 17 00:00:00 2001 From: liu Date: Mon, 5 Aug 2024 16:45:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../police/dto/AtomicIndexDTO.java | 5 +++ .../supervision/police/dto/IndexDetail.java | 7 ++++ .../police/dto/NoteRecordDetailDTO.java | 5 +++ .../police/mapper/ModelIndexResultMapper.java | 2 ++ .../service/impl/ModelCaseServiceImpl.java | 6 +++- .../police/service/impl/ModelServiceImpl.java | 2 ++ .../impl/NoteRecordSplitServiceImpl.java | 33 +++++++++++++++++-- src/main/resources/mapper/ModelCaseMapper.xml | 4 +-- .../mapper/ModelIndexResultMapper.xml | 7 ++++ 9 files changed, 66 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java b/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java index 61b6465..a023454 100644 --- a/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java +++ b/src/main/java/com/supervision/police/dto/AtomicIndexDTO.java @@ -37,6 +37,11 @@ public class AtomicIndexDTO { */ private String atomicResult; + /** + * 指标来源 1人工定义 2数据库查询 3图谱生成 4大模型 + */ + private String indexSource; + public void atomicResultToIndexResult() { JudgeResultEnum instance = JudgeResultEnum.getInstance(this.atomicResult); diff --git a/src/main/java/com/supervision/police/dto/IndexDetail.java b/src/main/java/com/supervision/police/dto/IndexDetail.java index 2c69009..c7734de 100644 --- a/src/main/java/com/supervision/police/dto/IndexDetail.java +++ b/src/main/java/com/supervision/police/dto/IndexDetail.java @@ -32,6 +32,13 @@ public class IndexDetail { */ private String atomicIds; + /** + * 上一次的结果 + */ + private String preResult; + + private boolean newFlag; + /** * 原子指标 */ diff --git a/src/main/java/com/supervision/police/dto/NoteRecordDetailDTO.java b/src/main/java/com/supervision/police/dto/NoteRecordDetailDTO.java index 2a1cd33..23732b0 100644 --- a/src/main/java/com/supervision/police/dto/NoteRecordDetailDTO.java +++ b/src/main/java/com/supervision/police/dto/NoteRecordDetailDTO.java @@ -57,6 +57,11 @@ public class NoteRecordDetailDTO { */ private String confessionEndTime; + /** + * 进度百分比 + */ + private String percentage; + private List children = new ArrayList<>(); public NoteRecordDetailDTO() { diff --git a/src/main/java/com/supervision/police/mapper/ModelIndexResultMapper.java b/src/main/java/com/supervision/police/mapper/ModelIndexResultMapper.java index 7746172..f9fdedf 100644 --- a/src/main/java/com/supervision/police/mapper/ModelIndexResultMapper.java +++ b/src/main/java/com/supervision/police/mapper/ModelIndexResultMapper.java @@ -15,5 +15,7 @@ public interface ModelIndexResultMapper extends BaseMapper { ModelIndexResult selectByCaseIdAndIndexId(@Param("caseId") String caseId, @Param("indexId") String indexId); + void updatePreResult(String caseId); + } diff --git a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java index a4cf0a1..2b4e0b9 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java @@ -263,6 +263,8 @@ public class ModelCaseServiceImpl extends ServiceImpl indexJundgeLogicMap = parseLogicMap(judgeLogic); String[] array = record.getAtomicIds().split(","); @@ -272,7 +274,9 @@ public class ModelCaseServiceImpl extends ServiceImpl atomicIndices = modelAtomicIndexMapper.selectByCaseType(modelCase.getCaseType()); Map atomicResultMap = new HashMap<>(); diff --git a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java index 4c95cab..3c84241 100644 --- a/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/NoteRecordSplitServiceImpl.java @@ -1,6 +1,7 @@ package com.supervision.police.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -214,12 +215,40 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl> nameMap = list.stream().filter(item -> StringUtils.isNotBlank(item.getName())).map(item -> new NoteRecordDetailDTO(item, fileMap)) .collect(Collectors.groupingBy(NoteRecordDetailDTO::getName, LinkedHashMap::new, Collectors.toList())); + // 获取所有的task任务 + List taskList = caseTaskRecordService.lambdaQuery().eq(CaseTaskRecord::getCaseId, noteRecords.getCaseId()).list(); + Map taskRecordMap = taskList.stream().collect(Collectors.toMap(CaseTaskRecord::getRecordId, Function.identity(), (k1, k2) -> k1)); + List res = new ArrayList<>(); for (String name : nameMap.keySet()) { NoteRecordDetailDTO noteRecordDetailDTO = new NoteRecordDetailDTO(); noteRecordDetailDTO.setName(name); - noteRecordDetailDTO.setChildren(nameMap.get(name)); - noteRecordDetailDTO.setConfessionMaterial(CollUtil.size(noteRecordDetailDTO.getFileList())); + + List noteRecordDetailDTOS = nameMap.get(name); + int fileCount = 0; + for (NoteRecordDetailDTO recordDetailDTO : noteRecordDetailDTOS) { + fileCount = fileCount + recordDetailDTO.getFileList().size(); + CaseTaskRecord caseTaskRecord = taskRecordMap.get(recordDetailDTO.getId()); + if (ObjectUtil.isNotEmpty(caseTaskRecord)) { + if (caseTaskRecord.getStatus() == 2) { + recordDetailDTO.setPercentage("100%"); + } else if (caseTaskRecord.getStatus() == 0) { + recordDetailDTO.setPercentage("0%"); + } else { + if (caseTaskRecord.getTaskCount() == 0) { + recordDetailDTO.setPercentage("0%"); + } else { + // 获取执行的数量 + double v = caseTaskRecord.getFinishCount() * 100.0 / caseTaskRecord.getTaskCount(); + // 不能超过100% + recordDetailDTO.setPercentage(String.format("%.2f%%", Math.min(v, 100))); + } + } + } + } + noteRecordDetailDTO.setChildren(noteRecordDetailDTOS); + // 统计所有children的文件数量 + noteRecordDetailDTO.setConfessionMaterial(fileCount); res.add(noteRecordDetailDTO); } List pager = ListUtils.Pager(size, page, res); diff --git a/src/main/resources/mapper/ModelCaseMapper.xml b/src/main/resources/mapper/ModelCaseMapper.xml index 45ff622..56d08c4 100644 --- a/src/main/resources/mapper/ModelCaseMapper.xml +++ b/src/main/resources/mapper/ModelCaseMapper.xml @@ -47,7 +47,7 @@ and mi.index_type = #{indexType} select * from model_index_result where case_id = #{caseId} and index_id = #{indexId} + + + UPDATE model_index_result + SET pre_result = index_result + WHERE case_id = #{caseId} + \ No newline at end of file