From 2be1fdbf830be90fadbf834c4d98fda20a4a3b82 Mon Sep 17 00:00:00 2001 From: yewj Date: Fri, 13 Sep 2024 11:46:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E9=9C=84=E5=A6=87=E5=B9=BC=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 20 +++- .../mipsdl/client/yxfuyy/YxfyyyClient.java | 92 +++++++++++++------ 2 files changed, 84 insertions(+), 28 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 885ae2b..500d190 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -1374,6 +1374,12 @@ public class CtqyyClient extends CommonHttpClient { public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) { if (IntUtil.value(udiwmsBasicSkPrescribeRequest.getInOutType()) == 0) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + String startTime = udiwmsBasicSkPrescribeRequest.getStartTime(); + String endTime = udiwmsBasicSkPrescribeRequest.getEndTime(); + wrapper.ge(StrUtil.isNotEmpty(startTime), VInsurNationGoodsPhysic::getSEL_RETN_TIME, startTime + " 00:00:00"); + wrapper.le(StrUtil.isNotEmpty(endTime), VInsurNationGoodsPhysic::getSEL_RETN_TIME, endTime + " 23:59:59"); + String code = udiwmsBasicSkPrescribeRequest.getCode(); wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsPhysic::getSTOOUT_NO, code).or().eq(VInsurNationGoodsPhysic::getRXNO, code)); IPage page = goodsPhysicMapper @@ -1402,7 +1408,12 @@ public class CtqyyClient extends CommonHttpClient { PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); if (udiwmsThrOrderRequest.getBusType().equals(BusTypeConstant.CGJH001.getBusType())) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - //补充其他查询条件 + +// String startTime = udiwmsThrOrderRequest.getStartTime(); +// String endTime = udiwmsThrOrderRequest.getEndTime(); +// wrapper.ge(StrUtil.isNotEmpty(startTime),VYpzsPlanInfo::getKEEP_BOOK_TIME,startTime+" 00:00:00"); +// wrapper.le(StrUtil.isNotEmpty(endTime),VYpzsPlanInfo::getKEEP_BOOK_TIME,endTime+" 23:59:59"); + wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBillNo()), VYpzsPlanInfo::getCGDBH, udiwmsThrOrderRequest.getBillNo()); IPage page = vYpzsPlanInfoMapper.selectPage(new Page(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), wrapper); List planInfos = page.getRecords(); @@ -1454,7 +1465,12 @@ public class CtqyyClient extends CommonHttpClient { pageSimpleResponse.setList(ioCollectOrders); } else { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - //补充其他查询条件 + + String startTime = udiwmsThrOrderRequest.getStartTime(); + String endTime = udiwmsThrOrderRequest.getEndTime(); + wrapper.ge(StrUtil.isNotEmpty(startTime), VYpzsIoInfo::getKEEP_BOOK_TIME, startTime + " 00:00:00"); + wrapper.le(StrUtil.isNotEmpty(endTime), VYpzsIoInfo::getKEEP_BOOK_TIME, endTime + " 23:59:59"); + wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBillNo()), VYpzsIoInfo::getPHYSIC_CODE, udiwmsThrOrderRequest.getBillNo()); wrapper.eq(StrUtil.isNotBlank(udiwmsThrOrderRequest.getBusType()), VYpzsIoInfo::getIO_SORT, udiwmsThrOrderRequest.getBusType()); Page page = vYpzsIoInfoMapper.selectPage(new Page(udiwmsThrOrderRequest.getPage(), udiwmsThrOrderRequest.getLimit()), wrapper); diff --git a/src/main/java/com/glxp/mipsdl/client/yxfuyy/YxfyyyClient.java b/src/main/java/com/glxp/mipsdl/client/yxfuyy/YxfyyyClient.java index d8c6ca6..993f105 100644 --- a/src/main/java/com/glxp/mipsdl/client/yxfuyy/YxfyyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/yxfuyy/YxfyyyClient.java @@ -202,38 +202,78 @@ public class YxfyyyClient extends CommonHttpClient { } + /** + * 器械从三方拉取 + * 药品从视图拉取 + * + * @param udiwmsProductRequest + * @return + */ @Override public BaseResponse getProducts(UdiwmsProductRequest udiwmsProductRequest) { - CtqyyRequest ctqyyRequest = new CtqyyRequest(); - ctqyyRequest.setMsgHeader(getMsgHeader("getMaterialDict")); - ctqyyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsProductRequest)); - String response = httpClient.postJson(thrSystemDetailService.getUrlExclude(Constants.URL_NAME_PI_QUERY_URL), ctqyyRequest); - response = parserResult(response); - try { - BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); - Map map = (Map) baseResponse.getData(); - List zzzyyProductsResponse = JSON.parseArray(map.get("list") + "", ZzzyyProductsResponse.class); - for (ZzzyyProductsResponse productsResponse : zzzyyProductsResponse) { - //判断要是规格和型号一致就是取规格 不一致就合并 - if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isNotEmpty(productsResponse.getStandard())) { - if (productsResponse.getModel_number().equals(productsResponse.getStandard())) { - productsResponse.setStandard(productsResponse.getStandard()); - } else { - productsResponse.setStandard(productsResponse.getStandard() + productsResponse.getModel_number()); + if (udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DEVICE)) { + CtqyyRequest ctqyyRequest = new CtqyyRequest(); + ctqyyRequest.setMsgHeader(getMsgHeader("getMaterialDict")); + ctqyyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsProductRequest)); + String response = httpClient.postJson(thrSystemDetailService.getUrlExclude(Constants.URL_NAME_PI_QUERY_URL), ctqyyRequest); + response = parserResult(response); + try { + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + Map map = (Map) baseResponse.getData(); + List zzzyyProductsResponse = JSON.parseArray(map.get("list") + "", ZzzyyProductsResponse.class); + for (ZzzyyProductsResponse productsResponse : zzzyyProductsResponse) { + //判断要是规格和型号一致就是取规格 不一致就合并 + if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isNotEmpty(productsResponse.getStandard())) { + if (productsResponse.getModel_number().equals(productsResponse.getStandard())) { + productsResponse.setStandard(productsResponse.getStandard()); + } else { + productsResponse.setStandard(productsResponse.getStandard() + productsResponse.getModel_number()); + } + } else if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isBlank(productsResponse.getStandard())) { + productsResponse.setStandard(productsResponse.getModel_number()); } - } else if (StrUtil.isNotEmpty(productsResponse.getModel_number()) && StrUtil.isBlank(productsResponse.getStandard())) { - productsResponse.setStandard(productsResponse.getModel_number()); + productsResponse.setProductType(1); } + map.put("list", JSON.toJSON(zzzyyProductsResponse)); + baseResponse.setData(""); + baseResponse.setData(map); + return baseResponse; + } catch (Exception e) { + log.error("解析长泰区医院智业接口返回产品信息字典数据异常,返回结果:{}", response); + log.error("异常信息:{}", e); + return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果(" + response + ")"); } - map.put("list", JSON.toJSON(zzzyyProductsResponse)); - baseResponse.setData(""); - baseResponse.setData(map); - return baseResponse; - } catch (Exception e) { - log.error("解析云霄妇幼医院智业接口返回产品信息字典数据异常,返回结果:{}", response); - log.error("异常信息:{}", e); - return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果(" + response + ")"); + } else if (udiwmsProductRequest.getProductType().equals(Constants.PRODUCT_TYPE_DRUG)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + //补充其他查询条件 + wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getCode()), VYpzsPhysicDict::getPHYSIC_CODE, udiwmsProductRequest.getCode()); + wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getName()), VYpzsPhysicDict::getPHYSIC_NAME, udiwmsProductRequest.getName()); + wrapper.eq(StrUtil.isNotBlank(udiwmsProductRequest.getRegisterNo()), VYpzsPhysicDict::getPHYSIC_NO, udiwmsProductRequest.getRegisterNo()); + IPage page = vYpzsPhysicDictMapper.selectPage(new Page(udiwmsProductRequest.getPage(), udiwmsProductRequest.getLimit()), wrapper); + List physicDictEntities = page.getRecords(); + List thrProductsEntityList = null; + if (CollUtil.isNotEmpty(physicDictEntities)) { + //数据处理以thr_products 返回 + thrProductsEntityList = physicDictEntities.stream().map(dict -> { + ThrProductsEntity products = new ThrProductsEntity(); + products.setCode(dict.getPHYSIC_CODE()); + products.setName(dict.getPHYSIC_NAME()); + products.setMeasname(dict.getPACK_UNIT()); + products.setSpec(dict.getPACK_SPEC()); + products.setYbbm(dict.getCOUNTRY_CODE()); + products.setPrepnSpec(dict.getPHYSIC_SPEC()); + products.setPrepnUnit(dict.getPHYSIC_UNIT()); + products.setProductType(2); + return products; + }).collect(Collectors.toList()); + } + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(page.getTotal()); + pageSimpleResponse.setList(thrProductsEntityList); + return ResultVOUtils.success(pageSimpleResponse); } + log.error("解析长泰区医院医疗类型,返回结果:{}", udiwmsProductRequest.getProductType()); + return ResultVOUtils.error(500, "医疗类型不正确,productType:" + udiwmsProductRequest.getProductType()); } @Override