diff --git a/src/main/java/com/supervision/FuHsiApplication.java b/src/main/java/com/supervision/FuHsiApplication.java index 6038d9a..415a0a5 100644 --- a/src/main/java/com/supervision/FuHsiApplication.java +++ b/src/main/java/com/supervision/FuHsiApplication.java @@ -3,11 +3,13 @@ package com.supervision; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; @EnableAsync @EnableScheduling +@EnableAspectJAutoProxy(exposeProxy = true) @MapperScan(basePackages = {"com.supervision.**.mapper"}) @SpringBootApplication(scanBasePackages = {"com.supervision.**"}) public class FuHsiApplication { diff --git a/src/main/java/com/supervision/constant/EvidencePropertyName.java b/src/main/java/com/supervision/constant/EvidencePropertyName.java index b524825..0b0e2ad 100644 --- a/src/main/java/com/supervision/constant/EvidencePropertyName.java +++ b/src/main/java/com/supervision/constant/EvidencePropertyName.java @@ -10,7 +10,21 @@ import java.util.Map; @Getter public enum EvidencePropertyName { - TITLE("title", "标题", "String"); + TITLE("title", "标题", "String"), + //提供人 + PROVIDER("provider", "提供人", "String"), + //受害人 + VICTIM("victim", "受害人", "String"), + // 合同标的物 + CONTRACT_SUBJECT("contractSubject", "合同标的物", "String"), + //合同签订时间 + CONTRACT_SIGN_TIME("contractSignTime", "合同签订时间", "String"), + //金额 + AMOUNT("amount", "金额", "String"), + //证据结果 + EVIDENCE_RESULT("evidenceResult", "证据结果", "String"), + //其他说明 + OTHER_DESC("otherDesc", "其他说明", "String"); private final String name; diff --git a/src/main/java/com/supervision/police/controller/OCREvidenceController.java b/src/main/java/com/supervision/police/controller/OCREvidenceController.java index bb46e7b..747ff62 100644 --- a/src/main/java/com/supervision/police/controller/OCREvidenceController.java +++ b/src/main/java/com/supervision/police/controller/OCREvidenceController.java @@ -28,7 +28,7 @@ public class OCREvidenceController { } - @PostMapping("/fileList") + @PostMapping("/queryFileList") public R> queryFileList(@RequestBody List fileIdList) { List evidenceFileOCRDTOList = ocrEvidenceService.queryFileList(fileIdList); return R.ok(evidenceFileOCRDTOList); diff --git a/src/main/java/com/supervision/police/controller/OCRRecordController.java b/src/main/java/com/supervision/police/controller/OCRRecordController.java index f8078c2..d93c74c 100644 --- a/src/main/java/com/supervision/police/controller/OCRRecordController.java +++ b/src/main/java/com/supervision/police/controller/OCRRecordController.java @@ -1,8 +1,6 @@ package com.supervision.police.controller; import com.supervision.common.domain.R; -import com.supervision.police.domain.FileOcrProcess; -import com.supervision.police.domain.NoteRecord; import com.supervision.police.dto.NoteRecordDTO; import com.supervision.police.dto.OCRTextDTO; import com.supervision.police.dto.RecordFileDTO; @@ -50,7 +48,7 @@ public class OCRRecordController { * @param recordId * @return */ - @GetMapping("/fileList") + @GetMapping("/queryFileList") public R> queryFileList(@RequestParam("recordId") String recordId) { List recordFileDTOList = ocrRecordService.queryFileList(recordId); return R.ok(recordFileDTOList); diff --git a/src/main/java/com/supervision/police/dto/EvidenceFileOCRDTO.java b/src/main/java/com/supervision/police/dto/EvidenceFileOCRDTO.java index 11c9733..572e64b 100644 --- a/src/main/java/com/supervision/police/dto/EvidenceFileOCRDTO.java +++ b/src/main/java/com/supervision/police/dto/EvidenceFileOCRDTO.java @@ -59,6 +59,7 @@ public class EvidenceFileOCRDTO { caseEvidenceDTO.setEvidenceName(this.evidenceName); caseEvidenceDTO.setEvidenceType(this.evidenceType); caseEvidenceDTO.setId(this.evidenceId); + caseEvidenceDTO.setFileIdList(CollUtil.newArrayList(this.fileId)); return caseEvidenceDTO; } } 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 5990d06..c3c3349 100644 --- a/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/CaseEvidenceServiceImpl.java @@ -62,7 +62,7 @@ public class CaseEvidenceServiceImpl extends ServiceImpl asyncSubmitOCR(List fileIdList) { - - return submitOCR(fileIdList, this::asyncDoOCRTask); + return submitOCR(fileIdList, ((FileOcrProcessService) AopContext.currentProxy())::asyncDoOCRTask); } @Override 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 1322f2e..594c5ce 100644 --- a/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/OCREvidenceServiceImpl.java @@ -12,6 +12,7 @@ import com.supervision.police.dto.*; import com.supervision.police.service.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.aop.framework.AopContext; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,7 +40,7 @@ public class OCREvidenceServiceImpl implements OCREvidenceService { public Boolean submitOrcTask(String fileId) { Assert.notEmpty(fileId, "文件id不能为空"); - asyncDoOrcTask(null, fileId); + ((OCREvidenceService)AopContext.currentProxy()).asyncDoOrcTask(null, fileId); return true; } @@ -59,7 +60,12 @@ public class OCREvidenceServiceImpl implements OCREvidenceService { for (FileOcrProcess fileOcrProcess : fileOcrProcesses) { // 调用提取属性接口 - log.info("subOrcTask:文件id:{} 识别结果:{}", fileId, JSONUtil.toJsonStr(fileOcrProcess)); + fileOcrProcess = ocrProcessService.getById(fileOcrProcess.getId()); + if (StrUtil.isEmpty(fileOcrProcess.getOcrText())){ + log.warn("subOrcTask:文件id:{}, 对应的ocrText属性为空,跳过属性识别...", fileId); + continue; + } + log.debug("subOrcTask:远程接口retrieve开始识别文本...:{}", fileOcrProcess.getOcrText()); RetrieveResDTO retrieve = ocrService.retrieve(new RetrieveReqDTO(fileOcrProcess.getOcrText())); log.info("subOrcTask:文件id:{} 识别结果:{}", fileId, JSONUtil.toJsonStr(retrieve)); @@ -75,6 +81,8 @@ public class OCREvidenceServiceImpl implements OCREvidenceService { evidenceFileService.save(new EvidenceFile(evidenceId,fileId)); } + }else { + log.warn("subOrcTask:文件id:{} 识别结果为空", fileId); } } } @@ -96,7 +104,9 @@ public class OCREvidenceServiceImpl implements OCREvidenceService { fileEvidencePropertyService.removeByEvidenceAndFileId(evidenceId,fileId); List fileEvidence = toFileEvidence(evidenceId, fileId, propertyMap); - fileEvidencePropertyService.saveBatch(fileEvidence); + for (FileEvidenceProperty property : fileEvidence) { + fileEvidencePropertyService.save(property); + } return fileEvidence; } @@ -133,7 +143,7 @@ public class OCREvidenceServiceImpl implements OCREvidenceService { evidenceFileService.save(new EvidenceFile(evidenceId, evidenceFileOCRDTO.getFileId())); // 保存证据属性 - List evidencePropertyList = saveEvidenceProperty(evidenceFileOCRDTO.getEvidenceId(), + List evidencePropertyList = saveEvidenceProperty(evidenceId, evidenceFileOCRDTO.getFileId(), evidenceFileOCRDTO.getProperty()); if (CollUtil.isEmpty(evidencePropertyList)){ diff --git a/src/main/java/com/supervision/police/service/impl/OCRRecordServiceImpl.java b/src/main/java/com/supervision/police/service/impl/OCRRecordServiceImpl.java index e6f21b4..c1cd510 100644 --- a/src/main/java/com/supervision/police/service/impl/OCRRecordServiceImpl.java +++ b/src/main/java/com/supervision/police/service/impl/OCRRecordServiceImpl.java @@ -125,6 +125,8 @@ public class OCRRecordServiceImpl implements OCRRecordService { List fileIdList = Arrays.stream(noteRecord.getFileIds().split(",")).toList(); List recordFileDTOS = fileOcrProcessService.queryFileList(fileIdList); + recordFileDTOS = recordFileDTOS.stream() + .filter(file->StrUtil.isAllNotEmpty(file.getOcrText(),file.getReviseText())).toList(); if (CollUtil.isEmpty(recordFileDTOS)){ log.info("submitRecordTask:笔录:{}对应的笔录文件为空...",recordId); return false; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 7917b08..7bbda40 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -74,6 +74,6 @@ langChain-chat: url: http://113.128.242.110:7861 ocr: - url: http://192.168.10.42:8000/ + url: http://192.168.10.137:8866/ pool: max-size: 20