From 3d22bb579c226159a7b229d7d43510cb15093763 Mon Sep 17 00:00:00 2001 From: yaxin Date: Mon, 30 Dec 2024 14:58:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E3=80=81=E6=A1=88=E4=BB=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86=EF=BC=8C?= =?UTF-8?q?code=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/supervision/job/XxlJobTask.java | 29 ++++------ .../police/service/TaskRecordService.java | 30 ++++++++--- .../service/impl/TaskRecordServiceImpl.java | 53 ++++++++++++++----- 3 files changed, 70 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/supervision/job/XxlJobTask.java b/src/main/java/com/supervision/job/XxlJobTask.java index 595e511..b6c5557 100644 --- a/src/main/java/com/supervision/job/XxlJobTask.java +++ b/src/main/java/com/supervision/job/XxlJobTask.java @@ -1,19 +1,20 @@ package com.supervision.job; -import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.supervision.common.constant.XxlJobConstants; -import com.supervision.neo4j.service.Neo4jService; import com.supervision.police.domain.NotePrompt; import com.supervision.police.domain.TaskCaseRecord; import com.supervision.police.domain.TaskRecord; -import com.supervision.police.domain.TripleInfo; -import com.supervision.police.service.*; +import com.supervision.police.service.CaseEvidenceService; +import com.supervision.police.service.NotePromptService; +import com.supervision.police.service.TaskCaseRecordService; +import com.supervision.police.service.TaskRecordService; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; + import java.util.List; import java.util.Map; @@ -32,16 +33,8 @@ public class XxlJobTask { private final TaskCaseRecordService taskCaseRecordService; - private final ModelCaseService modelCaseService; - private final NotePromptService notePromptService; - private final ExtractTripleInfoService extractTripleInfoService; - - private final Neo4jService neo4jService; - - private final TripleInfoService tripleInfoService; - /** * 睡觉通知 */ @@ -70,6 +63,7 @@ public class XxlJobTask { String taskId = map.get("taskId"); String caseId = map.get("caseId"); String promptId = map.get("promptId"); + String executeId = map.get("executeId"); NotePrompt prompt = notePromptService.getById(promptId); boolean executable = true; TaskRecord taskRecord = taskRecordService.getById(taskId); @@ -87,6 +81,7 @@ public class XxlJobTask { break; case TASK_STATUS_CANCELED: log.info("任务状态为已取消,任务不可执行,任务ID: 【{}】", taskId); + taskCaseRecordService.updateStatus(taskId, List.of(TASK_STATUS_WAITING, TASK_STATUS_PROCESSING), TASK_STATUS_CANCELED); executable = false; break; case TASK_STATUS_FAIL: @@ -106,17 +101,11 @@ public class XxlJobTask { switch (prompt.getType()) { case TYPE_GRAPH_REASONING: log.info("【图推理】任务开始。任务ID: 【{}】", taskId); - List tripleInfos = extractTripleInfoService.extractTripleInfo(prompt, caseId, map.get("executeId")); - for (TripleInfo tripleInfo : tripleInfos) { - neo4jService.saveTripleInfo(tripleInfo); - } - if (CollUtil.isNotEmpty(tripleInfos)){ - tripleInfoService.updateNeo4jFlag(tripleInfos.stream().map(TripleInfo::getId).toList(), "1"); - } + taskRecordService.graphExtract(prompt, caseId, executeId); break; case TYPE_STRUCTURAL_REASONING: log.info("【结构推理】任务开始。任务ID: 【{}】", taskId); - // TODO: 证据处理 + taskRecordService.structureExtract(executeId); break; default: log.error("未知的任务类型"); diff --git a/src/main/java/com/supervision/police/service/TaskRecordService.java b/src/main/java/com/supervision/police/service/TaskRecordService.java index b0b626b..d2524d9 100644 --- a/src/main/java/com/supervision/police/service/TaskRecordService.java +++ b/src/main/java/com/supervision/police/service/TaskRecordService.java @@ -1,29 +1,41 @@ package com.supervision.police.service; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.supervision.police.domain.NotePrompt; import com.supervision.police.domain.TaskCaseRecord; import com.supervision.police.domain.TaskRecord; -import com.baomidou.mybatisplus.extension.service.IService; import com.supervision.police.dto.TaskInfoDTO; import com.supervision.police.dto.taskRecord.TaskRecordVo; import com.supervision.police.vo.TaskInfoReqVO; + import java.util.List; /** -* @author dxy -* @description 针对表【task_record】的数据库操作Service -* @createDate 2024-12-24 14:44:43 -*/ + * @author dxy + * @description 针对表【task_record】的数据库操作Service + * @createDate 2024-12-24 14:44:43 + */ public interface TaskRecordService extends IService { void executePromptExtractTask(TaskRecordVo taskRecordVo); + void graphExtract(NotePrompt prompt, String caseId, String executeId); + + /** + * 证据结构化数据提取 + * + * @param evidenceId 证据id + */ + void structureExtract(String evidenceId); + IPage queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size); /** * 判断任务状态是否允许取消 状态为待提取 可以取消 + * * @param status 任务状态 * @return true 允许取消,false 不允许取消 */ @@ -31,23 +43,25 @@ public interface TaskRecordService extends IService { /** * 判断任务状态是否允许删除 状态为已取消,已提取 可以删除 + * * @param status 任务状态 * @return true 允许删除,false 不允许删除 */ Boolean taskStatusDeleteEnabled(String status); - void cancelTask(List taskIds); + void cancelTask(List taskIds); void deleteTask(List taskIds); /** * 完成任务 - * @param taskId 任务id + * + * @param taskId 任务id * @param executeId 执行id */ - void completeTask(String taskId,String executeId,boolean isSuccess); + void completeTask(String taskId, String executeId, boolean isSuccess); String determineStatus(List taskCaseRecords); 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 0cd2924..ca5ef39 100644 --- a/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/TaskRecordServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.common.constant.TaskRecordConstants; import com.supervision.constant.DataStatus; +import com.supervision.neo4j.service.Neo4jService; import com.supervision.police.domain.*; import com.supervision.police.dto.TaskInfoDTO; import com.supervision.police.dto.taskRecord.TaskRecordVo; @@ -24,7 +25,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static com.supervision.common.constant.NotePromptConstants.TYPE_GRAPH_REASONING; import static com.supervision.common.constant.NotePromptConstants.TYPE_STRUCTURAL_REASONING; @@ -53,6 +57,12 @@ public class TaskRecordServiceImpl extends ServiceImpl tripleInfos = extractTripleInfoService.extractTripleInfo(prompt, caseId, executeId); + for (TripleInfo tripleInfo : tripleInfos) { + neo4jService.saveTripleInfo(tripleInfo); + } + if (CollUtil.isNotEmpty(tripleInfos)) { + tripleInfoService.updateNeo4jFlag(tripleInfos.stream().map(TripleInfo::getId).toList(), "1"); + } + } + + @Override + public void structureExtract(String evidenceId) { + caseEvidenceService.evidenceAnalysis(evidenceId); + } + /** * 根据任务类型获取笔录或证据ID * @@ -213,17 +239,17 @@ public class TaskRecordServiceImpl extends ServiceImpl taskCaseRecords = taskCaseRecordService.queryByTaskId(taskId); String taskStatus = this.determineStatus(taskCaseRecords); - log.info("completeTask:任务ID:【{}】,初始任务状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(),taskStatus); - if (!StrUtil.equals(taskStatus,taskRecord.getStatus())){ + log.info("completeTask:任务ID:【{}】,初始任务状态:【{}】,计算后任务状态:【{}】", taskId, taskCaseRecord.getStatus(), taskStatus); + if (!StrUtil.equals(taskStatus, taskRecord.getStatus())) { taskRecord.setStatus(taskStatus); super.updateById(taskRecord); } @@ -252,7 +278,7 @@ public class TaskRecordServiceImpl extends ServiceImpl taskCaseRecords) { - if (CollUtil.isEmpty(taskCaseRecords)){ + if (CollUtil.isEmpty(taskCaseRecords)) { return TASK_STATUS_SUCCESS; } @@ -263,7 +289,6 @@ public class TaskRecordServiceImpl extends ServiceImpl