编写上传归档系统接口

segment2.0
linrf 2 years ago
parent ff376539e9
commit d32eaa44a8

@ -1,13 +1,22 @@
package com.docus.server.common.event; package com.docus.server.common.event;
import com.docus.server.api.ocr.OcrApi;
import com.docus.server.service.impl.PlatformServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
@Component @Component
@Slf4j @Slf4j
public class FlowEventListener { public class FlowEventListener {
@Resource
private OcrApi ocrApi;
@Resource
private PlatformServiceImpl downloadService;
@EventListener @EventListener
@Async("threadPoolExecutor") @Async("threadPoolExecutor")
@ -39,7 +48,7 @@ public class FlowEventListener {
* @param patientId * @param patientId
*/ */
private void startUpload(String patientId) { private void startUpload(String patientId) {
System.out.println(patientId); downloadService.uploadPlatform(null, null);
} }
/** /**
@ -49,6 +58,7 @@ public class FlowEventListener {
*/ */
private void startOcr(String patientId) { private void startOcr(String patientId) {
System.out.println(patientId); System.out.println(patientId);
List<String> text = ocrApi.getText("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
} }
/** /**

@ -5,7 +5,7 @@ import com.docus.server.common.service.IFileUploadService;
import com.docus.server.dto.segmentation.UploadBatchFileRequest; import com.docus.server.dto.segmentation.UploadBatchFileRequest;
import com.docus.server.service.IPublishEventService; import com.docus.server.service.IPublishEventService;
import com.docus.server.service.impl.CommonService; import com.docus.server.service.impl.CommonService;
import com.docus.server.service.impl.DownloadServiceImpl; import com.docus.server.service.impl.PlatformServiceImpl;
import com.docus.server.vo.scheduling.management.schcollectorversionfile.UploadFileVO; import com.docus.server.vo.scheduling.management.schcollectorversionfile.UploadFileVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -36,7 +36,7 @@ public class FileController {
@Resource @Resource
private IFileUploadService iFileUploadService; private IFileUploadService iFileUploadService;
@Resource @Resource
private DownloadServiceImpl downloadService; private PlatformServiceImpl downloadService;
@Resource @Resource
private CommonService commonService; private CommonService commonService;
@Resource @Resource
@ -62,15 +62,14 @@ public class FileController {
iPublishEventService.publishEvent(request.getPatientId(), FlowEvent.FlowTypeEnum.START_SEGMENT); iPublishEventService.publishEvent(request.getPatientId(), FlowEvent.FlowTypeEnum.START_SEGMENT);
} }
/** /**
* *
* *
* @throws Exception * @throws Exception
*/ */
@ApiOperation("test") @ApiOperation("批量上传文件到归档系统")
@GetMapping("/test") @GetMapping("/uploadPlatform")
public void test() throws Exception { public void uploadPlatform() throws Exception {
downloadService.upload(""); downloadService.uploadPlatform(null, null);
} }
} }

@ -1,72 +0,0 @@
package com.docus.server.service.impl;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.docus.server.dto.segmentation.FileDTO;
import com.docus.server.vo.ocr.OcrResponse;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
@Service
@Slf4j
public class DownloadServiceImpl {
@Value("${download.api-url:http://localhost:9291/api/downplatform/uploadFileBatch}")
private String downloadUrl;
private final static Lock HTTP_POST_LOCK = new ReentrantLock();
public OcrResponse upload(String path) {
FileDTO fileDTO = new FileDTO();
fileDTO.setAssortId("3");
fileDTO.setFileTitle("4");
fileDTO.setFileType(2);
fileDTO.setSerialNumber("5");
fileDTO.setUploadFileName("6");
ArrayList<FileDTO> fileDTOS = Lists.newArrayList(fileDTO);
File file = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
File file1 = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174052\\麻醉.jpg");
ArrayList<File> files = Lists.newArrayList(file, file1);
Map<String, Object> data = new HashMap<>();
data.put("files", files.toArray(new File[files.size()]));
data.put("patientId", "1");
data.put("collectorId", "2");
data.put("fileInfo", JSON.toJSONString(fileDTOS));
return uploadFile(data);
}
public OcrResponse uploadFile(Map<String, Object> params) {
HTTP_POST_LOCK.lock();
try {
String body = HttpRequest.post(downloadUrl)
.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();
}
}
}

@ -0,0 +1,80 @@
package com.docus.server.service.impl;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.dto.segmentation.UploadBatchFileRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
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
public class PlatformServiceImpl {
@Value("${download.api-url:http://localhost:9291/api/downplatform/uploadFileBatch}")
private String downloadUrl;
private final static Lock HTTP_POST_LOCK = new ReentrantLock();
public CommonResult<String> uploadPlatform(List<File> files, UploadBatchFileRequest request) {
// FileDTO fileDTO = new FileDTO();
// fileDTO.setAssortId("3");
// fileDTO.setFileTitle("4");
// fileDTO.setFileType(2);
// fileDTO.setSerialNumber(UUIDUtils.generateUuid());
// fileDTO.setUploadFileName("6");
//
//
// FileDTO fileDTO1 = new FileDTO();
// fileDTO1.setAssortId("3");
// fileDTO1.setFileTitle("4");
// fileDTO1.setFileType(2);
// fileDTO1.setSerialNumber(UUIDUtils.generateUuid());
// fileDTO1.setUploadFileName("7");
//
//
// ArrayList<FileDTO> fileDTOS = Lists.newArrayList(fileDTO, fileDTO1);
//
// File file = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
// File file1 = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174052\\麻醉.jpg");
// ArrayList<File> files = Lists.newArrayList(file, file1);
try {
Map<String, Object> data = new HashMap<>();
data.put("files", files.toArray(new File[files.size()]));
data.put("patientId", request.getPatientId());
data.put("fileInfo", request.getFileInfo());
return uploadFile(data);
} catch (Exception ex) {
return CommonResult.failed(ex.getMessage());
}
}
public CommonResult<String> uploadFile(Map<String, Object> params) {
HTTP_POST_LOCK.lock();
try {
String body = HttpRequest.post(downloadUrl)
.form(params)
.contentType("multipart/form-data")
.execute()
.body();
return JSON.parseObject(body, CommonResult.class);
} finally {
HTTP_POST_LOCK.unlock();
}
}
}
Loading…
Cancel
Save