diff --git a/src/main/java/com/ann/service/impl/QueueService.java b/src/main/java/com/ann/service/impl/QueueService.java index 7ed4b43..b5959ea 100644 --- a/src/main/java/com/ann/service/impl/QueueService.java +++ b/src/main/java/com/ann/service/impl/QueueService.java @@ -12,6 +12,7 @@ import com.ann.entity.interfaceEntity.MessageLog; import com.ann.entity.interfaceEntity.ScanningFile; import com.ann.service.*; import com.ann.utils.*; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -124,15 +125,56 @@ public class QueueService { archiveDetail.setUpLoadDateTime(date); } }else{ - // 查询库中是否存在 如果存在就更新 - archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); - if (archiveDetail == null) { - archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), - messageDto.getDetailType(), 1); - archiveDetailService.save(archiveDetail); - } else { - //更新时间 - archiveDetail.setUpLoadDateTime(date); + //获取下载下载 + if(Objects.equals(messageDto.getType(),AliasName.RADIATION_REPORT)) { + //PACS + //获取报告单号|申请单号 DR20210430233|97497407 + String checkReportId = messageDto.getCheckReportId(); + //定义是否走下载逻辑 第一次推送需要下载,报告单号为空或非第一次推送不需要下载 + boolean downFlag = false; + if(StringUtils.isNotBlank(checkReportId)){ + //获报告单号DR20210430233 + String[] checkReportIdArr = checkReportId.split("\\|"); + checkReportId = checkReportIdArr[0]; + //判断报告单号是否存在 + archiveDetail = archiveDetailService.isExitCheckReportId(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(),checkReportId); + if (archiveDetail == null) { + archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(),checkReportId, + messageDto.getDetailType()); + archiveDetailService.save(archiveDetail); + downFlag = true; + } else { + //横杠拼接申请单号 + String applyId = archiveDetail.getApplyId(); + if(!applyId.contains(checkReportIdArr[1])) { + archiveDetail.setApplyId(applyId + "-" + checkReportIdArr[1]); + //更新时间 + archiveDetail.setUpLoadDateTime(date); + archiveDetailService.save(archiveDetail); + } + status = 1; + } + }else{ + messageSubordinate.setRemark("住院号为:" + messageDto.getInpNo() + "的checkReportId为空。。。。"); + + } + if(!downFlag) { + messageSubordinate.setStatus(status); + messageSubordinateService.save(messageSubordinate); + continue; + } + }else{ + //非PACS + // 查询库中是否存在 如果存在就更新 + archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); + if (archiveDetail == null) { + archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), + messageDto.getDetailType(), 1); + archiveDetailService.save(archiveDetail); + } else { + //更新时间 + archiveDetail.setUpLoadDateTime(date); + } } } } @@ -252,10 +294,10 @@ public class QueueService { } //金域外送报告解析 2021-05-06 - /*if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)){ + if (Objects.equals(messageDto.getType(), AliasName.INSPECTION_REPORT)){ PdfUtils.base64StringToPDF(address,pdfFile.getAbsolutePath()); pdfPath=pdfFile.getAbsolutePath(); - }*/ + } } } //存入pdf地址