医保上传

scpwxyy
yewj 10 months ago
parent 414ca2e49a
commit 1feb4b0d7a

@ -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<VInsurNationGoodsPhysic> vInsurNationGoodsPhysics = goodsPhysicMapper.selectList(new LambdaQueryWrapper<VInsurNationGoodsPhysic>().eq(VInsurNationGoodsPhysic::getSTOOUT_NO, stoout_no));
if (CollUtil.isNotEmpty(vInsurNationGoodsPhysics)) {
List<CollectOrderBizResponse> collectOrderBizResponseList = ioCollectOrder.getCollectOrderBizResponseList();
List<Xsck3505Request> 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<DrugInfoRequest> 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)

@ -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;
}

@ -0,0 +1,10 @@
package com.glxp.mipsdl.req.yb;
import lombok.Data;
import java.util.List;
@Data
public class BaseXsck3505Request {
private List<Xsck3505Request> selinfoDetail;
}

@ -0,0 +1,9 @@
package com.glxp.mipsdl.req.yb;
import lombok.Data;
@Data
public class DrugInfoRequest {
private String drug_trac_codg;
}

@ -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<DrugInfoRequest> drugtracinfo;
private String drug_trac_codg;

@ -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<VInsurNationGoodsPhysicMapper, VInsurNationGoodsPhysic> {
}

@ -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("未配置医保接口");

@ -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<VInsurNationGoodsPhysic> {
}

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.mipsdl.thirddao.ctqyy.VInsurNationGoodsPhysicMapper">
<resultMap id="BaseResultMap" type="com.glxp.mipsdl.entity.ctqyy.VInsurNationGoodsPhysic">
<!--@mbg.generated-->
<!--@Table v_insur_nation_goods_physic-->
<result column="MED_LIST_CODG" jdbcType="VARCHAR" property="MED_LIST_CODG" />
<result column="FIXMEDINS_HILIST_ID" jdbcType="VARCHAR" property="FIXMEDINS_HILIST_ID" />
<result column="FIXMEDINS_HILIST_NAME" jdbcType="VARCHAR" property="FIXMEDINS_HILIST_NAME" />
<result column="FIXMEDINS_BCHNO" jdbcType="VARCHAR" property="FIXMEDINS_BCHNO" />
<result column="PRSC_DR_CERT_TYPE" jdbcType="CHAR" property="PRSC_DR_CERT_TYPE" />
<result column="PRSC_DR_CERTNO" jdbcType="VARCHAR" property="PRSC_DR_CERTNO" />
<result column="PRSC_DR_NAME" jdbcType="VARCHAR" property="PRSC_DR_NAME" />
<result column="PHAR_CERT_TYPE" jdbcType="CHAR" property="PHAR_CERT_TYPE" />
<result column="PHAR_CERTNO" jdbcType="VARCHAR" property="PHAR_CERTNO" />
<result column="PHAR_NAME" jdbcType="VARCHAR" property="PHAR_NAME" />
<result column="PHAR_PRAC_CERT_NO" jdbcType="VARCHAR" property="PHAR_PRAC_CERT_NO" />
<result column="HI_FEESETL_TYPE" jdbcType="VARCHAR" property="HI_FEESETL_TYPE" />
<result column="SETL_ID" jdbcType="VARCHAR" property="SETL_ID" />
<result column="MDTRT_SN" jdbcType="VARCHAR" property="MDTRT_SN" />
<result column="PSN_NO" jdbcType="VARCHAR" property="PSN_NO" />
<result column="PSN_CERT_TYPE" jdbcType="CHAR" property="PSN_CERT_TYPE" />
<result column="CERTNO" jdbcType="VARCHAR" property="CERTNO" />
<result column="PSN_NAME" jdbcType="VARCHAR" property="PSN_NAME" />
<result column="MANU_LOTNUM" jdbcType="VARCHAR" property="MANU_LOTNUM" />
<result column="MANU_DATE" jdbcType="TIMESTAMP" property="MANU_DATE" />
<result column="EXPY_END" jdbcType="TIMESTAMP" property="EXPY_END" />
<result column="RX_FLAG" jdbcType="CHAR" property="RX_FLAG" />
<result column="TRDN_FLAG" jdbcType="CHAR" property="TRDN_FLAG" />
<result column="FINL_TRNS_PRIC" jdbcType="DECIMAL" property="FINL_TRNS_PRIC" />
<result column="RXNO" jdbcType="VARCHAR" property="RXNO" />
<result column="RX_CIRC_FLAG" jdbcType="CHAR" property="RX_CIRC_FLAG" />
<result column="RTAL_DOCNO" jdbcType="VARCHAR" property="RTAL_DOCNO" />
<result column="STOOUT_NO" jdbcType="VARCHAR" property="STOOUT_NO" />
<result column="BCHNO" jdbcType="VARCHAR" property="BCHNO" />
<result column="RUG_PROD_BARC" jdbcType="VARCHAR" property="RUG_PROD_BARC" />
<result column="SHELF_POSI" jdbcType="VARCHAR" property="SHELF_POSI" />
<result column="SEL_RETN_CNT" jdbcType="INTEGER" property="SEL_RETN_CNT" />
<result column="SEL_RETN_TIME" jdbcType="TIMESTAMP" property="SEL_RETN_TIME" />
<result column="SEL_RETN_OPTER_NAME" jdbcType="VARCHAR" property="SEL_RETN_OPTER_NAME" />
<result column="MEMO" jdbcType="LONGVARCHAR" property="MEMO" />
<result column="MDTRT_SETL_TYPE" jdbcType="CHAR" property="MDTRT_SETL_TYPE" />
<result column="DRUGTRACINFO" jdbcType="LONGVARCHAR" property="DRUGTRACINFO" />
<result column="APPLY_NO" jdbcType="VARCHAR" property="APPLY_NO" />
<result column="SETTLE_NO" jdbcType="VARCHAR" property="SETTLE_NO" />
<result column="SICK_ID" jdbcType="VARCHAR" property="SICK_ID" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
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
</sql>
</mapper>
Loading…
Cancel
Save