|
|
@ -2,6 +2,7 @@ package com.supervision.job;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
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.neo4j.service.Neo4jService;
|
|
|
|
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;
|
|
|
@ -28,7 +29,8 @@ public class XxlJobTask {
|
|
|
|
private final CaseEvidenceService caseEvidenceService;
|
|
|
|
private final CaseEvidenceService caseEvidenceService;
|
|
|
|
|
|
|
|
|
|
|
|
private final TaskRecordService taskRecordService;
|
|
|
|
private final TaskRecordService taskRecordService;
|
|
|
|
private TaskCaseRecordService taskCaseRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
private final TaskCaseRecordService taskCaseRecordService;
|
|
|
|
|
|
|
|
|
|
|
|
private final ModelCaseService modelCaseService;
|
|
|
|
private final ModelCaseService modelCaseService;
|
|
|
|
|
|
|
|
|
|
|
@ -43,7 +45,7 @@ public class XxlJobTask {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 睡觉通知
|
|
|
|
* 睡觉通知
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@XxlJob("evidenceAnalysis")
|
|
|
|
@XxlJob(XxlJobConstants.TASK_NAME_EVIDENCE_ANALYSIS)
|
|
|
|
public void evidenceAnalysis() {
|
|
|
|
public void evidenceAnalysis() {
|
|
|
|
String param = XxlJobHelper.getJobParam();
|
|
|
|
String param = XxlJobHelper.getJobParam();
|
|
|
|
log.info("【证据解析】任务开始。ID: 【{}】", param);
|
|
|
|
log.info("【证据解析】任务开始。ID: 【{}】", param);
|
|
|
@ -59,12 +61,12 @@ public class XxlJobTask {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 提示词提取任务
|
|
|
|
* 提示词提取任务
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@XxlJob("promptExtractTask")
|
|
|
|
@XxlJob(XxlJobConstants.TASK_NAME_PROMPT_EXTRACT_TASK)
|
|
|
|
public void promptExtractTask() {
|
|
|
|
public void promptExtractTask() {
|
|
|
|
String jobParam = XxlJobHelper.getJobParam();
|
|
|
|
String jobParam = XxlJobHelper.getJobParam();
|
|
|
|
log.info("【提取任务】任务开始。参数: {}", jobParam);
|
|
|
|
log.info("【提取任务】任务开始。参数: {}", jobParam);
|
|
|
|
try {
|
|
|
|
|
|
|
|
Map<String, String> map = JSON.parseObject(XxlJobHelper.getJobParam(), Map.class);
|
|
|
|
Map<String, String> map = JSON.parseObject(XxlJobHelper.getJobParam(), Map.class);
|
|
|
|
|
|
|
|
try {
|
|
|
|
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");
|
|
|
@ -103,6 +105,7 @@ public class XxlJobTask {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
switch (prompt.getType()) {
|
|
|
|
switch (prompt.getType()) {
|
|
|
|
case TYPE_GRAPH_REASONING:
|
|
|
|
case TYPE_GRAPH_REASONING:
|
|
|
|
|
|
|
|
log.info("【图推理】任务开始。任务ID: 【{}】", taskId);
|
|
|
|
List<TripleInfo> tripleInfos = extractTripleInfoService.extractTripleInfo(prompt, caseId, map.get("executeId"));
|
|
|
|
List<TripleInfo> tripleInfos = extractTripleInfoService.extractTripleInfo(prompt, caseId, map.get("executeId"));
|
|
|
|
for (TripleInfo tripleInfo : tripleInfos) {
|
|
|
|
for (TripleInfo tripleInfo : tripleInfos) {
|
|
|
|
neo4jService.saveTripleInfo(tripleInfo);
|
|
|
|
neo4jService.saveTripleInfo(tripleInfo);
|
|
|
@ -110,8 +113,6 @@ public class XxlJobTask {
|
|
|
|
if (CollUtil.isNotEmpty(tripleInfos)){
|
|
|
|
if (CollUtil.isNotEmpty(tripleInfos)){
|
|
|
|
tripleInfoService.updateNeo4jFlag(tripleInfos.stream().map(TripleInfo::getId).toList(), "1");
|
|
|
|
tripleInfoService.updateNeo4jFlag(tripleInfos.stream().map(TripleInfo::getId).toList(), "1");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
log.info("【图推理】任务开始。任务ID: 【{}】", taskId);
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case TYPE_STRUCTURAL_REASONING:
|
|
|
|
case TYPE_STRUCTURAL_REASONING:
|
|
|
|
log.info("【结构推理】任务开始。任务ID: 【{}】", taskId);
|
|
|
|
log.info("【结构推理】任务开始。任务ID: 【{}】", taskId);
|
|
|
@ -121,11 +122,12 @@ public class XxlJobTask {
|
|
|
|
log.error("未知的任务类型");
|
|
|
|
log.error("未知的任务类型");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//TODO:更新案件状态、任务状态
|
|
|
|
taskRecordService.completeTask(taskId, map.get("executeId"), true);
|
|
|
|
log.info("【提取任务】任务结束。任务ID: 【{}】", taskId);
|
|
|
|
log.info("【提取任务】任务结束。任务ID: 【{}】", taskId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
log.error("任务执行失败", e);
|
|
|
|
log.error("任务执行失败", e);
|
|
|
|
|
|
|
|
taskRecordService.completeTask(map.get("taskId"), map.get("executeId"), false);
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
log.info("【提取任务】任务结束。");
|
|
|
|
log.info("【提取任务】任务结束。");
|
|
|
|
}
|
|
|
|
}
|
|
|
|