|
|
|
@ -3,7 +3,7 @@ package com.supervision.police.service.impl;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.supervision.neo4j.service.Neo4jService;
|
|
|
|
|
import com.supervision.police.domain.CasePerson;
|
|
|
|
|
import com.supervision.police.domain.NotePrompt;
|
|
|
|
|
import com.supervision.police.domain.NoteRecordSplit;
|
|
|
|
@ -42,6 +42,8 @@ public class ExtractTripleInfoServiceImpl implements ExtractTripleInfoService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private NoteRecordSplitService noteRecordSplitService;
|
|
|
|
|
|
|
|
|
|
private final Neo4jService neo4jService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
|
public void extractTripleInfo(String caseId, String name, String recordSplitId) {
|
|
|
|
@ -108,7 +110,11 @@ public class ExtractTripleInfoServiceImpl implements ExtractTripleInfoService {
|
|
|
|
|
// 如果有提取到三元组信息
|
|
|
|
|
if (CollUtil.isNotEmpty(tripleInfos)) {
|
|
|
|
|
for (TripleInfo tripleInfo : tripleInfos) {
|
|
|
|
|
log.info("doTripleExtractTask:笔录片段:{}三元组提取任务执行结束...,三元组信息入库:{}",tripleInfo.getRecordSplitId(), JSONUtil.toJsonStr(tripleInfo));
|
|
|
|
|
// 三元组入库到neo4j
|
|
|
|
|
log.info("doTripleExtractTask:笔录片段:{}三元组提取任务执行结束,开始三元组信息入库",tripleInfo.getRecordSplitId());
|
|
|
|
|
neo4jService.saveTripleInfo(tripleInfo);
|
|
|
|
|
log.info("doTripleExtractTask:笔录片段:{}三元组提取任务执行结束...,开始三元组信息入库",tripleInfo.getRecordSplitId());
|
|
|
|
|
tripleInfo.setAddNeo4j("1");
|
|
|
|
|
tripleInfoService.saveOrUpdateByBusiness(tripleInfo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -143,7 +149,13 @@ public class ExtractTripleInfoServiceImpl implements ExtractTripleInfoService {
|
|
|
|
|
Assert.notNull(notePrompt, "notePrompt不能为空");
|
|
|
|
|
Assert.notEmpty(recordId, "recordId不能为空");
|
|
|
|
|
Assert.notEmpty(caseId, "caseId不能为空");
|
|
|
|
|
|
|
|
|
|
// 先清除之前的三元组信息
|
|
|
|
|
List<TripleInfo> tripleInfos = tripleInfoService.queryByRecordIdAndPrompt(recordId, notePrompt);
|
|
|
|
|
log.info("extractTripleInfo:笔录片段:{}清除之前的三元组信息,三元组个数:{}", recordId, tripleInfos.size());
|
|
|
|
|
for (TripleInfo tripleInfo : tripleInfos) {
|
|
|
|
|
neo4jService.deleteTripleInfo(tripleInfo);
|
|
|
|
|
tripleInfoService.removeById(tripleInfo.getId());
|
|
|
|
|
}
|
|
|
|
|
CasePerson mainActor = casePersonService.getMainActor(caseId);
|
|
|
|
|
List<NoteRecordSplit> noteRecordSplits = noteRecordSplitService.queryRecordSplitList(recordId);
|
|
|
|
|
return extractTripleInfo(notePrompt, mainActor, noteRecordSplits);
|
|
|
|
|