1. 笔录图片识别功能开发
parent
73f29f93fa
commit
7649a2bb59
@ -1,23 +1,104 @@
|
|||||||
package com.supervision.police.service.impl;
|
package com.supervision.police.service.impl;
|
||||||
|
|
||||||
|
import com.supervision.police.domain.CaseTaskRecord;
|
||||||
import com.supervision.police.domain.ModelRecordType;
|
import com.supervision.police.domain.ModelRecordType;
|
||||||
import com.supervision.police.domain.NoteRecordSplit;
|
import com.supervision.police.domain.NoteRecordSplit;
|
||||||
|
import com.supervision.police.service.CaseTaskRecordService;
|
||||||
import com.supervision.police.service.RecordSplitProcessService;
|
import com.supervision.police.service.RecordSplitProcessService;
|
||||||
import com.supervision.police.service.RecordSplitClassifyService;
|
import com.supervision.police.service.RecordSplitClassifyService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class RecordSplitProcessServiceImpl implements RecordSplitProcessService {
|
public class RecordSplitProcessServiceImpl implements RecordSplitProcessService {
|
||||||
|
|
||||||
private final RecordSplitClassifyService recordSplitClassifyService;
|
private final RecordSplitClassifyService recordSplitClassifyService;
|
||||||
|
|
||||||
|
private final CaseTaskRecordService caseTaskRecordService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList) {
|
public void process(List<ModelRecordType> allTypeList, List<NoteRecordSplit> splitList) {
|
||||||
// 通过异步的形式提交分类
|
// 通过异步的形式提交分类
|
||||||
recordSplitClassifyService.classify(allTypeList,splitList);
|
recordSplitClassifyService.classify(allTypeList,splitList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean recordProcessTaskStatusCheck(String caseId, String recordId, Integer splitSize) {
|
||||||
|
// 首先查询是否存在任务,如果不存在,就新建
|
||||||
|
Optional<CaseTaskRecord> caseTaskRecordOpt = caseTaskRecordService.lambdaQuery()
|
||||||
|
.eq(CaseTaskRecord::getCaseId, caseId).eq(CaseTaskRecord::getRecordId, recordId).oneOpt();
|
||||||
|
|
||||||
|
|
||||||
|
if (caseTaskRecordOpt.isEmpty()) {
|
||||||
|
log.info("recordProcessTaskStatusCheck:recordId:{}未查询到任务记录, 新建任务记录...",recordId);
|
||||||
|
CaseTaskRecord newCaseTaskRecord = new CaseTaskRecord();
|
||||||
|
newCaseTaskRecord.setCaseId(caseId);
|
||||||
|
newCaseTaskRecord.setRecordId(recordId);
|
||||||
|
|
||||||
|
newCaseTaskRecord.setStatus(splitSize > 0 ? 1 : 2);
|
||||||
|
newCaseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecordService.save(newCaseTaskRecord);
|
||||||
|
|
||||||
|
return newCaseTaskRecord.getStatus().equals(1);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 == splitSize) {
|
||||||
|
// 如果笔录对为0,就直接不需要拆分,直接认为任务成功
|
||||||
|
CaseTaskRecord caseTaskRecord = caseTaskRecordOpt.get();
|
||||||
|
caseTaskRecord.setStatus(2);
|
||||||
|
caseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecordService.saveOrUpdate(caseTaskRecord);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (caseTaskRecordOpt.get().getStatus() == 2) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果存在,则校验时间是否已经超过1天,如果超过了1天还没有执行完毕,就重新提交这个任务
|
||||||
|
CaseTaskRecord caseTaskRecord = caseTaskRecordOpt.get();
|
||||||
|
// 如果未执行,则提交执行
|
||||||
|
if (caseTaskRecordOpt.get().getStatus() == 0) {
|
||||||
|
caseTaskRecord.setStatus(1);
|
||||||
|
caseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecord.setTaskCount(0);
|
||||||
|
caseTaskRecord.setFinishCount(0);
|
||||||
|
caseTaskRecordService.updateById(caseTaskRecord);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (caseTaskRecordOpt.get().getStatus() == 1 && LocalDateTime.now().isAfter(caseTaskRecord.getSubmitTime().plusDays(1))) {
|
||||||
|
// 如果已经超过1天,则重新提交任务
|
||||||
|
caseTaskRecord.setStatus(1);
|
||||||
|
caseTaskRecord.setTaskCount(0);
|
||||||
|
caseTaskRecord.setFinishCount(0);
|
||||||
|
caseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecordService.updateById(caseTaskRecord);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (caseTaskRecordOpt.get().getStatus() == 3) {
|
||||||
|
// 如果执行失败,就重新执行
|
||||||
|
caseTaskRecord.setStatus(1);
|
||||||
|
caseTaskRecord.setTaskCount(0);
|
||||||
|
caseTaskRecord.setFinishCount(0);
|
||||||
|
caseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecordService.updateById(caseTaskRecord);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// 如果都不是就在跑一次
|
||||||
|
caseTaskRecord.setStatus(1);
|
||||||
|
caseTaskRecord.setTaskCount(0);
|
||||||
|
caseTaskRecord.setFinishCount(0);
|
||||||
|
caseTaskRecord.setSubmitTime(LocalDateTime.now());
|
||||||
|
caseTaskRecordService.updateById(caseTaskRecord);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue