From 0aead4e483e9d23910a446d9734a560b41555525 Mon Sep 17 00:00:00 2001 From: qiuyt Date: Mon, 7 Apr 2025 17:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=B5=81=E6=B0=B4=E5=8F=B7?= =?UTF-8?q?=E5=92=8C=E5=A4=84=E6=96=B9=E5=8F=B7=E9=87=8D=E5=8F=A0=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 39 +++++++++++++++++-- .../mipsdl/entity/ctqyy/VYpzsPresInfo.java | 3 +- .../base/UdiwmsBasicSkPrescribeRequest.java | 3 ++ .../com/glxp/mipsdl/service/yb/YbClient.java | 28 +++++++------ .../drugcabinet/YbUploadingLogMapper.xml | 10 ++--- .../other/ctqyy/VYpzsPresInfoMapper.xml | 6 +-- 6 files changed, 62 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java index 8d2141c..f78ae05 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -1443,7 +1443,16 @@ public class CtqyyClient extends CommonHttpClient { wrapper.and(StrUtil.isNotEmpty(fromCorpName), t -> t.eq(VInsurNationGoodsPhysic::getPSN_NAME, fromCorpName)); udiwmsBasicSkPrescribeRequest.setDatabaseProductName(getDataSourceType()); IPage page = new Page<>(); - if (udiwmsBasicSkPrescribeRequest.getBusType().equals("YPCF003")) { + if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getCode())){ + udiwmsBasicSkPrescribeRequest.setQueryCode("'"+udiwmsBasicSkPrescribeRequest.getCode()+"'"); + }else if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getKey())) { + udiwmsBasicSkPrescribeRequest.setQueryCode("'"+udiwmsBasicSkPrescribeRequest.getKey()+"'"); + + }else { + udiwmsBasicSkPrescribeRequest.setQueryCode("null"); + + } + if (udiwmsBasicSkPrescribeRequest.getBusType().equals("YPCF003")) { udiwmsBasicSkPrescribeRequest.setIN_HOSP("1"); // 住院只拉取结算后的处方 // 拉取处方时,改成拉取v_ypzs_pres_info @@ -1459,13 +1468,29 @@ public class CtqyyClient extends CommonHttpClient { } - if (page.getTotal() == 0) { + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(page.getTotal()); pageSimpleResponse.setList(null); return ResultVOUtils.success(pageSimpleResponse); } + // 分组 + if(StringUtils.isNotEmpty(udiwmsBasicSkPrescribeRequest.getQueryCode()) && !udiwmsBasicSkPrescribeRequest.getQueryCode().equals("null")){ + Map> groupedRecords = page.getRecords().stream() + .collect(Collectors.groupingBy(VYpzsPresInfo::getQUERY_CODE)); + List latestRecords = new ArrayList<>(); + for (List group : groupedRecords.values()) { + VYpzsPresInfo latest = group.stream() + .max(Comparator.comparing(VYpzsPresInfo::getLAY_TIME)) + .orElse(null); + if (latest != null) { + latestRecords.add(latest); + } + } + page.setRecords(latestRecords); + } + return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page); } else { @@ -1773,7 +1798,15 @@ public class CtqyyClient extends CommonHttpClient { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 转换为 LocalDateTime 并计算时间范围 - LocalDateTime layTime = LocalDateTime.parse(layTimeStr, formatter); + LocalDateTime layTime; + try { + layTime = LocalDateTime.parse(layTimeStr, formatter); + + }catch (Exception e){ + formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + layTime = LocalDateTime.parse(layTimeStr, formatter); + + } LocalDateTime startTime = layTime.minusMinutes(10); // 向前10分钟 LocalDateTime endTime = layTime.plusMinutes(10); // 向后10分钟 diff --git a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java index 75f3391..60cc3fe 100644 --- a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java +++ b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VYpzsPresInfo.java @@ -73,6 +73,7 @@ public class VYpzsPresInfo implements Serializable { private String IN_HOSP; @TableField(value = "DEPT_CODE") private String DEPT_CODE; - + @TableField(exist = false) + private String QUERY_CODE; private static final long serialVersionUID = 1L; } diff --git a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java index ae765d4..74cb951 100644 --- a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java @@ -136,5 +136,8 @@ public class UdiwmsBasicSkPrescribeRequest extends ListPageRequest { private String databaseProductName; private String IN_HOSP; + + private String queryCode; + } diff --git a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java index fe882d6..89b81e5 100644 --- a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java +++ b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java @@ -40,15 +40,8 @@ public class YbClient { @Resource ThrYbSetupMapper thrYbSetupMapper; @Resource - YbUploadingLogMapper YbUploadingLogMapper; + YbUploadingLogMapper ybUploadingLogMapper; - /** - * 易联众 - * - * @param apiNo - * @param data - * @return - */ public BaseResponse ybPost(String apiNo, JSONObject data,String billNo) { // log.info("[" + apiNo + "]医保接口请求参数:" + data); @@ -81,7 +74,11 @@ public class YbClient { req.setInput(data); req.setSignNo(thrYbSetup.getSignNo()); reqStr =JSONObject.toJSONString(req); + // 如果是纯无码类型 + if(!reqStr.contains("drug_trac_codg") ){ + return ResultVOUtils.error(500,"【" + apiNo + "】当前单据是纯无码类型单据无法上传"); + } log.error("【" + apiNo + "】医保接口请求参数:" + reqStr); ChsMedicalResponse resp = client.execute(req); respStr = JSONObject.toJSONString(resp); @@ -111,13 +108,13 @@ public class YbClient { respStr = e.getMessage(); return ResultVOUtils.error(500,"【" + apiNo + "】上传医保失败"+e.getMessage()); }finally { - YbUploadingLog ybUploadingLog = new YbUploadingLog(); - ybUploadingLog.setYbParam(reqStr); - ybUploadingLog.setYbReturn(respStr); - ybUploadingLog.setBillNo(billNo); - ybUploadingLog.setApiNo(apiNo); - ybUploadingLog.setUpdateTime(new Date()); - YbUploadingLogMapper.insert(ybUploadingLog); + YbUploadingLog ybUploadingLog = new YbUploadingLog(); + ybUploadingLog.setYbParam(reqStr); + ybUploadingLog.setYbReturn(respStr); + ybUploadingLog.setBillNo(billNo); + ybUploadingLog.setApiNo(apiNo); + ybUploadingLog.setUpdateTime(new Date()); + ybUploadingLogMapper.insert(ybUploadingLog); } } @@ -132,6 +129,7 @@ public class YbClient { { throw new RuntimeException("未配置医保接口"); } + // 组装访问数据 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); // 获取当前日期和时间 diff --git a/src/main/resources/mybatis/mapper/master/drugcabinet/YbUploadingLogMapper.xml b/src/main/resources/mybatis/mapper/master/drugcabinet/YbUploadingLogMapper.xml index 23973a4..11491bd 100644 --- a/src/main/resources/mybatis/mapper/master/drugcabinet/YbUploadingLogMapper.xml +++ b/src/main/resources/mybatis/mapper/master/drugcabinet/YbUploadingLogMapper.xml @@ -5,13 +5,13 @@ - - - - + + + + id, ybParam, ybReturn, billNo, updateTime - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml b/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml index 4eb6671..3ab8670 100644 --- a/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml +++ b/src/main/resources/mybatis/mapper/other/ctqyy/VYpzsPresInfoMapper.xml @@ -45,7 +45,7 @@