|
|
|
@ -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<TaskRecordMapper, TaskRec
|
|
|
|
|
|
|
|
|
|
private final XxlJobService xxlJobService;
|
|
|
|
|
|
|
|
|
|
private final ExtractTripleInfoService extractTripleInfoService;
|
|
|
|
|
|
|
|
|
|
private final Neo4jService neo4jService;
|
|
|
|
|
|
|
|
|
|
private final TripleInfoService tripleInfoService;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
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
|
|
|
|
|
*
|
|
|
|
@ -213,17 +239,17 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public void completeTask(String taskId, String executeId,boolean isSuccess) {
|
|
|
|
|
if (StrUtil.isEmpty(taskId)){
|
|
|
|
|
public void completeTask(String taskId, String executeId, boolean isSuccess) {
|
|
|
|
|
if (StrUtil.isEmpty(taskId)) {
|
|
|
|
|
log.info("completeTask:任务ID为空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.isEmpty(executeId)){
|
|
|
|
|
if (StrUtil.isEmpty(executeId)) {
|
|
|
|
|
log.info("completeTask:执行ID为空");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
TaskRecord taskRecord = super.getById(taskId);
|
|
|
|
|
if (null == taskRecord){
|
|
|
|
|
if (null == taskRecord) {
|
|
|
|
|
log.info("completeTask:任务不存在,任务ID:【{}】", taskId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -231,19 +257,19 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
|
|
|
|
|
TaskCaseRecord taskCaseRecord = taskCaseRecordService.updateStatus(taskId, executeId, isSuccess);
|
|
|
|
|
log.info("completeTask:任务ID:【{}】,执行ID:【{}】,任务状态:【{}】", taskId, executeId, taskCaseRecord.getStatus());
|
|
|
|
|
// 校验总体任务是否是取消中
|
|
|
|
|
if (StrUtil.equalsAny(taskRecord.getStatus(),TASK_STATUS_CANCELLING,TASK_STATUS_CANCELED)){
|
|
|
|
|
log.info("completeTask:任务状态为取消中,任务状态更新即将更新为【{}】,任务ID: 【{}】", taskId,taskRecord.getStatus());
|
|
|
|
|
Boolean success = taskCaseRecordService.updateStatus(taskId, List.of(TASK_STATUS_WAITING,TASK_STATUS_PROCESSING), TASK_STATUS_CANCELED);
|
|
|
|
|
log.info("completeTask:任务状态更新完成,task_case数据任务状态【{}】变动,任务ID: 【{}】", taskId, success?"产生":"无");
|
|
|
|
|
if (StrUtil.equalsAny(taskRecord.getStatus(), TASK_STATUS_CANCELLING, TASK_STATUS_CANCELED)) {
|
|
|
|
|
log.info("completeTask:任务状态为取消中,任务状态更新即将更新为【{}】,任务ID: 【{}】", taskId, taskRecord.getStatus());
|
|
|
|
|
Boolean success = taskCaseRecordService.updateStatus(taskId, List.of(TASK_STATUS_WAITING, TASK_STATUS_PROCESSING), TASK_STATUS_CANCELED);
|
|
|
|
|
log.info("completeTask:任务状态更新完成,task_case数据任务状态【{}】变动,任务ID: 【{}】", taskId, success ? "产生" : "无");
|
|
|
|
|
taskRecord.setStatus(TASK_STATUS_CANCELED);
|
|
|
|
|
this.updateById(taskRecord);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (StrUtil.equalsAny(taskRecord.getStatus(),TASK_STATUS_WAITING,TASK_STATUS_PROCESSING)){
|
|
|
|
|
if (StrUtil.equalsAny(taskRecord.getStatus(), TASK_STATUS_WAITING, TASK_STATUS_PROCESSING)) {
|
|
|
|
|
List<TaskCaseRecord> 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<TaskRecordMapper, TaskRec
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String determineStatus(List<TaskCaseRecord> taskCaseRecords) {
|
|
|
|
|
if (CollUtil.isEmpty(taskCaseRecords)){
|
|
|
|
|
if (CollUtil.isEmpty(taskCaseRecords)) {
|
|
|
|
|
return TASK_STATUS_SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -263,7 +289,6 @@ public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRec
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|