|
|
|
@ -21,12 +21,15 @@ import com.supervision.police.vo.VerifyEvidenceReqVO;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.aop.framework.AopContext;
|
|
|
|
|
import org.springframework.aop.support.AopUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -498,15 +501,20 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
// 在已经存在的目录下追加文件,只需要重新及进行ocr识别
|
|
|
|
|
log.info("ocrAndExtract:开始只进行文件内容识别...");
|
|
|
|
|
Map<String, List<EvidenceFileDTO>> evidenceMap = ocrFileDTOList.stream().collect(Collectors.groupingBy(EvidenceFileDTO::getEvidenceId));
|
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, List<EvidenceFileDTO>> entry : evidenceMap.entrySet()) {
|
|
|
|
|
String evidenceId = entry.getKey();
|
|
|
|
|
// 首先统一更新为正在处理
|
|
|
|
|
updateEvidenceAppendProcessingNewTransaction(evidenceId,"1");
|
|
|
|
|
}
|
|
|
|
|
for (Map.Entry<String, List<EvidenceFileDTO>> entry : evidenceMap.entrySet()) {
|
|
|
|
|
|
|
|
|
|
String evidenceId = entry.getKey();
|
|
|
|
|
List<EvidenceFileDTO> value = entry.getValue();
|
|
|
|
|
List<FileOcrProcess> fileOcrProcesses = fileOcrProcessService.multipleTypeOcrProcess(value.stream().map(EvidenceFileDTO::getFileId).toList(), evidenceId);
|
|
|
|
|
boolean match = fileOcrProcesses.stream().anyMatch(fileOcrProcess -> Integer.valueOf(2).equals(fileOcrProcess.getStatus()));
|
|
|
|
|
this.lambdaUpdate().eq(CaseEvidence::getId, evidenceId)
|
|
|
|
|
.set(CaseEvidence::getProcessStatus,
|
|
|
|
|
match ? EvidenceConstants.PROCESS_STATUS_FAILED : EvidenceConstants.PROCESS_STATUS_SUCCESS).update();
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : value) {
|
|
|
|
|
fileOcrProcessService.multipleTypeOcrProcess(List.of(evidenceFileDTO.getFileId()),evidenceFileDTO.getFileType());
|
|
|
|
|
}
|
|
|
|
|
updateEvidenceAppendProcessingNewTransaction(evidenceId,"0");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -524,6 +532,14 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
|
|
|
|
|
public void updateEvidenceAppendProcessingNewTransaction(String evidenceId, String appendProcessing) {
|
|
|
|
|
this.lambdaUpdate().eq(CaseEvidence::getId, evidenceId)
|
|
|
|
|
.set(CaseEvidence::getAppendProcessing, appendProcessing)
|
|
|
|
|
.set(CaseEvidence::getUpdateTime, LocalDateTime.now()).update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新案件证据信息 note:这个方法中的事务是一个新的事务,不会与之前的事务保持原子操作
|
|
|
|
|
*
|
|
|
|
|