diff --git a/src/main/java/com/glxp/mipsdl/client/hlfyyy/HlfyyyClient.java b/src/main/java/com/glxp/mipsdl/client/hlfyyy/HlfyyyClient.java index 3f8a58e..4afccc2 100644 --- a/src/main/java/com/glxp/mipsdl/client/hlfyyy/HlfyyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/hlfyyy/HlfyyyClient.java @@ -98,6 +98,8 @@ public class HlfyyyClient extends CommonHttpClient { private final String[] buyType_3505 = {}; private final String[] buyType_3506 = {}; + + private final String[] buyType_35051 = {"SC72249388338364","SC72197936495755"}; @Value("${DSF_XML_SQL_TYPE:MySql}") private String defXmlSqlType; @Resource @@ -1708,6 +1710,8 @@ public class HlfyyyClient extends CommonHttpClient { optionUploadCollectOrder3505(ioCollectOrder); } else if (matchBusType(busType, buyType_3506)) { optionUploadCollectOrder3506(ioCollectOrder); + }else if (matchBusType(busType, buyType_35051)) { + optionUploadCollectOrder35051(ioCollectOrder); }else { return ResultVOUtils.error(500,"上传类型都未对上请检查单据类型"); } @@ -2032,7 +2036,91 @@ public class HlfyyyClient extends CommonHttpClient { } + public BaseResponse optionUploadCollectOrder35051(IoCollectOrder ioCollectOrder) { + String stoout_no = StringUtils.isBlank(ioCollectOrder.getBackupOrderRemark1()) ? ioCollectOrder.getBackupOrderRemark2() : ioCollectOrder.getBackupOrderRemark1(); + List vInsurNationGoodsPhysics = goodsPhysicMapper.selectList(new LambdaQueryWrapper().eq(VInsurNationGoodsPhysic::getSTOOUT_NO, stoout_no)); + if (CollUtil.isNotEmpty(vInsurNationGoodsPhysics)) { + List collectOrderBizResponseList = ioCollectOrder.getCollectOrderBizResponseList(); + List xsck35051Requests = new ArrayList<>(); + for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponseList) { + BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectById(collectOrderBizResponse.getRelId()); + String itemCode = basicUdirelEntity.getMainId(); + for (VInsurNationGoodsPhysic vInsurNationGoodsPhysic : vInsurNationGoodsPhysics) { + if (vInsurNationGoodsPhysic.getFIXMEDINS_HILIST_ID().equals(itemCode)) { + String[] codes = collectOrderBizResponse.getFinishUdiCode().split(","); + List drugTraceList = new ArrayList<>(); + // 遍历fruits数组 + for (String code : codes) { + if (StrUtil.isNotBlank(code)) { + List relCodeDetailList = relCodeDetailService.getAllNext(code); + if (relCodeDetailList != null && relCodeDetailList.size() > 0) { + for (RelCodeDetail relCodeDetail : relCodeDetailList) { + DrugInfoRequest request = new DrugInfoRequest(); + request.setDrug_trac_codg(relCodeDetail.getCurCode()); + drugTraceList.add(request); + } + + } + + } + + } + Xsck35051Request xsck35051Request = Xsck35051Request.builder() + .med_list_codg(vInsurNationGoodsPhysic.getMED_LIST_CODG()) + .fixmedins_hilist_id(vInsurNationGoodsPhysic.getFIXMEDINS_HILIST_ID()) + .fixmedins_hilist_name(vInsurNationGoodsPhysic.getFIXMEDINS_HILIST_NAME()) + .fixmedins_bchno(vInsurNationGoodsPhysic.getFIXMEDINS_BCHNO()) + .prsc_dr_cert_type(vInsurNationGoodsPhysic.getPRSC_DR_CERT_TYPE()) + .prsc_dr_certno(vInsurNationGoodsPhysic.getPRSC_DR_CERTNO()) + .prsc_dr_name(vInsurNationGoodsPhysic.getPRSC_DR_NAME()) + .phar_cert_type(vInsurNationGoodsPhysic.getPHAR_CERT_TYPE()) + .phar_certno(vInsurNationGoodsPhysic.getPHAR_CERTNO()) + .phar_name(vInsurNationGoodsPhysic.getPHAR_NAME()) + .phar_prac_cert_no(vInsurNationGoodsPhysic.getPHAR_PRAC_CERT_NO()) + .hi_feesetl_type(vInsurNationGoodsPhysic.getHI_FEESETL_TYPE()) + .setl_id(vInsurNationGoodsPhysic.getSETL_ID()) + .mdtrt_sn(vInsurNationGoodsPhysic.getMDTRT_SN()) + .psn_no(vInsurNationGoodsPhysic.getPSN_NO()) + .psn_cert_type(vInsurNationGoodsPhysic.getPSN_CERT_TYPE()) + .certno(vInsurNationGoodsPhysic.getCERTNO()) + .psn_name(vInsurNationGoodsPhysic.getPSN_NAME()) + .manu_lotnum(vInsurNationGoodsPhysic.getMANU_LOTNUM()) + .manu_date(vInsurNationGoodsPhysic.getMANU_DATE()) + .expy_end(vInsurNationGoodsPhysic.getEXPY_END()) + .rx_flag(vInsurNationGoodsPhysic.getRX_FLAG()) + .trdn_flag(vInsurNationGoodsPhysic.getTRDN_FLAG()) + .finl_trns_pric(vInsurNationGoodsPhysic.getFINL_TRNS_PRIC()) + .rxno(vInsurNationGoodsPhysic.getRXNO()) + .rx_circ_flag(vInsurNationGoodsPhysic.getRX_CIRC_FLAG()) + .rtal_docno(vInsurNationGoodsPhysic.getRTAL_DOCNO()) + .stoout_no(vInsurNationGoodsPhysic.getSTOOUT_NO()) + .bchno(vInsurNationGoodsPhysic.getBCHNO()) + .drug_prod_barc(vInsurNationGoodsPhysic.getRUG_PROD_BARC()) + .shelf_posi(vInsurNationGoodsPhysic.getSHELF_POSI()) + .sel_retn_cnt(vInsurNationGoodsPhysic.getSEL_RETN_CNT()) + .sel_retn_time(vInsurNationGoodsPhysic.getSEL_RETN_TIME()) + .sel_retn_opter_name(vInsurNationGoodsPhysic.getSEL_RETN_OPTER_NAME()) + .memo(vInsurNationGoodsPhysic.getMEMO()) + .mdtrt_setl_type(vInsurNationGoodsPhysic.getMDTRT_SETL_TYPE()) + .drugtracinfo(drugTraceList).build(); + xsck35051Requests.add(xsck35051Request); + } + } + } + BaseXsck35051Request baseXsck35051Request = new BaseXsck35051Request(); + baseXsck35051Request.setSelinfoDetail(xsck35051Requests); + String jsonStr = JSONUtil.toJsonStr(baseXsck35051Request); + JSONObject dataJson = JSONObject.parseObject(jsonStr); + + + return ybClient.ybPost("35051", dataJson); + + } else { + return ResultVOUtils.error(500, "医保视图数据查不到,请核实"); + } + + } public void optionUploadCollectOrder3501(IoCollectOrder ioCollectOrder) { List bizList = ioCollectOrder.getBizList(); if (CollUtil.isNotEmpty(bizList)) { diff --git a/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck35051Request.java b/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck35051Request.java new file mode 100644 index 0000000..76035e6 --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck35051Request.java @@ -0,0 +1,10 @@ +package com.glxp.mipsdl.req.yb; + +import lombok.Data; + +import java.util.List; + +@Data +public class BaseXsck35051Request { + private List selinfoDetail; +} diff --git a/src/main/java/com/glxp/mipsdl/req/yb/Xsck35051Request.java b/src/main/java/com/glxp/mipsdl/req/yb/Xsck35051Request.java new file mode 100644 index 0000000..80dea1a --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/req/yb/Xsck35051Request.java @@ -0,0 +1,213 @@ +package com.glxp.mipsdl.req.yb; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 药品销售 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Xsck35051Request { + + + /** + * 医疗目录编码 + */ + private String med_list_codg; + + /** + * 定点医药机构目录编号 + */ + private String fixmedins_hilist_id; + + /** + * 定点医药机构目录名称 + */ + private String fixmedins_hilist_name; + + /** + * 定点医药机构批次流水号 + */ + private String fixmedins_bchno; + + /** + * 开方医师证件类型 + */ + private String prsc_dr_cert_type; + + /** + * 开方医师证件号码 + */ + private String prsc_dr_certno; + + /** + * 开方医师姓名 + */ + private String prsc_dr_name; + + /** + * 药师证件类型 + */ + private String phar_cert_type; + + /** + * 药师证件号码 + */ + private String phar_certno; + + /** + * 药师姓名 + */ + private String phar_name; + + /** + * 药师执业资格证号 + */ + private String phar_prac_cert_no; + + /** + * 医保费用结算类型 + */ + private String hi_feesetl_type; + + /** + * 结算ID + */ + private String setl_id; + + /** + * 就医流水号 + */ + private String mdtrt_sn; + + /** + * 人员编号 + */ + private String psn_no; + + /** + * 人员证件类型 + */ + private String psn_cert_type; + + /** + * 证件号码 + */ + private String certno; + + /** + * 人员姓名 + */ + private String psn_name; + + /** + * 生产批号 + */ + private String manu_lotnum; + + /** + * 生产日期 + */ + private String manu_date; + + /** + * 有效期止 + */ + private String expy_end; + + /** + * 处方药标志 + */ + private String rx_flag; + + /** + * 拆零标志 + */ + private String trdn_flag; + + /** + * 最终成交单价 + */ + private BigDecimal finl_trns_pric; + + /** + * 处方号 + */ + private String rxno; + + /** + * 外购处方标志 + */ + private String rx_circ_flag; + + /** + * 零售单据号 + */ + private String rtal_docno; + + /** + * 销售出库单据号 + */ + private String stoout_no; + + /** + * 批次号 + */ + private String bchno; + /** + * 药品追溯码 + */ + private String drug_trac_codg; + + /** + * 药品条形码 + */ + private String drug_prod_barc; + + /** + * 货架位 + */ + private String shelf_posi; + + /** + * 销售/退货数量 + */ + private Integer sel_retn_cnt; + + /** + * 销售/退货时间 + */ + private String sel_retn_time; + + /** + * 销售/退货经办人姓名 + */ + private String sel_retn_opter_name; + + /** + * 备注 + */ + private String memo; + + /** + * 就诊结算类型 + */ + private String mdtrt_setl_type; + + /** + * 溯源码节点信息 + */ + private List drugtracinfo; + + + + +}