ocr请求接口

segment2.0
linrf 2 years ago
parent 91db89d619
commit c90295bcf2

@ -0,0 +1,25 @@
package com.docus.server.vo.segmentation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wyb
*/
@ApiModel("上传文件附带的文件信息")
@Data
public class FileDto {
@ApiModelProperty("文件分类ID")
private String assortId;
@ApiModelProperty("文件展示标题")
private String fileTitle;
@ApiModelProperty("上传的文件文件名用于multipartFile")
private String uploadFileName;
@ApiModelProperty("文件类型 1:pdf 2图片 ")
private Integer fileType = 1;
@ApiModelProperty("文件唯一标识")
private String serialNumber;
@ApiModelProperty("文件排序")
private Integer sort = 0;
}

@ -0,0 +1,35 @@
package com.docus.server.vo.segmentation;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
@ApiModel("文件上传参数")
public class UploadBatchFileParam {
@ApiModelProperty(value = "业务系统病案主键")
@NotNull(message = "业务系统病案主键不能为空")
private String patientId;
@ApiModelProperty(value = "采集器id来源")
private String collectorId;
@ApiModelProperty(value = "扫描用户代码 默认admin")
private String scanUserCode = "admin";
@ApiModelProperty(value = "扫描用户名称 默认admin")
private String scanUserName = "admin";
@ApiModelProperty(value = "文档类型0病案3.0归档系统 13.0门急诊归档系统 ")
private Integer recordType = 0;
@ApiModelProperty(value = "任务id如果有 ")
private Long taskId = -1L;
@ApiModelProperty(value = "文件信息Json FileDto Model")
@NotNull(message = "文件信息Json不能为空")
private String fileInfo;
}

@ -42,4 +42,5 @@ public class FileController {
public void uploadFile(@RequestPart("files") MultipartFile[] files, String pathKey) throws Exception {
iFileUploadService.uploadFile(files, pathKey);
}
}

@ -18,6 +18,8 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@Service
@Slf4j
@ -26,6 +28,8 @@ public class OcrServiceImpl implements OcrApi {
@Value("${ocr.api-url:http://192.168.16.85:9999/uploadfile}")
private String ocrHttpUrl;
private final static Lock HTTP_POST_LOCK = new ReentrantLock();
@Override
public List<String> getText(String path) {
@ -72,18 +76,24 @@ public class OcrServiceImpl implements OcrApi {
@Override
public OcrResponse uploadFile(Map<String, Object> params) {
String body = HttpRequest.post(ocrHttpUrl)
.form(params)
.contentType("multipart/form-data")
.execute()
.body();
if (StrUtil.isNotBlank(body)) {
return JSON.parseObject(body, OcrResponse.class);
HTTP_POST_LOCK.lock();
try {
String body = HttpRequest.post(ocrHttpUrl)
.form(params)
.contentType("multipart/form-data")
.execute()
.body();
if (StrUtil.isNotBlank(body)) {
return JSON.parseObject(body, OcrResponse.class);
}
return new OcrResponse();
} finally {
HTTP_POST_LOCK.unlock();
}
return new OcrResponse();
}
}

@ -1,9 +1,18 @@
package com.docus.server;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.http.HttpRequest;
import com.docus.server.common.download.downLoader.HttpDownloader;
import com.docus.server.common.utils.StartUpExeUtils;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiOperation;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.web.bind.annotation.PostMapping;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
* API
@ -43,4 +52,54 @@ public class FileController {
// ZipUtil.unGzip(new GZIPInputStream(new FileInputStream(new File("/Users/linruifeng/Desktop/collector_packages/index.tar.gz"))));
// FileUtils.unTarGz("/Users/linruifeng/Desktop/collector_packages/", "/Users/linruifeng/Desktop/collector_packages/test");
}
@ApiOperation("test")
@PostMapping("/test")
public void test2() throws Exception {
File file = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
File file1 = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174052\\麻醉.jpg");
Map<String, Object> data = new HashMap<>();
data.put("files", file);
data.put("filetype", "jpg");
ArrayList<File> files = Lists.newArrayList(file, file1);
String body = HttpRequest.post("http://localhost:9115/file/upload")
.form("files", files.toArray(new File[files.size()]))
.form("pathKey", "{\n" +
" \"success\": true,\n" +
" \"datas\": [\n" +
" {\n" +
" \"index\": 0,\n" +
" \"file_type\": \"string\",\n" +
" \"angle\": \"string\",\n" +
" \"decline\": true,\n" +
" \"hand_shadow\": true,\n" +
" \"sort\": [\n" +
" \"string\"\n" +
" ],\n" +
" \"data\": [\n" +
" {\n" +
" \"boxes\": {\n" +
" \"left\": 0,\n" +
" \"right\": 0,\n" +
" \"top\": 0,\n" +
" \"bottom\": 0\n" +
" },\n" +
" \"text\": \"string\"\n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"time\": 0,\n" +
" \"message\": \"string\"\n" +
"}")
.contentType("multipart/form-data")
.execute()
.body();
System.out.println(body);
}
}

@ -2,16 +2,30 @@ package com.docus.server;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.docus.server.vo.ocr.OcrResponse;
import com.docus.core.util.json.JSON;
import com.docus.server.vo.segmentation.FileDto;
import com.docus.server.vo.segmentation.UploadBatchFileParam;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ImageProcessingExample {
public static void main(String[] args) throws Exception {
UploadBatchFileParam uploadBatchFileParam = new UploadBatchFileParam();
System.out.println(JSON.toJSON(uploadBatchFileParam));
FileDto fileDto = new FileDto();
System.out.println(JSON.toJSON(fileDto));
List<FileDto> fileDtoList = new ArrayList<>();
System.out.println(JSON.toJSON(fileDtoList));
// 1. 调整图片大小
// ImgUtil.scale(FileUtil.file("input.jpg"), FileUtil.file("output.jpg"), 0.5f); // 将input.jpg缩小为原来的一半并保存为output.jpg
@ -22,7 +36,7 @@ public class ImageProcessingExample {
// Image image = ImgUtil.rotate(ImageIO.read(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg")), 90);
// ImgUtil.write(image, FileUtil.file("C:\\Users\\dataexa\\Desktop\\output2.jpg"));
uploadByte("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
// uploadByte("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
}
public static void uploadByte(String path) {
@ -36,8 +50,8 @@ public class ImageProcessingExample {
.execute()
.body();
if (StrUtil.isNotBlank(body)) {
OcrResponse jsonRootBean = JSON.parseObject(body, OcrResponse.class);
System.out.println(jsonRootBean);
// OcrResponse jsonRootBean = JSON.parseObject(body, OcrResponse.class);
// System.out.println(jsonRootBean);
}
// Boolean success = (Boolean)result.get("success");

Loading…
Cancel
Save