|
|
@ -1,6 +1,7 @@
|
|
|
|
package com.supervision.police.service.impl;
|
|
|
|
package com.supervision.police.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@ -31,6 +32,9 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.BufferedInputStream;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.io.InputStream;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
@ -107,6 +111,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String context = WordReadUtil.readWord(inputStream);
|
|
|
|
String context = WordReadUtil.readWord(inputStream);
|
|
|
|
List<QARecordNodeDTO> qaList = RecordRegexUtil.recordRegex(context, record.getName());
|
|
|
|
List<QARecordNodeDTO> qaList = RecordRegexUtil.recordRegex(context, record.getName());
|
|
|
|
|
|
|
|
log.info("拆分问答对:{}",qaList.size());
|
|
|
|
List<NoteRecordSplit> splitList = new ArrayList<>();
|
|
|
|
List<NoteRecordSplit> splitList = new ArrayList<>();
|
|
|
|
for (QARecordNodeDTO qa : qaList) {
|
|
|
|
for (QARecordNodeDTO qa : qaList) {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -126,7 +131,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 创建任务之后,再开始
|
|
|
|
// 创建任务之后,再开始
|
|
|
|
boolean taskStatus = saveRecordProcessTask(record.getCaseId(), record.getId());
|
|
|
|
boolean taskStatus = saveRecordProcessTask(record.getCaseId(), record.getId(), qaList.size());
|
|
|
|
// 如果校验结果为true,则说明需要进行分类以及三元组操作
|
|
|
|
// 如果校验结果为true,则说明需要进行分类以及三元组操作
|
|
|
|
if (taskStatus) {
|
|
|
|
if (taskStatus) {
|
|
|
|
// 对笔录进行分类,并对笔录进行提取三元组
|
|
|
|
// 对笔录进行分类,并对笔录进行提取三元组
|
|
|
@ -147,7 +152,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
* @param recordId
|
|
|
|
* @param recordId
|
|
|
|
* @return 没有执行过, 返回true, 没有执行过, 返回false
|
|
|
|
* @return 没有执行过, 返回true, 没有执行过, 返回false
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private boolean saveRecordProcessTask(String caseId, String recordId) {
|
|
|
|
private boolean saveRecordProcessTask(String caseId, String recordId,Integer splitSize) {
|
|
|
|
// 首先查询是否存在任务,如果不存在,就新建
|
|
|
|
// 首先查询是否存在任务,如果不存在,就新建
|
|
|
|
Optional<CaseTaskRecord> caseTaskRecordOpt = caseTaskRecordService.lambdaQuery()
|
|
|
|
Optional<CaseTaskRecord> caseTaskRecordOpt = caseTaskRecordService.lambdaQuery()
|
|
|
|
.eq(CaseTaskRecord::getCaseId, caseId).eq(CaseTaskRecord::getRecordId, recordId).oneOpt();
|
|
|
|
.eq(CaseTaskRecord::getCaseId, caseId).eq(CaseTaskRecord::getRecordId, recordId).oneOpt();
|
|
|
@ -158,7 +163,16 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
newCaseTaskRecord.setStatus(1);
|
|
|
|
newCaseTaskRecord.setStatus(1);
|
|
|
|
newCaseTaskRecord.setSubmitTime(LocalDateTime.now());
|
|
|
|
newCaseTaskRecord.setSubmitTime(LocalDateTime.now());
|
|
|
|
return caseTaskRecordService.save(newCaseTaskRecord);
|
|
|
|
return caseTaskRecordService.save(newCaseTaskRecord);
|
|
|
|
} else {
|
|
|
|
} else if (0 == splitSize) {
|
|
|
|
|
|
|
|
// 如果笔录对为0,就直接不需要拆分,直接认为任务成功
|
|
|
|
|
|
|
|
CaseTaskRecord newCaseTaskRecord = new CaseTaskRecord();
|
|
|
|
|
|
|
|
newCaseTaskRecord.setCaseId(caseId);
|
|
|
|
|
|
|
|
newCaseTaskRecord.setRecordId(recordId);
|
|
|
|
|
|
|
|
newCaseTaskRecord.setStatus(2);
|
|
|
|
|
|
|
|
newCaseTaskRecord.setSubmitTime(LocalDateTime.now());
|
|
|
|
|
|
|
|
caseTaskRecordService.save(newCaseTaskRecord);
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}else {
|
|
|
|
// 如果存在,则校验时间是否已经超过1天,如果超过了1天还没有执行完毕,就重新提交这个任务
|
|
|
|
// 如果存在,则校验时间是否已经超过1天,如果超过了1天还没有执行完毕,就重新提交这个任务
|
|
|
|
CaseTaskRecord caseTaskRecord = caseTaskRecordOpt.get();
|
|
|
|
CaseTaskRecord caseTaskRecord = caseTaskRecordOpt.get();
|
|
|
|
// 如果未执行,则提交执行
|
|
|
|
// 如果未执行,则提交执行
|
|
|
|