ocr测试地址

segment2.0
linrf 2 years ago
parent b5bbe18088
commit e19fd3825d

@ -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<String> 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);

@ -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;

@ -25,7 +25,8 @@ public interface IOcrVersionService {
*/
OcrVersionVO findById(Long id);
OcrVersion finEnableVersion ();
OcrVersion finEnableVersion();
/**
*
*

@ -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<OcrBasic> ocrBasicList = iOcrBasicDao.findBy("patientId", patientId);
String url = iOcrUrlConfigDao.findBy("version", version).get(0).getUrl();
List<OcrFileInfo> 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);

@ -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<String> getText(String path,String ocrHttpUrl) {
public List<String> 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<String, Object> data = new HashMap<>();
data.put("file", file);
data.put("filetype", "jpg");
return uploadFile(data,ocrHttpUrl);
return uploadFile(data, ocrHttpUrl);
}
@Override
public OcrResponse uploadFile(Map<String, Object> params,String ocrHttpUrl) {
public OcrResponse uploadFile(Map<String, Object> params, String ocrHttpUrl) {
HTTP_POST_LOCK.lock();
try {

@ -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;

Loading…
Cancel
Save