diff --git a/src/main/java/com/supervision/police/service/CaseEvidenceService.java b/src/main/java/com/supervision/police/service/CaseEvidenceService.java
index 55bf025..2b0eae6 100644
--- a/src/main/java/com/supervision/police/service/CaseEvidenceService.java
+++ b/src/main/java/com/supervision/police/service/CaseEvidenceService.java
@@ -145,8 +145,9 @@ public interface CaseEvidenceService  extends IService<CaseEvidence> {
 
     /**
      * 预处理ocr任务 note:这个方法用来提前处理 word 、 pfd 类型的数据。是一个新的事务不会与前面的事务保持原子性
+     * 异步调用
      * @param evidenceFileList 文件信息列表
      */
-    void preSyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList);
+    void preAsyncSubmitOCR(List<EvidenceFileDTO> evidenceFileList);
 
 }
diff --git a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java
index 82c2e89..676c80a 100644
--- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java
+++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java
@@ -18,10 +18,13 @@ import com.supervision.police.mapper.CaseEvidenceMapper;
 import com.supervision.police.service.*;
 import com.supervision.police.vo.EvidenceDirectoryReqVO;
 import com.supervision.police.vo.VerifyEvidenceReqVO;
+import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.aop.framework.AopContext;
 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;
@@ -48,6 +51,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
 
     private final ModelCaseService modelCaseService;
 
+    @Lazy
     @Autowired
     private OCREvidenceService ocrEvidenceService;
     @Autowired
@@ -242,7 +246,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
         }
         List<EvidenceFile> evidenceFiles = evidenceFileService.lambdaQuery().eq(EvidenceFile::getEvidenceId, evidenceId).list();
         if (evidenceFiles.isEmpty()) {
-            log.error("证据文件不存在");
+            log.error("证据id:【{}】不存在证据文件", evidenceId);
             return;
         }
         try {
@@ -294,7 +298,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
             caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_SUCCESS);
             updateById(caseEvidence);
         } catch (Exception e) {
-            log.error("证据解析失败。更新证据处理状态为【处理失败】。", e);
+            log.error("证据:【{}】解析失败。更新证据处理状态为【处理失败】。",evidenceId, e);
             caseEvidence.setProcessStatus(EvidenceConstants.PROCESS_STATUS_FAILED);
             updateById(caseEvidence);
         } finally {
@@ -437,9 +441,11 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
 
         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();
-        ((CaseEvidenceService) AopContext.currentProxy()).preSyncSubmitOCR(evidenceFileDTOList);
+        ((CaseEvidenceService) AopContext.currentProxy()).preAsyncSubmitOCR(evidenceFileDTOList);
 
         for (CaseEvidenceDetailDTO caseEvidenceDetailDTO : operationalEvidenceList) {
             if (StrUtil.equalsAny(caseEvidenceDetailDTO.getUpdateStatus(), "-1", "1")) {
@@ -745,8 +751,9 @@ public class CaseEvidenceServiceImpl extends ServiceImpl<CaseEvidenceMapper, Cas
     }
 
     @Override
+    @Async
     @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) {
             if (StrUtil.equalsAny(evidenceFileDTO.getFileType(), "doc", "docx")) {
diff --git a/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java b/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java
index 4d3dc6d..7074fe8 100644
--- a/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java
+++ b/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java
@@ -19,6 +19,7 @@ import com.supervision.police.service.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.aop.framework.AopContext;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;