diff --git a/src/main/java/com/supervision/common/constant/XxlJobConstants.java b/src/main/java/com/supervision/common/constant/XxlJobConstants.java index a6ea77e..dabc6ad 100644 --- a/src/main/java/com/supervision/common/constant/XxlJobConstants.java +++ b/src/main/java/com/supervision/common/constant/XxlJobConstants.java @@ -5,5 +5,5 @@ public class XxlJobConstants { public static final String URL_JOB_INFO_PAGE_LIST = "/jobinfo/pageList"; public static final String URL_JOB_INFO_TRIGGER = "/jobinfo/trigger"; public static final String TASK_NAME_PROMPT_EXTRACT_TASK= "promptExtractTask"; - public static final String TASK_NAME_EVIDENCE_ANALYSIS = "extractEvidenceByTask"; + public static final String TASK_NAME_EVIDENCE_ANALYSIS = "evidenceAnalysis"; } diff --git a/src/main/java/com/supervision/police/dto/CaseProcessDTO.java b/src/main/java/com/supervision/police/dto/CaseProcessDTO.java index 4291285..80f1c9c 100644 --- a/src/main/java/com/supervision/police/dto/CaseProcessDTO.java +++ b/src/main/java/com/supervision/police/dto/CaseProcessDTO.java @@ -1,6 +1,7 @@ package com.supervision.police.dto; import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonFormat; import com.supervision.police.domain.ModelCase; import lombok.Data; @@ -21,6 +22,7 @@ public class CaseProcessDTO { /** * 分析成功时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime analysisSuccessTime; /** diff --git a/src/main/java/com/supervision/police/dto/TaskInfoDTO.java b/src/main/java/com/supervision/police/dto/TaskInfoDTO.java index 75c83d2..af4ed3e 100644 --- a/src/main/java/com/supervision/police/dto/TaskInfoDTO.java +++ b/src/main/java/com/supervision/police/dto/TaskInfoDTO.java @@ -1,5 +1,6 @@ package com.supervision.police.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.time.LocalDateTime; @@ -26,6 +27,15 @@ public class TaskInfoDTO { */ private String taskName; + + private String taskType; + + + private String promptId; + + + private String promptName; + /** * 任务状态 */ @@ -34,11 +44,13 @@ public class TaskInfoDTO { /** * 任务取消时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime cancelTime; /** * 任务创建时间 */ + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime createTime; /** diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java index e0334a7..48e6c67 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -48,7 +48,6 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; - import static com.supervision.common.constant.XxlJobConstants.TASK_NAME_EVIDENCE_ANALYSIS; @Slf4j 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 d9aae92..0a6d400 100644 --- a/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/ModelCaseServiceImpl.java @@ -377,7 +377,7 @@ public class ModelCaseServiceImpl extends ServiceImpl records = iPage.getRecords(); // 添加 附属内容 - attachRecord(query.getCaseId(), records); + attachRecord(query, records); return iPage; } @@ -466,13 +466,14 @@ public class ModelCaseServiceImpl extends ServiceImpl indexDetails) { + private void attachRecord(IndexResultQuery query, List indexDetails) { if (CollUtil.isEmpty(indexDetails)) { return; } + String caseId = query.getCaseId(); // indexDetails中涉及到的原子指标结果数据 List indexIdList = indexDetails.stream().map(IndexDetail::getIndexId).toList(); @@ -507,6 +508,14 @@ public class ModelCaseServiceImpl extends ServiceImpl atomicIndexIds = IndexRuleUtil.getAtomicIndexIds(record.getIndexRule()); List atomics = modelCaseMapper.getAtomicDetail(caseId, record.getIndexId(), atomicIndexIds); + if (Objects.nonNull(query.getIndexHasRecord())){ + atomics = atomics.stream() + .filter(atomic -> query.getIndexHasRecord() + ? StrUtil.isNotEmpty(atomic.getRecordSplitId()) + : StrUtil.isEmpty(atomic.getRecordSplitId())) + .toList(); + } + for (AtomicIndexDTO atomic : atomics) { // 获取原子指标的判断规则 // 配置的指标的逻辑 diff --git a/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java b/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java index 4ee9762..ae723d6 100644 --- a/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java @@ -26,10 +26,8 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; import static com.supervision.common.constant.NotePromptConstants.TYPE_GRAPH_REASONING; import static com.supervision.common.constant.NotePromptConstants.TYPE_STRUCTURAL_REASONING; @@ -210,7 +208,35 @@ public class TaskRecordServiceImpl extends ServiceImpl queryTaskList(TaskInfoReqVO taskInfo, Integer page, Integer size) { taskInfo.checkSorted(); - return super.getBaseMapper().queryTaskList(taskInfo, Page.of(page, size)); + IPage iPage = super.getBaseMapper().queryTaskList(taskInfo, Page.of(page, size)); + + if (iPage.getRecords().isEmpty()){ + return iPage; + } + + List caseIds = iPage.getRecords().stream() + .filter(taskInfoDTO -> StrUtil.isEmpty(taskInfoDTO.getCaseName()) + && StrUtil.isNotEmpty(taskInfoDTO.getCaseId())) + .flatMap(taskInfoDTO -> Arrays.stream(taskInfoDTO.getCaseId().split(","))).distinct().toList(); + + Map caseNameMap = CollUtil.isEmpty(caseIds) ? new HashMap<>() : modelCaseService.listByIds(caseIds).stream().collect(Collectors.toMap(ModelCase::getId, ModelCase::getCaseName)); + return iPage.convert(taskInfoDTO -> { + if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.isNotEmpty(taskInfoDTO.getCaseId())){ + String caseNames = Arrays.stream(taskInfoDTO.getCaseId().split(",")) + .map(caseId -> caseNameMap.getOrDefault(caseId, "")).filter(StrUtil::isNotEmpty).distinct().collect(Collectors.joining(",")); + taskInfoDTO.setCaseName(caseNames); + } + + if (StrUtil.isEmpty(taskInfoDTO.getCaseName()) && StrUtil.equals(taskInfoDTO.getTaskType(), "0")){ + // 全部案件 + taskInfoDTO.setCaseName("全部"); + } + + if (StrUtil.isNotEmpty(taskInfoDTO.getPromptName())){ + taskInfoDTO.setPromptName("全部"); + } + return taskInfoDTO; + }); } @Override diff --git a/src/main/resources/mapper/ModelCaseMapper.xml b/src/main/resources/mapper/ModelCaseMapper.xml index ec17d34..73c90e4 100644 --- a/src/main/resources/mapper/ModelCaseMapper.xml +++ b/src/main/resources/mapper/ModelCaseMapper.xml @@ -129,7 +129,6 @@ and exists(select 1 from model_atomic_result mar join model_index_atomic_relation iar on mar.index_id = iar.model_index_id and mar.atomic_id = iar.atomic_index_id - left join note_record_split nrs on mar.record_split_id = nrs.id left join model_atomic_index mai on mar.atomic_id = mai.id where mar.case_id = #{query.caseId} @@ -140,13 +139,26 @@ - and nrs.id is null + and mar.record_split_id is null - and nrs.id is not null + and mar.record_split_id is not null - and mi.id = mar.index_id) + and mi.id = mar.index_id + + group by mar.index_id + having + + + sum(case when mar.record_split_id is not null then 1 else 0 end) = 0 + + + sum(case when mar.record_split_id is not null then 1 else 0 end) > 0 + + + + ) order by CASE mir.index_result WHEN 'true' THEN 1 WHEN 'false' THEN 2 else 0 END, mi.id desc diff --git a/src/main/resources/mapper/TaskRecordMapper.xml b/src/main/resources/mapper/TaskRecordMapper.xml index 36f59f0..623a740 100644 --- a/src/main/resources/mapper/TaskRecordMapper.xml +++ b/src/main/resources/mapper/TaskRecordMapper.xml @@ -29,8 +29,11 @@