diff --git a/docus-client-interface/src/main/java/com/docus/server/api/segmentation/OcrFileInfoApi.java b/docus-client-interface/src/main/java/com/docus/server/api/segmentation/OcrFileInfoApi.java index 335154d..3b20786 100644 --- a/docus-client-interface/src/main/java/com/docus/server/api/segmentation/OcrFileInfoApi.java +++ b/docus-client-interface/src/main/java/com/docus/server/api/segmentation/OcrFileInfoApi.java @@ -70,12 +70,5 @@ public interface OcrFileInfoApi { @PutMapping("/edit") void edit(@RequestBody EditOcrFileInfoDTO editOcrFileInfoDTO); - /** - * 批量删除 - * - * @param deleteOcrFileInfoDTO 删除参数 - * @return 成功或失败 - */ - @DeleteMapping("/delete") - int delete(@RequestBody DeleteOcrFileInfoDTO deleteOcrFileInfoDTO); + } diff --git a/docus-client-interface/src/main/java/com/docus/server/dto/segmentation/UploadPlatformDto.java b/docus-client-interface/src/main/java/com/docus/server/dto/segmentation/UploadPlatformDto.java new file mode 100644 index 0000000..328bfe2 --- /dev/null +++ b/docus-client-interface/src/main/java/com/docus/server/dto/segmentation/UploadPlatformDto.java @@ -0,0 +1,14 @@ +package com.docus.server.dto.segmentation; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel("批量上传参数") +public class UploadPlatformDto { + + private String dateStart; + + private String dateEnd; + +} 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 e88d596..bcb809d 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 @@ -4,12 +4,9 @@ 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.dto.segmentation.UploadPlatformDto; import com.docus.server.entity.segmentation.OcrFileInfoTest; -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.*; import com.docus.server.service.impl.CommonService; import com.docus.server.service.impl.PlatformServiceImpl; import com.docus.server.vo.scheduling.management.schcollectorversionfile.UploadFileVO; @@ -18,11 +15,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -53,7 +46,7 @@ public class FileController { @Resource private IPublishEventService iPublishEventService; @Resource - private IOcrFileInfoTestService iOcrFileInfoTestService; + private IOcrFileInfoService iOcrFileInfoService; @Resource private IOcrVersionService iOcrVersionService; @Resource @@ -89,18 +82,9 @@ public class FileController { Double widthStart = null; Double widthEnd = null; -// if (testData == 1) { -// OcrCutConfigTestVO ocrCutConfigTestVO = iOcrCutConfigTestService.findAll().get(0); -// height = ocrCutConfigTestVO.getHeight(); -// widthStart = ocrCutConfigTestVO.getWidthStart(); -// widthEnd = ocrCutConfigTestVO.getWidthEnd(); -// } else { -// OcrVersion ocrVersion = iOcrVersionService.finEnableVersion(); -// OcrCutConfigVO ocrCutConfigVO = iOcrCutConfigService.findByVersion(ocrVersion.getVersion()); -// height = ocrCutConfigVO.getHeight(); -// widthStart = ocrCutConfigVO.getWidthStart(); -// widthEnd = ocrCutConfigVO.getWidthEnd(); -// } + if (testData != 1) { + iOcrFileInfoService.delete(request.getPatientId()); + } List segmentation = iFileUploadService.uploadFile(files, "segmentation", height, widthStart, widthEnd); @@ -145,15 +129,16 @@ public class FileController { return commonService.getOcr(segmentation.get(0), request); } -// -// /** -// * 下载平台 -// * -// * @throws Exception -// */ -// @ApiOperation("批量上传文件到归档系统") -// @GetMapping("/uploadPlatform") -// public void uploadPlatform() throws Exception { -// downloadService.uploadPlatform(null, null); -// } + + /** + * 上传到3.0补偿 + * + * @throws Exception + */ + @ApiOperation("上传到3.0补偿") + @PostMapping("/uploadPlatform") + public String uploadPlatform(@RequestBody UploadPlatformDto uploadPlatformDto) { + iOcrFileInfoService.uploadPlatform(uploadPlatformDto); + return "成功"; + } } diff --git a/docus-segmentation/src/main/java/com/docus/server/controller/OcrFileInfoController.java b/docus-segmentation/src/main/java/com/docus/server/controller/OcrFileInfoController.java index afea169..f90d4ce 100644 --- a/docus-segmentation/src/main/java/com/docus/server/controller/OcrFileInfoController.java +++ b/docus-segmentation/src/main/java/com/docus/server/controller/OcrFileInfoController.java @@ -84,15 +84,5 @@ public class OcrFileInfoController implements OcrFileInfoApi { iOcrFileInfoService.edit(editOcrFileInfoDTO); } - /** - * 批量删除 - * - * @param deleteOcrFileInfoDTO 删除参数 - * @return 成功或失败 - */ - @ApiOperation("批量删除") - @Override - public int delete(DeleteOcrFileInfoDTO deleteOcrFileInfoDTO) { - return iOcrFileInfoService.delete(deleteOcrFileInfoDTO); - } + } diff --git a/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/IOcrFileInfoDao.java b/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/IOcrFileInfoDao.java index 7bf5d51..6bcc6a2 100644 --- a/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/IOcrFileInfoDao.java +++ b/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/IOcrFileInfoDao.java @@ -3,6 +3,7 @@ package com.docus.server.infrastructure.dao; import com.docus.infrastructure.core.db.dao.IBaseDao; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; +import com.docus.server.dto.segmentation.UploadPlatformDto; import com.docus.server.entity.segmentation.OcrFileInfo; import java.util.List; @@ -44,7 +45,7 @@ public interface IOcrFileInfoDao extends IBaseDao { * @param ids 主键ids * @return 成功或失败 */ - int delete(List ids); + int delete(String pid); /** * 关键字搜索 @@ -62,4 +63,6 @@ public interface IOcrFileInfoDao extends IBaseDao { * @return 名称重复数量 */ int findByIdAndName(Long id, String name); + + List getUploadInfo(UploadPlatformDto uploadPlatformDto); } diff --git a/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/impl/OcrFileInfoDaoImpl.java b/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/impl/OcrFileInfoDaoImpl.java index bebc6e0..b2899f5 100644 --- a/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/impl/OcrFileInfoDaoImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/infrastructure/dao/impl/OcrFileInfoDaoImpl.java @@ -6,6 +6,7 @@ import com.docus.core.util.Func; import com.docus.infrastructure.core.db.dao.impl.BaseDaoImpl; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; +import com.docus.server.dto.segmentation.UploadPlatformDto; import com.docus.server.entity.segmentation.OcrBasicTest; import com.docus.server.entity.segmentation.OcrFileInfo; import com.docus.server.infrastructure.dao.IOcrFileInfoDao; @@ -65,8 +66,8 @@ public class OcrFileInfoDaoImpl extends BaseDaoImpl ids) { - return super.deleteByIds(ids); + public int delete(String pid) { + return super.deleteBy("patientId",pid); } /** @@ -123,4 +124,12 @@ public class OcrFileInfoDaoImpl extends BaseDaoImpl getUploadInfo(UploadPlatformDto uploadPlatformDto) { + LambdaQueryWrapper query = Wrappers.lambdaQuery(); + query.gt(OcrFileInfo::getOcrFinishTime,uploadPlatformDto.getDateStart()); + query.lt(OcrFileInfo::getOcrFinishTime,uploadPlatformDto.getDateEnd()); + return baseMapper.selectList(query); + } } diff --git a/docus-segmentation/src/main/java/com/docus/server/service/IOcrFileInfoService.java b/docus-segmentation/src/main/java/com/docus/server/service/IOcrFileInfoService.java index f86aa6b..9e1f667 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/IOcrFileInfoService.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/IOcrFileInfoService.java @@ -2,6 +2,7 @@ package com.docus.server.service; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; +import com.docus.server.dto.segmentation.UploadPlatformDto; import com.docus.server.dto.segmentation.ocrfileinfo.AddOcrFileInfoDTO; import com.docus.server.dto.segmentation.ocrfileinfo.DeleteOcrFileInfoDTO; import com.docus.server.dto.segmentation.ocrfileinfo.EditOcrFileInfoDTO; @@ -53,7 +54,7 @@ public interface IOcrFileInfoService { * @param deleteOcrFileInfoDTO 删除参数 * @return 成功或失败 */ - int delete(DeleteOcrFileInfoDTO deleteOcrFileInfoDTO); + int delete(String pid); /** * 关键字搜索 @@ -67,4 +68,6 @@ public interface IOcrFileInfoService { * 批量新增 */ void addBatch(List files); + + void uploadPlatform(UploadPlatformDto uploadPlatformDto); } diff --git a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrFileInfoServiceImpl.java b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrFileInfoServiceImpl.java index 12f58a9..4f8610a 100644 --- a/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrFileInfoServiceImpl.java +++ b/docus-segmentation/src/main/java/com/docus/server/service/impl/OcrFileInfoServiceImpl.java @@ -1,21 +1,32 @@ package com.docus.server.service.impl; +import cn.hutool.json.JSONUtil; import com.docus.infrastructure.redis.service.IdService; import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.response.PageResult; import com.docus.server.convert.OcrFileInfoConvert; +import com.docus.server.dto.segmentation.FileDTO; +import com.docus.server.dto.segmentation.UploadBatchFileRequest; +import com.docus.server.dto.segmentation.UploadPlatformDto; import com.docus.server.dto.segmentation.ocrfileinfo.AddOcrFileInfoDTO; import com.docus.server.dto.segmentation.ocrfileinfo.DeleteOcrFileInfoDTO; import com.docus.server.dto.segmentation.ocrfileinfo.EditOcrFileInfoDTO; +import com.docus.server.entity.segmentation.OcrBasic; import com.docus.server.entity.segmentation.OcrFileInfo; +import com.docus.server.infrastructure.dao.IOcrBasicDao; import com.docus.server.infrastructure.dao.IOcrFileInfoDao; import com.docus.server.service.IOcrFileInfoService; import com.docus.server.vo.segmentation.ocrfileinfo.OcrFileInfoVO; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.File; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * ocr文件信息 服务实现类 @@ -29,7 +40,12 @@ public class OcrFileInfoServiceImpl implements IOcrFileInfoService { private IOcrFileInfoDao iOcrFileInfoDao; @Resource private IdService idService; - + @Value("${ocr.defaultSuffix}") + private String defaultSuffix; + @Resource + private IOcrBasicDao iOcrBasicDao; + @Resource + private PlatformServiceImpl platformService; /** * 按主键查询 * @@ -89,6 +105,53 @@ public class OcrFileInfoServiceImpl implements IOcrFileInfoService { iOcrFileInfoDao.saveBatch(ocrFileInfos, 500); } + @Override + public void uploadPlatform(UploadPlatformDto uploadPlatformDto) { + + Map> collect = iOcrFileInfoDao.getUploadInfo(uploadPlatformDto).stream().collect(Collectors.groupingBy(OcrFileInfo::getPatientId)); + + collect.forEach((k,v)->{ + + String patientId = k; + List uploadInfo = v; + List ocrBasicList = iOcrBasicDao.findBy("patientId", patientId); + + for (OcrFileInfo item:uploadInfo) { + List fileDTOList = new ArrayList<>(uploadInfo.size()); + List files = new ArrayList<>(uploadInfo.size()); + File file = new File(item.getPicUrl()); + files.add(file); + + FileDTO fileDTO = new FileDTO(); + fileDTO.setAssortId(item.getAssortId()); + fileDTO.setSort(item.getSort()); + fileDTO.setFileType(2); + fileDTO.setFileTitle(item.getAssortName()+this.defaultSuffix); + fileDTO.setUploadFileName(item.getPicName()); + fileDTO.setSerialNumber(item.getSerialNumber()); + + fileDTOList.add(fileDTO); + + //数据上传到3.0 + OcrBasic ocrBasic = ocrBasicList.get(0); + + UploadBatchFileRequest request = new UploadBatchFileRequest(); + request.setCollectorId("-1"); + request.setInpatientNo(ocrBasic.getInpatientNo()); + request.setTestData(0); + request.setPatientId(patientId); + request.setName(ocrBasic.getName()); + request.setFileInfo(JSONUtil.toJsonStr(fileDTOList)); + + platformService.uploadPlatform(files, request); + } + + }); + + + + } + /** * 新增 * @@ -148,8 +211,8 @@ public class OcrFileInfoServiceImpl implements IOcrFileInfoService { * @return 成功或失败 */ @Override - public int delete(DeleteOcrFileInfoDTO deleteOcrFileInfoDTO) { - return iOcrFileInfoDao.delete(deleteOcrFileInfoDTO.getIds()); + public int delete(String pid) { + return iOcrFileInfoDao.delete(pid); } }