任务、案件任务状态管理,code format

master
yaxin 4 months ago
parent 0aa8469ed8
commit 3d22bb579c

@ -1,19 +1,20 @@
package com.supervision.job; package com.supervision.job;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.supervision.common.constant.XxlJobConstants; import com.supervision.common.constant.XxlJobConstants;
import com.supervision.neo4j.service.Neo4jService;
import com.supervision.police.domain.NotePrompt; import com.supervision.police.domain.NotePrompt;
import com.supervision.police.domain.TaskCaseRecord; import com.supervision.police.domain.TaskCaseRecord;
import com.supervision.police.domain.TaskRecord; import com.supervision.police.domain.TaskRecord;
import com.supervision.police.domain.TripleInfo; import com.supervision.police.service.CaseEvidenceService;
import com.supervision.police.service.*; 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.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -32,16 +33,8 @@ public class XxlJobTask {
private final TaskCaseRecordService taskCaseRecordService; private final TaskCaseRecordService taskCaseRecordService;
private final ModelCaseService modelCaseService;
private final NotePromptService notePromptService; 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 taskId = map.get("taskId");
String caseId = map.get("caseId"); String caseId = map.get("caseId");
String promptId = map.get("promptId"); String promptId = map.get("promptId");
String executeId = map.get("executeId");
NotePrompt prompt = notePromptService.getById(promptId); NotePrompt prompt = notePromptService.getById(promptId);
boolean executable = true; boolean executable = true;
TaskRecord taskRecord = taskRecordService.getById(taskId); TaskRecord taskRecord = taskRecordService.getById(taskId);
@ -87,6 +81,7 @@ public class XxlJobTask {
break; break;
case TASK_STATUS_CANCELED: case TASK_STATUS_CANCELED:
log.info("任务状态为已取消任务不可执行任务ID: 【{}】", taskId); log.info("任务状态为已取消任务不可执行任务ID: 【{}】", taskId);
taskCaseRecordService.updateStatus(taskId, List.of(TASK_STATUS_WAITING, TASK_STATUS_PROCESSING), TASK_STATUS_CANCELED);
executable = false; executable = false;
break; break;
case TASK_STATUS_FAIL: case TASK_STATUS_FAIL:
@ -106,17 +101,11 @@ public class XxlJobTask {
switch (prompt.getType()) { switch (prompt.getType()) {
case TYPE_GRAPH_REASONING: case TYPE_GRAPH_REASONING:
log.info("【图推理】任务开始。任务ID: 【{}】", taskId); log.info("【图推理】任务开始。任务ID: 【{}】", taskId);
List<TripleInfo> tripleInfos = extractTripleInfoService.extractTripleInfo(prompt, caseId, map.get("executeId")); taskRecordService.graphExtract(prompt, caseId, executeId);
for (TripleInfo tripleInfo : tripleInfos) {
neo4jService.saveTripleInfo(tripleInfo);
}
if (CollUtil.isNotEmpty(tripleInfos)){
tripleInfoService.updateNeo4jFlag(tripleInfos.stream().map(TripleInfo::getId).toList(), "1");
}
break; break;
case TYPE_STRUCTURAL_REASONING: case TYPE_STRUCTURAL_REASONING:
log.info("【结构推理】任务开始。任务ID: 【{}】", taskId); log.info("【结构推理】任务开始。任务ID: 【{}】", taskId);
// TODO: 证据处理 taskRecordService.structureExtract(executeId);
break; break;
default: default:
log.error("未知的任务类型"); log.error("未知的任务类型");

@ -1,12 +1,14 @@
package com.supervision.police.service; package com.supervision.police.service;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.TaskCaseRecord;
import com.supervision.police.domain.TaskRecord; import com.supervision.police.domain.TaskRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.police.dto.TaskInfoDTO; import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.dto.taskRecord.TaskRecordVo; import com.supervision.police.dto.taskRecord.TaskRecordVo;
import com.supervision.police.vo.TaskInfoReqVO; import com.supervision.police.vo.TaskInfoReqVO;
import java.util.List; import java.util.List;
/** /**
@ -18,12 +20,22 @@ public interface TaskRecordService extends IService<TaskRecord> {
void executePromptExtractTask(TaskRecordVo taskRecordVo); void executePromptExtractTask(TaskRecordVo taskRecordVo);
void graphExtract(NotePrompt prompt, String caseId, String executeId);
/**
*
*
* @param evidenceId id
*/
void structureExtract(String evidenceId);
IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size); IPage<TaskInfoDTO> queryTaskList(TaskInfoReqVO taskInfoReqVO, Integer page, Integer size);
/** /**
* *
*
* @param status * @param status
* @return true false * @return true false
*/ */
@ -31,6 +43,7 @@ public interface TaskRecordService extends IService<TaskRecord> {
/** /**
* *
*
* @param status * @param status
* @return true false * @return true false
*/ */
@ -44,6 +57,7 @@ public interface TaskRecordService extends IService<TaskRecord> {
/** /**
* *
*
* @param taskId id * @param taskId id
* @param executeId id * @param executeId id
*/ */

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.common.constant.TaskRecordConstants; import com.supervision.common.constant.TaskRecordConstants;
import com.supervision.constant.DataStatus; import com.supervision.constant.DataStatus;
import com.supervision.neo4j.service.Neo4jService;
import com.supervision.police.domain.*; import com.supervision.police.domain.*;
import com.supervision.police.dto.TaskInfoDTO; import com.supervision.police.dto.TaskInfoDTO;
import com.supervision.police.dto.taskRecord.TaskRecordVo; import com.supervision.police.dto.taskRecord.TaskRecordVo;
@ -24,7 +25,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; 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_GRAPH_REASONING;
import static com.supervision.common.constant.NotePromptConstants.TYPE_STRUCTURAL_REASONING; import static com.supervision.common.constant.NotePromptConstants.TYPE_STRUCTURAL_REASONING;
@ -53,6 +57,12 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
private final XxlJobService xxlJobService; private final XxlJobService xxlJobService;
private final ExtractTripleInfoService extractTripleInfoService;
private final Neo4jService neo4jService;
private final TripleInfoService tripleInfoService;
@Override @Override
public void executePromptExtractTask(TaskRecordVo taskRecordVo) { public void executePromptExtractTask(TaskRecordVo taskRecordVo) {
//保存任务记录 //保存任务记录
@ -82,6 +92,22 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
} }
} }
@Override
public void graphExtract(NotePrompt prompt, String caseId, String executeId) {
List<TripleInfo> 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 * ID
* *
@ -263,7 +289,6 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
} }
} }

Loading…
Cancel
Save