From e19fd3825d0483f8370bd653fd7e36647e1fe429 Mon Sep 17 00:00:00 2001 From: linrf Date: Wed, 20 Sep 2023 10:35:38 +0800 Subject: [PATCH] =?UTF-8?q?ocr=E6=B5=8B=E8=AF=95=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/FileController.java | 34 ++++++++++++------- .../server/service/IOcrCutConfigService.java | 1 - .../server/service/IOcrVersionService.java | 3 +- .../service/handler/StartSegmentHandler.java | 23 ++++++++----- .../server/service/impl/OcrServiceImpl.java | 11 +++--- .../service/impl/OcrVersionServiceImpl.java | 3 -- 6 files changed, 43 insertions(+), 32 deletions(-) diff --git a/docus-segmentation/src/main/java/com/docus/server/controller/FileController.java b/docus-segmentation/src/main/java/com/docus/server/controller/FileController.java index fc63cda..b88a211 100644 --- a/docus-segmentation/src/main/java/com/docus/server/controller/FileController.java +++ b/docus-segmentation/src/main/java/com/docus/server/controller/FileController.java @@ -1,16 +1,18 @@ package com.docus.server.controller; +import com.docus.server.api.ocr.OcrApi; import com.docus.server.common.event.FlowEvent; import com.docus.server.common.service.IFileUploadService; import com.docus.server.dto.segmentation.UploadBatchFileRequest; import com.docus.server.entity.segmentation.OcrFileInfoTest; -import com.docus.server.entity.segmentation.OcrVersion; -import com.docus.server.service.*; +import com.docus.server.service.IOcrCutConfigService; +import com.docus.server.service.IOcrCutConfigTestService; +import com.docus.server.service.IOcrFileInfoTestService; +import com.docus.server.service.IOcrVersionService; +import com.docus.server.service.IPublishEventService; import com.docus.server.service.impl.CommonService; import com.docus.server.service.impl.PlatformServiceImpl; import com.docus.server.vo.scheduling.management.schcollectorversionfile.UploadFileVO; -import com.docus.server.vo.segmentation.ocrcutconfig.OcrCutConfigVO; -import com.docus.server.vo.segmentation.ocrcutconfigtest.OcrCutConfigTestVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -34,7 +36,7 @@ import java.util.List; * @author AutoGenerator * @since 2023-07-15 */ -@Api(value = "通用文件上传下载接口", tags = "通用文件上传下载接口") +@Api(value = "通用接口", tags = "通用接口") @RestController @RequestMapping("/ocr/file") public class FileController { @@ -54,6 +56,14 @@ public class FileController { private IOcrFileInfoTestService iOcrFileInfoTestService; @Resource private IOcrVersionService iOcrVersionService; + @Resource + private OcrApi ocrApi; + + @ApiOperation("ocr测试") + @GetMapping("/orc-test") + public List ocrTest(String path, String ocrHttpUrl) throws Exception { + return ocrApi.getText(path, ocrHttpUrl); + } @ApiOperation("文件下载") @GetMapping("/download") @@ -75,9 +85,9 @@ public class FileController { public Object uploadFile(@RequestPart("files") MultipartFile[] files, @Validated UploadBatchFileRequest request) throws Exception { int testData = request.getTestData(); - Double height = null ; - Double widthStart = null ; - Double widthEnd = null ; + Double height = null; + Double widthStart = null; + Double widthEnd = null; // if (testData == 1) { // OcrCutConfigTestVO ocrCutConfigTestVO = iOcrCutConfigTestService.findAll().get(0); @@ -99,7 +109,7 @@ public class FileController { if (testData == 1) { iPublishEventService.publishEvent(request.getPatientId(), FlowEvent.FlowTypeEnum.START_SEGMENT_TEST); - }else { + } else { iPublishEventService.publishEvent(request.getPatientId(), FlowEvent.FlowTypeEnum.START_SEGMENT); } @@ -114,9 +124,9 @@ public class FileController { }) public OcrFileInfoTest singleUpload(@RequestPart("files") MultipartFile[] files, @Validated UploadBatchFileRequest request) throws Exception { int testData = request.getTestData(); - Double height = null ; - Double widthStart= null; - Double widthEnd= null; + Double height = null; + Double widthStart = null; + Double widthEnd = null; // if (testData == 1) { // OcrCutConfigTestVO ocrCutConfigTestVO = iOcrCutConfigTestService.findAll().get(0); diff --git a/docus-segmentation/src/main/java/com/docus/server/service/IOcrCutConfigService.java b/docus-segmentation/src/main/java/com/docus/server/service/IOcrCutConfigService.java index 9bb1396..e929d98 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/IOcrCutConfigService.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/IOcrCutConfigService.java @@ -5,7 +5,6 @@ import com.docus.infrastructure.web.response.PageResult; import com.docus.server.dto.segmentation.ocrcutconfig.AddOcrCutConfigDTO; import com.docus.server.dto.segmentation.ocrcutconfig.DeleteOcrCutConfigDTO; import com.docus.server.dto.segmentation.ocrcutconfig.EditOcrCutConfigDTO; -import com.docus.server.entity.segmentation.OcrCutConfig; import com.docus.server.vo.segmentation.ocrcutconfig.OcrCutConfigVO; import java.util.List; diff --git a/docus-segmentation/src/main/java/com/docus/server/service/IOcrVersionService.java b/docus-segmentation/src/main/java/com/docus/server/service/IOcrVersionService.java index 0190d3b..afd9756 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/IOcrVersionService.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/IOcrVersionService.java @@ -25,7 +25,8 @@ public interface IOcrVersionService { */ OcrVersionVO findById(Long id); - OcrVersion finEnableVersion (); + OcrVersion finEnableVersion(); + /** * 查询所有 * diff --git a/docus-segmentation/src/main/java/com/docus/server/service/handler/StartSegmentHandler.java b/docus-segmentation/src/main/java/com/docus/server/service/handler/StartSegmentHandler.java index d81dbea..2628de1 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/handler/StartSegmentHandler.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/handler/StartSegmentHandler.java @@ -2,12 +2,17 @@ package com.docus.server.service.handler; import cn.hutool.json.JSONUtil; import com.docus.core.util.Func; +import com.docus.infrastructure.core.db.dao.IBaseDao; import com.docus.log.annotation.TrackRetryListener; import com.docus.server.api.ocr.OcrApi; import com.docus.server.common.service.IFileUploadService; import com.docus.server.dto.segmentation.FileDTO; import com.docus.server.dto.segmentation.UploadBatchFileRequest; -import com.docus.server.entity.segmentation.*; +import com.docus.server.entity.segmentation.OcrBasic; +import com.docus.server.entity.segmentation.OcrFileInfo; +import com.docus.server.entity.segmentation.OcrRuleResult; +import com.docus.server.entity.segmentation.OcrSpecialResult; +import com.docus.server.entity.segmentation.OcrVersion; import com.docus.server.enums.OcrStatusEnum; import com.docus.server.infrastructure.dao.IOcrBasicDao; import com.docus.server.infrastructure.dao.IOcrFileInfoDao; @@ -71,8 +76,8 @@ public class StartSegmentHandler { List ocrBasicList = iOcrBasicDao.findBy("patientId", patientId); String url = iOcrUrlConfigDao.findBy("version", version).get(0).getUrl(); List fileInfoList = iOcrFileInfoDao.findBy("patientId", patientId) - .stream().sorted(Comparator.comparing(OcrFileInfo::getPicName)) - .collect(Collectors.toList()); + .stream().sorted(Comparator.comparing(OcrFileInfo::getPicName)) + .collect(Collectors.toList()); OcrCutConfigVO ocrCutConfigVO = iOcrCutConfigService.findByVersion(ocrVersion.getVersion()); Double height = ocrCutConfigVO.getHeight(); Double widthStart = ocrCutConfigVO.getWidthStart(); @@ -84,8 +89,8 @@ public class StartSegmentHandler { String assortId = null; String assortName = null; for (OcrFileInfo fileInfo : fileInfoList) { - iFileUploadService.compressFile(fileInfo.getPicCompressUrl(),fileInfo.getPicUrl(),height); - iFileUploadService.cutPic(fileInfo.getPicCutUrl(),fileInfo.getPicCompressUrl(),widthStart,widthEnd); + iFileUploadService.compressFile(fileInfo.getPicCompressUrl(), fileInfo.getPicUrl(), height); + iFileUploadService.cutPic(fileInfo.getPicCutUrl(), fileInfo.getPicCompressUrl(), widthStart, widthEnd); boolean assortFlag = false; Long ruleId = null; @@ -136,9 +141,9 @@ public class StartSegmentHandler { hitKey = ocrRuleResult.getHitKey(); rate = ocrRuleResult.getRate(); } else { - if (assortName==null){ + if (assortName == null) { assortId = "-1"; - assortName="其他(无关键字)"; + assortName = "其他(无关键字)"; } } } @@ -171,8 +176,8 @@ public class StartSegmentHandler { p.setOcrStatue(OcrStatusEnum.COMPLETE); }).collect(Collectors.toList()); - iOcrBasicDao.updateBatchById(collect, iOcrBasicDao.DEFAULT_BATCH_SIZE); - iOcrFileInfoDao.updateBatchById(fileInfoList, iOcrFileInfoDao.DEFAULT_BATCH_SIZE); + iOcrBasicDao.updateBatchById(collect, IBaseDao.DEFAULT_BATCH_SIZE); + iOcrFileInfoDao.updateBatchById(fileInfoList, IBaseDao.DEFAULT_BATCH_SIZE); //数据上传到3.0 OcrBasic ocrBasic = ocrBasicList.get(0); diff --git a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrServiceImpl.java b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrServiceImpl.java index d70644a..f13810c 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrServiceImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrServiceImpl.java @@ -10,7 +10,6 @@ import com.docus.server.vo.ocr.Datas; import com.docus.server.vo.ocr.OcrResponse; import com.docus.server.vo.ocr.Sort; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -34,12 +33,12 @@ public class OcrServiceImpl implements OcrApi { private final static Lock HTTP_POST_LOCK = new ReentrantLock(); @Override - public List getText(String path,String ocrHttpUrl) { + public List getText(String path, String ocrHttpUrl) { try { StopWatch watch = new StopWatch(); - OcrResponse response = ocr(path,ocrHttpUrl); + OcrResponse response = ocr(path, ocrHttpUrl); log.info("ocr请求截图耗时:{}ms,请求图片地址:{}", watch.elapsedTime(), path); @@ -75,16 +74,16 @@ public class OcrServiceImpl implements OcrApi { } @Override - public OcrResponse ocr(String path,String ocrHttpUrl) { + public OcrResponse ocr(String path, String ocrHttpUrl) { File file = new File(path); Map data = new HashMap<>(); data.put("file", file); data.put("filetype", "jpg"); - return uploadFile(data,ocrHttpUrl); + return uploadFile(data, ocrHttpUrl); } @Override - public OcrResponse uploadFile(Map params,String ocrHttpUrl) { + public OcrResponse uploadFile(Map params, String ocrHttpUrl) { HTTP_POST_LOCK.lock(); try { diff --git a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrVersionServiceImpl.java b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrVersionServiceImpl.java index ac709b3..b3225f5 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrVersionServiceImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrVersionServiceImpl.java @@ -10,9 +10,6 @@ import com.docus.server.dto.segmentation.ocrversion.DeleteOcrVersionDTO; import com.docus.server.dto.segmentation.ocrversion.EditOcrVersionDTO; import com.docus.server.entity.segmentation.*; import com.docus.server.infrastructure.dao.*; -import com.docus.server.service.IOcrRuleService; -import com.docus.server.service.IOcrSpecialRuleService; -import com.docus.server.service.IOcrSpecialRuleTestService; import com.docus.server.service.IOcrVersionService; import com.docus.server.vo.segmentation.ocrversion.OcrVersionVO; import org.springframework.stereotype.Service;