|
|
@ -18,10 +18,13 @@ import com.supervision.police.mapper.CaseEvidenceMapper;
|
|
|
|
import com.supervision.police.service.*;
|
|
|
|
import com.supervision.police.service.*;
|
|
|
|
import com.supervision.police.vo.EvidenceDirectoryReqVO;
|
|
|
|
import com.supervision.police.vo.EvidenceDirectoryReqVO;
|
|
|
|
import com.supervision.police.vo.VerifyEvidenceReqVO;
|
|
|
|
import com.supervision.police.vo.VerifyEvidenceReqVO;
|
|
|
|
|
|
|
|
import jakarta.annotation.Resource;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.aop.framework.AopContext;
|
|
|
|
import org.springframework.aop.framework.AopContext;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
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.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@ -48,6 +51,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
|
|
private final ModelCaseService modelCaseService;
|
|
|
|
private final ModelCaseService modelCaseService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Lazy
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private OCREvidenceService ocrEvidenceService;
|
|
|
|
private OCREvidenceService ocrEvidenceService;
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
@ -242,7 +246,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<EvidenceFile> evidenceFiles = evidenceFileService.lambdaQuery().eq(EvidenceFile::getEvidenceId, evidenceId).list();
|
|
|
|
List<EvidenceFile> evidenceFiles = evidenceFileService.lambdaQuery().eq(EvidenceFile::getEvidenceId, evidenceId).list();
|
|
|
|
if (evidenceFiles.isEmpty()) {
|
|
|
|
if (evidenceFiles.isEmpty()) {
|
|
|
|
log.error("证据文件不存在");
|
|
|
|
log.error("证据id:【{}】不存在证据文件", evidenceId);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
try {
|
|
|
@ -294,7 +298,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_SUCCESS);
|
|
|
|
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_SUCCESS);
|
|
|
|
updateById(caseEvidence);
|
|
|
|
updateById(caseEvidence);
|
|
|
|
} catch (Exception e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
log.error("证据解析失败。更新证据处理状态为【处理失败】。", e);
|
|
|
|
log.error("证据:【{}】解析失败。更新证据处理状态为【处理失败】。",evidenceId, e);
|
|
|
|
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_FAILED);
|
|
|
|
caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_FAILED);
|
|
|
|
updateById(caseEvidence);
|
|
|
|
updateById(caseEvidence);
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
@ -437,9 +441,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
|
|
|
|
|
|
|
|
String batchId = ((CaseEvidenceService) AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList);
|
|
|
|
String batchId = ((CaseEvidenceService) AopContext.currentProxy()).updateCaseEvidence4NewTransaction(operationalEvidenceList);
|
|
|
|
|
|
|
|
|
|
|
|
List<EvidenceFileDTO> evidenceFileDTOList = operationalEvidenceList.stream()
|
|
|
|
List<EvidenceFileDTO> evidenceFileDTOList = operationalEvidenceList.stream().filter(
|
|
|
|
|
|
|
|
evidenceDetail-> !evidenceDetail.getFileList().stream().allMatch(file -> StrUtil.equals(file.getUpdateStatus(), "1"))
|
|
|
|
|
|
|
|
)
|
|
|
|
.flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(), "1"))).toList();
|
|
|
|
.flatMap(evidenceDetailDTO -> evidenceDetailDTO.getFileList().stream().filter(file -> StrUtil.equals(file.getUpdateStatus(), "1"))).toList();
|
|
|
|
((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
|
|
|
|
((CaseEvidenceService) AopContext.currentProxy()).preAsyncSubmitOCR(evidenceFileDTOList);
|
|
|
|
|
|
|
|
|
|
|
|
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) {
|
|
|
|
for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) {
|
|
|
|
if (StrUtil.equalsAny(caseEvidenceDetailDTO.getUpdateStatus(), "-1", "1")) {
|
|
|
|
if (StrUtil.equalsAny(caseEvidenceDetailDTO.getUpdateStatus(), "-1", "1")) {
|
|
|
@ -745,8 +751,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
|
|
|
|
@Async
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager")
|
|
|
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW, transactionManager = "dataSourceTransactionManager")
|
|
|
|
public void preSyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList) {
|
|
|
|
public void preAsyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList) {
|
|
|
|
|
|
|
|
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidenceFileList) {
|
|
|
|
for (EvidenceFileDTO evidenceFileDTO : evidenceFileList) {
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "doc", "docx")) {
|
|
|
|
if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "doc", "docx")) {
|
|
|
|