From ffbb88dbd171ac7e8fbc7fbb08d6abbbd840f986 Mon Sep 17 00:00:00 2001 From: yewj Date: Tue, 10 Sep 2024 11:24:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=89=E5=8F=96=E5=A4=84=E6=96=B9=E9=80=80?= =?UTF-8?q?=E8=8D=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 206 ++++++++---------- .../entity/ctqyy/VInsurNationGoodsReturn.java | 7 +- .../base/UdiwmsBasicSkPrescribeRequest.java | 5 + 3 files changed, 105 insertions(+), 113 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 fc1799b..3fd5c88 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -54,10 +54,7 @@ import com.glxp.mipsdl.service.order.OrderUploadLogService; import com.glxp.mipsdl.service.system.SysParamConfigService; import com.glxp.mipsdl.service.thrsys.ThrCorpService; import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; -import com.glxp.mipsdl.thirddao.ctqyy.VYpzsIoInfoMapper; -import com.glxp.mipsdl.thirddao.ctqyy.VYpzsPhysicDictMapper; -import com.glxp.mipsdl.thirddao.ctqyy.VYpzsPlanInfoMapper; -import com.glxp.mipsdl.thirddao.ctqyy.VYpzsPresInfoMapper; +import com.glxp.mipsdl.thirddao.ctqyy.*; import com.glxp.mipsdl.util.*; import lombok.extern.slf4j.Slf4j; import org.dom4j.Document; @@ -1358,6 +1355,13 @@ public class CtqyyClient extends CommonHttpClient { return udiwmsPreInOrderRequest; } + @Resource + VInsurNationGoodsPhysicMapper goodsPhysicMapper; + + @Resource + VInsurNationGoodsReturnMapper vInsurNationGoodsReturnMapper; + @Resource + VYpzsPresInfoReturnMapper vYpzsPresInfoReturnMapper; /** * 处方拉取视图 @@ -1367,55 +1371,21 @@ public class CtqyyClient extends CommonHttpClient { */ @Override public BaseResponse getPrescribes(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - String code = udiwmsBasicSkPrescribeRequest.getCode(); - wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VYpzsPresInfo::getSTOOUT_NO, code).or().eq(VYpzsPresInfo::getPRESCRIBE_NUMBER, code)); - //补充其他查询条件 - IPage page = vYpzsPresInfoMapper - .selectPage(new Page(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper); -// List presInfoEntities = page.getRecords(); -// if (CollUtil.isNotEmpty(presInfoEntities)) { -// //数据处理以basic_sk_prescribe,basic_sk_prescribe_item 主子返回 -// Map> groupedByPrescribeNumber = presInfoEntities.stream() -// .collect(Collectors.groupingBy(VYpzsPresInfo::getPRESCRIBE_NUMBER)); -// List basicSkPrescribeResponses = new ArrayList<>(); -// List finalBasicSkPrescribeResponses = basicSkPrescribeResponses; -// groupedByPrescribeNumber.forEach((key, value) -> { -// VYpzsPresInfo presInfoEntity = value.get(0); -// BasicSkPrescribeResponse basicSkPrescribeResponse = new BasicSkPrescribeResponse(); -// basicSkPrescribeResponse.setSickCode(presInfoEntity.getSICK_ID()); -// basicSkPrescribeResponse.setCode(presInfoEntity.getPRESCRIBE_NUMBER()); -// basicSkPrescribeResponse.setStooutNo(presInfoEntity.getSTOOUT_NO()); -// basicSkPrescribeResponse.setAddr("YPCF002"); -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); -// LocalDateTime dateTime = LocalDateTime.parse(presInfoEntity.getLAY_TIME(), formatter); -// basicSkPrescribeResponse.setPrescribeDate(dateTime); -// List itemList = new ArrayList<>(); -// value.forEach(entity -> -// { -// BasicSkPrescribeItemEntity basicSkPrescribeItemEntity = new BasicSkPrescribeItemEntity(); -// basicSkPrescribeItemEntity.setItemCode(entity.getPHYSIC_CODE()); -// BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE())); -// if (basicUdirelEntity != null) { -// basicSkPrescribeItemEntity.setRelId(basicUdirelEntity.getId()); -// } -// basicSkPrescribeItemEntity.setItemName(entity.getPHYSIC_NAME()); -// basicSkPrescribeItemEntity.setGgxh(entity.getPACK_SPEC()); -// basicSkPrescribeItemEntity.setMeasureCount(entity.getLAY_PHYSIC_QUANTITY()); -// basicSkPrescribeItemEntity.setMeasureUnit(entity.getPHYSIC_UNIT()); -// itemList.add(basicSkPrescribeItemEntity); -// }); -// basicSkPrescribeResponse.setItemList(itemList); -// finalBasicSkPrescribeResponses.add(basicSkPrescribeResponse); -// }); -// PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); -// pageSimpleResponse.setTotal(page.getTotal()); -// pageSimpleResponse.setList(basicSkPrescribeResponses); -// return ResultVOUtils.success(pageSimpleResponse); -// } else { -// return ResultVOUtils.error(500, "下载失败!"); -// } - return this.ioCollectOrder(udiwmsBasicSkPrescribeRequest, page); + if (IntUtil.value(udiwmsBasicSkPrescribeRequest.getInOutType()) == 0) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + String code = udiwmsBasicSkPrescribeRequest.getCode(); + wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsPhysic::getSTOOUT_NO, code).or().eq(VInsurNationGoodsPhysic::getRXNO, code)); + IPage page = goodsPhysicMapper + .selectPage(new Page(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper); + return this.covertSellOrder(udiwmsBasicSkPrescribeRequest, page); + } else { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + String code = udiwmsBasicSkPrescribeRequest.getCode(); + wrapper.and(StrUtil.isNotEmpty(code), t -> t.eq(VInsurNationGoodsReturn::getAPPLY_NO, code)); + IPage page = vInsurNationGoodsReturnMapper + .selectPage(new Page(udiwmsBasicSkPrescribeRequest.getPage(), udiwmsBasicSkPrescribeRequest.getLimit()), wrapper); + return this.covertReturnOrder(udiwmsBasicSkPrescribeRequest, page); + } } @@ -1491,7 +1461,7 @@ public class CtqyyClient extends CommonHttpClient { List ioCollectOrders = new ArrayList<>(); if (CollUtil.isNotEmpty(ioInfos)) { Map> groupedByPhysicCode = ioInfos.stream() - .collect(Collectors.groupingBy(VYpzsIoInfo::getPHYSIC_CODE)); + .collect(Collectors.groupingBy(VYpzsIoInfo::getRECEIPT_NUMBER)); groupedByPhysicCode.forEach((key, value) -> { VYpzsIoInfo info = value.get(0); StringBuilder errorMsg = new StringBuilder(); @@ -1521,7 +1491,7 @@ public class CtqyyClient extends CommonHttpClient { collectOrderBiz.setBatchNo(entity.getBATCH_NO()); collectOrderBiz.setCount(entity.getQUANTITY()); collectOrderBiz.setYbbm(entity.getCOUNTRY_CODE()); - collectOrderBiz.setOrderIdFk(info.getPHYSIC_CODE()); + collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo()); collectOrderBiz.setMeasureUnit(entity.getPACK_UNIT1()); collectOrderBiz.setGgxh(entity.getPACK_SPEC() + ":" + entity.getPHYSIC_UNIT()); collectOrderBiz.setTagStatus(1); @@ -1544,102 +1514,115 @@ public class CtqyyClient extends CommonHttpClient { /** - * 中间表 + * 单据 * * @param udiwmsBasicSkPrescribeRequest * @return */ - private BaseResponse basicSkPrescribe(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage page) { - List presInfoEntities = page.getRecords(); + private BaseResponse covertSellOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage page) { + List presInfoEntities = page.getRecords(); if (CollUtil.isNotEmpty(presInfoEntities)) { - //数据处理以basic_sk_prescribe,basic_sk_prescribe_item 主子返回 - Map> groupedByPrescribeNumber = presInfoEntities.stream() - .collect(Collectors.groupingBy(VYpzsPresInfo::getPRESCRIBE_NUMBER)); - List basicSkPrescribeResponses = new ArrayList<>(); - List finalBasicSkPrescribeResponses = basicSkPrescribeResponses; + Map> groupedByPrescribeNumber = presInfoEntities.stream() + .collect(Collectors.groupingBy(VInsurNationGoodsPhysic::getRXNO)); + List ioCollectOrders = new ArrayList<>(); groupedByPrescribeNumber.forEach((key, value) -> { - VYpzsPresInfo presInfoEntity = value.get(0); - BasicSkPrescribeResponse basicSkPrescribeResponse = new BasicSkPrescribeResponse(); - basicSkPrescribeResponse.setSickCode(presInfoEntity.getSICK_ID()); - basicSkPrescribeResponse.setCode(presInfoEntity.getPRESCRIBE_NUMBER()); - basicSkPrescribeResponse.setStooutNo(presInfoEntity.getSTOOUT_NO()); - basicSkPrescribeResponse.setAddr("YPCF002"); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - LocalDateTime dateTime = LocalDateTime.parse(presInfoEntity.getLAY_TIME(), formatter); - basicSkPrescribeResponse.setPrescribeDate(dateTime); - List itemList = new ArrayList<>(); - value.forEach(entity -> - { - BasicSkPrescribeItemEntity basicSkPrescribeItemEntity = new BasicSkPrescribeItemEntity(); - basicSkPrescribeItemEntity.setItemCode(entity.getPHYSIC_CODE()); - BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE())); + VInsurNationGoodsPhysic presInfoEntity = value.get(0); + StringBuilder errorMsg = new StringBuilder(); + IoCollectOrder ioCollectOrder = new IoCollectOrder(); + ioCollectOrder.setBillNo(presInfoEntity.getRXNO()); + ioCollectOrder.setFromType("HIS系统"); + ioCollectOrder.setFromCorp(presInfoEntity.getSICK_ID()); + ioCollectOrder.setWorkPlaceCode(udiwmsBasicSkPrescribeRequest.getWorkPlaceCode()); + ioCollectOrder.setFromCorpName(presInfoEntity.getPSN_NAME()); + Date date = DateUtil.parseDate(presInfoEntity.getSEL_RETN_TIME()); + ioCollectOrder.setBillTime(date); + ioCollectOrder.setCreateTime(new Date()); + ioCollectOrder.setCreateUser(udiwmsBasicSkPrescribeRequest.getCreateUser()); + ioCollectOrder.setBackupOrderRemark1(presInfoEntity.getSTOOUT_NO()); + ioCollectOrder.setUpdateTime(new Date()); + ioCollectOrder.setSplitStatus(0); + ioCollectOrder.setTagStatus(0); + List bizList = new ArrayList<>(); + value.forEach(entity -> { + IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz(); + BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getFIXMEDINS_HILIST_ID())); if (basicUdirelEntity != null) { - basicSkPrescribeItemEntity.setRelId(basicUdirelEntity.getId()); + collectOrderBiz.setRelId(basicUdirelEntity.getId()); + } else { + errorMsg.append(entity.getFIXMEDINS_HILIST_NAME()).append("字典未对照").append(";"); } - basicSkPrescribeItemEntity.setItemName(entity.getPHYSIC_NAME()); - basicSkPrescribeItemEntity.setGgxh(entity.getPACK_SPEC()); - basicSkPrescribeItemEntity.setMeasureCount(entity.getLAY_PHYSIC_QUANTITY()); - basicSkPrescribeItemEntity.setMeasureUnit(entity.getPHYSIC_UNIT()); - itemList.add(basicSkPrescribeItemEntity); + + VYpzsPresInfo vYpzsPresInfo = vYpzsPresInfoMapper.selectOne(new LambdaQueryWrapper().eq(VYpzsPresInfo::getPRESCRIBE_NUMBER, entity.getRXNO()).eq(VYpzsPresInfo::getPHYSIC_CODE, entity.getFIXMEDINS_HILIST_ID())); + collectOrderBiz.setThrCode(entity.getFIXMEDINS_HILIST_ID()); + collectOrderBiz.setCpmctymc(entity.getFIXMEDINS_HILIST_NAME()); + collectOrderBiz.setGgxh(vYpzsPresInfo.getPACK_SPEC()); +// collectOrderBiz.setBatchNo(entity.getBATCH_NUMBER()); + collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo()); + collectOrderBiz.setYbbm(entity.getMED_LIST_CODG()); + collectOrderBiz.setCount(Integer.parseInt(vYpzsPresInfo.getLAY_PHYSIC_QUANTITY())); + collectOrderBiz.setMeasureUnit(vYpzsPresInfo.getPHYSIC_UNIT()); + collectOrderBiz.setTagStatus(1); + collectOrderBiz.setUnTagCount(0); + bizList.add(collectOrderBiz); }); - basicSkPrescribeResponse.setItemList(itemList); - finalBasicSkPrescribeResponses.add(basicSkPrescribeResponse); + if (StrUtil.isNotBlank(errorMsg)) { + ioCollectOrder.setErrorMsg(errorMsg.toString()); + ioCollectOrder.setTagStatus(4); + } + ioCollectOrder.setBizList(bizList); + ioCollectOrders.add(ioCollectOrder); }); - PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(page.getTotal()); - pageSimpleResponse.setList(basicSkPrescribeResponses); + pageSimpleResponse.setList(ioCollectOrders); return ResultVOUtils.success(pageSimpleResponse); } else { return ResultVOUtils.error(500, "下载失败!"); } } - /** - * 单据 - * - * @param udiwmsBasicSkPrescribeRequest - * @return - */ - private BaseResponse ioCollectOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage page) { - List presInfoEntities = page.getRecords(); + private BaseResponse covertReturnOrder(UdiwmsBasicSkPrescribeRequest udiwmsBasicSkPrescribeRequest, IPage page) { + List presInfoEntities = page.getRecords(); if (CollUtil.isNotEmpty(presInfoEntities)) { - //数据处理以io_collect_order,io_collect_order_biz 主子返回 - Map> groupedByPrescribeNumber = presInfoEntities.stream() - .collect(Collectors.groupingBy(VYpzsPresInfo::getPRESCRIBE_NUMBER)); + Map> groupedByPrescribeNumber = presInfoEntities.stream() + .collect(Collectors.groupingBy(VInsurNationGoodsReturn::getAPPLY_NO)); List ioCollectOrders = new ArrayList<>(); groupedByPrescribeNumber.forEach((key, value) -> { - VYpzsPresInfo presInfoEntity = value.get(0); + VInsurNationGoodsReturn presInfoEntity = value.get(0); StringBuilder errorMsg = new StringBuilder(); IoCollectOrder ioCollectOrder = new IoCollectOrder(); - ioCollectOrder.setBillNo(presInfoEntity.getPRESCRIBE_NUMBER()); + ioCollectOrder.setBillNo(presInfoEntity.getAPPLY_NO()); ioCollectOrder.setFromType("HIS系统"); ioCollectOrder.setFromCorp(presInfoEntity.getSICK_ID()); ioCollectOrder.setWorkPlaceCode(udiwmsBasicSkPrescribeRequest.getWorkPlaceCode()); - ioCollectOrder.setFromCorpName(""); - Date date = DateUtil.parseDate(presInfoEntity.getLAY_TIME()); + ioCollectOrder.setFromCorpName(presInfoEntity.getPSN_NAME()); + Date date = DateUtil.parseDate(presInfoEntity.getSEL_RETN_TIME()); ioCollectOrder.setBillTime(date); ioCollectOrder.setCreateTime(new Date()); ioCollectOrder.setCreateUser(udiwmsBasicSkPrescribeRequest.getCreateUser()); - ioCollectOrder.setBackupOrderRemark1(presInfoEntity.getSTOOUT_NO()); ioCollectOrder.setUpdateTime(new Date()); ioCollectOrder.setSplitStatus(0); ioCollectOrder.setTagStatus(0); List bizList = new ArrayList<>(); value.forEach(entity -> { IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz(); - BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE())); + BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper().eq(BasicUdirelEntity::getMainId, entity.getFIXMEDINS_HILIST_ID())); if (basicUdirelEntity != null) { collectOrderBiz.setRelId(basicUdirelEntity.getId()); } else { - errorMsg.append(entity.getPHYSIC_NAME()).append("字典未对照").append(";"); + errorMsg.append(entity.getFIXMEDINS_HILIST_NAME()).append("字典未对照").append(";"); + } + VYpzsPresInfoReturn vYpzsPresInfo = vYpzsPresInfoReturnMapper.selectOne(new LambdaQueryWrapper().eq(VYpzsPresInfoReturn::getAPPLY_NO, entity.getAPPLY_NO()).eq(VYpzsPresInfoReturn::getPHYSIC_CODE, entity.getFIXMEDINS_HILIST_ID())); + if (vYpzsPresInfo != null) { + collectOrderBiz.setGgxh(vYpzsPresInfo.getPHYSIC_SPEC()); + collectOrderBiz.setMeasureUnit(vYpzsPresInfo.getPHYSIC_UNIT()); } - collectOrderBiz.setThrCode(entity.getPHYSIC_CODE()); - collectOrderBiz.setCpmctymc(entity.getPHYSIC_NAME()); - collectOrderBiz.setGgxh(entity.getPACK_SPEC()); + collectOrderBiz.setThrCode(entity.getFIXMEDINS_HILIST_ID()); + collectOrderBiz.setCpmctymc(entity.getFIXMEDINS_HILIST_NAME()); // collectOrderBiz.setBatchNo(entity.getBATCH_NUMBER()); collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo()); - collectOrderBiz.setCount(Integer.parseInt(entity.getLAY_PHYSIC_QUANTITY())); - collectOrderBiz.setMeasureUnit(entity.getPHYSIC_UNIT()); + collectOrderBiz.setYbbm(entity.getMED_LIST_CODG()); + collectOrderBiz.setCount(entity.getSEL_RETN_CNT()); collectOrderBiz.setTagStatus(1); collectOrderBiz.setUnTagCount(0); bizList.add(collectOrderBiz); @@ -1660,5 +1643,4 @@ public class CtqyyClient extends CommonHttpClient { } } - } diff --git a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsReturn.java b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsReturn.java index 85ab451..2d69173 100644 --- a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsReturn.java +++ b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsReturn.java @@ -4,18 +4,23 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.math.BigDecimal; import java.util.Date; + import lombok.Data; @Data @TableName(value = "V_INSUR_NATION_GOODS_RETURN") public class VInsurNationGoodsReturn { + + @TableField(value = "APPLY_NO") + private String APPLY_NO; @TableField(value = "MED_LIST_CODG") private String MED_LIST_CODG; @TableField(value = "FIXMEDINS_HILIST_ID") - private Integer FIXMEDINS_HILIST_ID; + private String FIXMEDINS_HILIST_ID; @TableField(value = "FIXMEDINS_HILIST_NAME") private String FIXMEDINS_HILIST_NAME; 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 7078264..c3148ef 100644 --- a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsBasicSkPrescribeRequest.java @@ -118,5 +118,10 @@ public class UdiwmsBasicSkPrescribeRequest extends ListPageRequest { * 来源业务 */ private String fromType; + + /** + * 0:处方出库;1:处方退货 + */ + private Integer inOutType; }