diff --git a/src/main/java/com/glxp/mipsdl/controller/YbApiController.java b/src/main/java/com/glxp/mipsdl/controller/YbApiController.java index 0c786cf..11cabf6 100644 --- a/src/main/java/com/glxp/mipsdl/controller/YbApiController.java +++ b/src/main/java/com/glxp/mipsdl/controller/YbApiController.java @@ -2,12 +2,17 @@ package com.glxp.mipsdl.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.glxp.mipsdl.dao.basic.BasicUdirelDao; +import com.glxp.mipsdl.entity.basic.BasicUdirelEntity; +import com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic; +import com.glxp.mipsdl.entity.inout.CollectOrderBizResponse; import com.glxp.mipsdl.entity.inout.IoCollectOrder; import com.glxp.mipsdl.req.post.PostCollectOrderRequest; -import com.glxp.mipsdl.req.yb.DictRequest; -import com.glxp.mipsdl.req.yb.Yljg1201Request; +import com.glxp.mipsdl.req.yb.*; import com.glxp.mipsdl.res.BaseResponse; import com.glxp.mipsdl.service.yb.YbClient; +import com.glxp.mipsdl.thirddao.ctqyy.VInsurNationGoodsPhysicMapper; import com.glxp.mipsdl.util.ResultVOUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; @@ -15,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Slf4j @@ -47,6 +53,10 @@ public class YbApiController { return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), jsonStr)); } + @Resource + VInsurNationGoodsPhysicMapper goodsPhysicMapper; + @Resource + private BasicUdirelDao basicUdirelDao; /** * 通用字典下载接口 @@ -61,7 +71,71 @@ public class YbApiController { for (IoCollectOrder ioCollectOrder : collectOrderList) { //摆药流水号 String stoout_no = ioCollectOrder.getBackupOrderRemark1(); + List vInsurNationGoodsPhysics = goodsPhysicMapper.selectList(new LambdaQueryWrapper().eq(VInsurNationGoodsPhysic::getSTOOUT_NO, stoout_no)); + if (CollUtil.isNotEmpty(vInsurNationGoodsPhysics)) { + List collectOrderBizResponseList = ioCollectOrder.getCollectOrderBizResponseList(); + List xsck3505Requests = 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) { + DrugInfoRequest request = new DrugInfoRequest(); + request.setDrug_trac_codg(code); + drugTraceList.add(request); + } + Xsck3505Request xsck3505Request = Xsck3505Request.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(); + xsck3505Requests.add(xsck3505Request); + } + } + } + BaseXsck3505Request baseXsck3505Request = new BaseXsck3505Request(); + baseXsck3505Request.setSelinfoDetail(xsck3505Requests); + String jsonStr = JSONUtil.toJsonStr(baseXsck3505Request); + ybClient.ybPost("3505A", jsonStr); + } } } //ybClient.ybPost(dictRequest.getApiCode(), jsonStr) diff --git a/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java new file mode 100644 index 0000000..4397e80 --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/entity/ctqyy/VInsurNationGoodsPhysic.java @@ -0,0 +1,136 @@ +package com.glxp.mipsdl.entity.ctqyy; + +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.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; + +@Data +@TableName(value = "v_insur_nation_goods_physic") +public class VInsurNationGoodsPhysic implements Serializable { + @TableField(value = "MED_LIST_CODG") + private String MED_LIST_CODG; + + @TableField(value = "FIXMEDINS_HILIST_ID") + private String FIXMEDINS_HILIST_ID; + + @TableField(value = "FIXMEDINS_HILIST_NAME") + private String FIXMEDINS_HILIST_NAME; + + @TableField(value = "FIXMEDINS_BCHNO") + private String FIXMEDINS_BCHNO; + + @TableField(value = "PRSC_DR_CERT_TYPE") + private String PRSC_DR_CERT_TYPE; + + @TableField(value = "PRSC_DR_CERTNO") + private String PRSC_DR_CERTNO; + + @TableField(value = "PRSC_DR_NAME") + private String PRSC_DR_NAME; + + @TableField(value = "PHAR_CERT_TYPE") + private String PHAR_CERT_TYPE; + + @TableField(value = "PHAR_CERTNO") + private String PHAR_CERTNO; + + @TableField(value = "PHAR_NAME") + private String PHAR_NAME; + + @TableField(value = "PHAR_PRAC_CERT_NO") + private String PHAR_PRAC_CERT_NO; + + @TableField(value = "HI_FEESETL_TYPE") + private String HI_FEESETL_TYPE; + + @TableField(value = "SETL_ID") + private String SETL_ID; + + @TableField(value = "MDTRT_SN") + private String MDTRT_SN; + + @TableField(value = "PSN_NO") + private String PSN_NO; + + @TableField(value = "PSN_CERT_TYPE") + private String PSN_CERT_TYPE; + + @TableField(value = "CERTNO") + private String CERTNO; + + @TableField(value = "PSN_NAME") + private String PSN_NAME; + + @TableField(value = "MANU_LOTNUM") + private String MANU_LOTNUM; + + @TableField(value = "MANU_DATE") + private Date MANU_DATE; + + @TableField(value = "EXPY_END") + private Date EXPY_END; + + @TableField(value = "RX_FLAG") + private String RX_FLAG; + + @TableField(value = "TRDN_FLAG") + private String TRDN_FLAG; + + @TableField(value = "FINL_TRNS_PRIC") + private BigDecimal FINL_TRNS_PRIC; + + @TableField(value = "RXNO") + private String RXNO; + + @TableField(value = "RX_CIRC_FLAG") + private String RX_CIRC_FLAG; + + @TableField(value = "RTAL_DOCNO") + private String RTAL_DOCNO; + + @TableField(value = "STOOUT_NO") + private String STOOUT_NO; + + @TableField(value = "BCHNO") + private String BCHNO; + + @TableField(value = "RUG_PROD_BARC") + private String RUG_PROD_BARC; + + @TableField(value = "SHELF_POSI") + private String SHELF_POSI; + + @TableField(value = "SEL_RETN_CNT") + private Integer SEL_RETN_CNT; + + @TableField(value = "SEL_RETN_TIME") + private Date SEL_RETN_TIME; + + @TableField(value = "SEL_RETN_OPTER_NAME") + private String SEL_RETN_OPTER_NAME; + + @TableField(value = "MEMO") + private String MEMO; + + @TableField(value = "MDTRT_SETL_TYPE") + private String MDTRT_SETL_TYPE; + + @TableField(value = "DRUGTRACINFO") + private String DRUGTRACINFO; + + @TableField(value = "APPLY_NO") + private String APPLY_NO; + + @TableField(value = "SETTLE_NO") + private String SETTLE_NO; + + @TableField(value = "SICK_ID") + private String SICK_ID; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck3505Request.java b/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck3505Request.java new file mode 100644 index 0000000..6c768f1 --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/req/yb/BaseXsck3505Request.java @@ -0,0 +1,10 @@ +package com.glxp.mipsdl.req.yb; + +import lombok.Data; + +import java.util.List; + +@Data +public class BaseXsck3505Request { + private List selinfoDetail; +} diff --git a/src/main/java/com/glxp/mipsdl/req/yb/DrugInfoRequest.java b/src/main/java/com/glxp/mipsdl/req/yb/DrugInfoRequest.java new file mode 100644 index 0000000..e2f606b --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/req/yb/DrugInfoRequest.java @@ -0,0 +1,9 @@ +package com.glxp.mipsdl.req.yb; + +import lombok.Data; + +@Data +public class DrugInfoRequest { + + private String drug_trac_codg; +} diff --git a/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java b/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java index 050db93..159ad90 100644 --- a/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java +++ b/src/main/java/com/glxp/mipsdl/req/yb/Xsck3505Request.java @@ -1,14 +1,21 @@ 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.Date; +import java.util.List; /** * 药品销售 */ @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor public class Xsck3505Request { @@ -196,7 +203,7 @@ public class Xsck3505Request { /** * 溯源码节点信息 */ - private String drugtracinfo; + private List drugtracinfo; private String drug_trac_codg; diff --git a/src/main/java/com/glxp/mipsdl/service/ctqyy/VInsurNationGoodsPhysicService.java b/src/main/java/com/glxp/mipsdl/service/ctqyy/VInsurNationGoodsPhysicService.java new file mode 100644 index 0000000..f55576a --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/service/ctqyy/VInsurNationGoodsPhysicService.java @@ -0,0 +1,10 @@ +package com.glxp.mipsdl.service.ctqyy; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.mipsdl.thirddao.ctqyy.VInsurNationGoodsPhysicMapper; +import com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic; +@Service +public class VInsurNationGoodsPhysicService extends ServiceImpl { + +} 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 587ce89..2de2a0f 100644 --- a/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java +++ b/src/main/java/com/glxp/mipsdl/service/yb/YbClient.java @@ -10,11 +10,13 @@ import com.alibaba.fastjson.JSONObject; import com.glxp.mipsdl.entity.system.ThrYbSetup; import com.glxp.mipsdl.service.system.ThrYbSetupService; import com.glxp.mipsdl.util.DateUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +@Slf4j @Service public class YbClient { @@ -23,7 +25,7 @@ public class YbClient { public ChsMedicalResponse ybPost(String apiNo, String data) { - + log.error("[" + apiNo + "]医保接口请求参数:" + data); ThrYbSetup thrYbSetup = thrYbSetupService.getSetUp(); if (thrYbSetup == null) throw new RuntimeException("未配置医保接口"); diff --git a/src/main/java/com/glxp/mipsdl/thirddao/ctqyy/VInsurNationGoodsPhysicMapper.java b/src/main/java/com/glxp/mipsdl/thirddao/ctqyy/VInsurNationGoodsPhysicMapper.java new file mode 100644 index 0000000..185a376 --- /dev/null +++ b/src/main/java/com/glxp/mipsdl/thirddao/ctqyy/VInsurNationGoodsPhysicMapper.java @@ -0,0 +1,11 @@ +package com.glxp.mipsdl.thirddao.ctqyy; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +@DS("ctqyySql") +public interface VInsurNationGoodsPhysicMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/other/ctqyy/VInsurNationGoodsPhysicMapper.xml b/src/main/resources/mybatis/mapper/other/ctqyy/VInsurNationGoodsPhysicMapper.xml new file mode 100644 index 0000000..7cd3ea3 --- /dev/null +++ b/src/main/resources/mybatis/mapper/other/ctqyy/VInsurNationGoodsPhysicMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MED_LIST_CODG, FIXMEDINS_HILIST_ID, FIXMEDINS_HILIST_NAME, FIXMEDINS_BCHNO, PRSC_DR_CERT_TYPE, + PRSC_DR_CERTNO, PRSC_DR_NAME, PHAR_CERT_TYPE, PHAR_CERTNO, PHAR_NAME, PHAR_PRAC_CERT_NO, + HI_FEESETL_TYPE, SETL_ID, MDTRT_SN, PSN_NO, PSN_CERT_TYPE, CERTNO, PSN_NAME, MANU_LOTNUM, + MANU_DATE, EXPY_END, RX_FLAG, TRDN_FLAG, FINL_TRNS_PRIC, RXNO, RX_CIRC_FLAG, RTAL_DOCNO, + STOOUT_NO, BCHNO, RUG_PROD_BARC, SHELF_POSI, SEL_RETN_CNT, SEL_RETN_TIME, SEL_RETN_OPTER_NAME, + MEMO, MDTRT_SETL_TYPE, DRUGTRACINFO, APPLY_NO, SETTLE_NO, SICK_ID + + \ No newline at end of file