长泰上传医保迁移 优化

yxfydrug
qiuyt 3 months ago
parent 4105263a14
commit a1f5ed403a

@ -2069,18 +2069,15 @@ public class yxfyClient extends CommonHttpClient {
// log.error("stoout_no===",stoout_no);
List<VYpzsPresInfo> list = vYpzsPresInfoMapper
.selectList(
new QueryWrapper<VYpzsPresInfo>().eq("STOOUT_NO",ioCollectOrder.getBillNo())
new QueryWrapper<VYpzsPresInfo>().eq("PRESCRIBE_NUMBER",ioCollectOrder.getBillNo())
);
if ( CollUtil.isNotEmpty(list)) {
String stoout_no = list.get(0).getSTOOUT_NO();
log.error("stoout_no==="+stoout_no);
List<VInsurNationGoodsPhysic> vInsurNationGoodsPhysics = goodsPhysicMapper.selectList(new LambdaQueryWrapper<VInsurNationGoodsPhysic>().eq(VInsurNationGoodsPhysic::getSTOOUT_NO, stoout_no));
log.error("vInsurNationGoodsPhysics==="+vInsurNationGoodsPhysics);
if ( CollUtil.isNotEmpty(vInsurNationGoodsPhysics)) {
List<CollectOrderBizResponse> collectOrderBizResponseList = ioCollectOrder.getCollectOrderBizResponseList();
log.error("collectOrderBizResponseList==="+collectOrderBizResponseList);
List<Xsck3505Request> xsck3505Requests = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponseList) {
@ -2092,6 +2089,8 @@ public class yxfyClient extends CommonHttpClient {
if(StringUtils.isNotEmpty(collectOrderBizResponse.getFinishUdiCode())){
codes = collectOrderBizResponse.getFinishUdiCode().split(",");
}else {
collectOrderBizResponse.setTrdnFlag("0");
}
List<DrugInfoRequest> drugTraceList = new ArrayList<>();
// 遍历fruits数组
@ -2108,7 +2107,6 @@ public class yxfyClient extends CommonHttpClient {
}
}
}
log.error("vInsurNationGoodsPhysic==="+vInsurNationGoodsPhysic);
// 医保自费类型
if(StringUtils.isEmpty(vInsurNationGoodsPhysic.getMDTRT_SETL_TYPE()) || !"1".equals(vInsurNationGoodsPhysic.getMDTRT_SETL_TYPE())){
vInsurNationGoodsPhysic.setMDTRT_SETL_TYPE("2");
@ -2143,7 +2141,7 @@ public class yxfyClient extends CommonHttpClient {
.manu_date(vInsurNationGoodsPhysic.getMANU_DATE())
.expy_end(vInsurNationGoodsPhysic.getEXPY_END())
.rx_flag(vInsurNationGoodsPhysic.getRX_FLAG())
.trdn_flag(vInsurNationGoodsPhysic.getTRDN_FLAG())
.trdn_flag(collectOrderBizResponse.getTrdnFlag())
.finl_trns_pric(vInsurNationGoodsPhysic.getFINL_TRNS_PRIC())
.rxno(vInsurNationGoodsPhysic.getRXNO())
.rx_circ_flag(vInsurNationGoodsPhysic.getRX_CIRC_FLAG())
@ -2158,7 +2156,6 @@ public class yxfyClient extends CommonHttpClient {
.memo(vInsurNationGoodsPhysic.getMEMO())
.mdtrt_setl_type(vInsurNationGoodsPhysic.getMDTRT_SETL_TYPE())
.drugtracinfo(drugTraceList).build();
log.error("xsck3505Request==="+xsck3505Request);
xsck3505Requests.add(xsck3505Request);
}
@ -2168,7 +2165,7 @@ public class yxfyClient extends CommonHttpClient {
baseXsck3505Request.setSelinfoDetail(xsck3505Requests);
String jsonStr = JSONUtil.toJsonStr(baseXsck3505Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ybClient.ybPost("3505A", dataJson);
return ybClient.ybPost("3505A", dataJson,ioCollectOrder.getBillNo());
}
}else {
return ResultVOUtils.error(500,"上传医保数据为空请核实");
@ -2233,6 +2230,9 @@ public class yxfyClient extends CommonHttpClient {
//todo 处方药标志先写死 后面要商量怎么获得
String rxFlag ="1";
log.error("optionUploadCollectOrder35051===item==="+item);
if(org.apache.commons.lang3.StringUtils.isEmpty(item.getBatchNo())){
item.setBatchNo("null");
}
Xsck35051Request xsck35051Request = Xsck35051Request.builder()
.med_list_codg(item.getYbbm())
.fixmedins_hilist_id(item.getNameCode())
@ -2279,7 +2279,7 @@ public class yxfyClient extends CommonHttpClient {
baseXsck35051Request.setSelinfoDetail(xsck35051Requests);
String jsonStr = JSONUtil.toJsonStr(baseXsck35051Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ybClient.ybPost("35051", dataJson);
return ybClient.ybPost("35051", dataJson,ioCollectOrder.getBillNo());
} else {
return ResultVOUtils.error(500, "上传医保数据为空请核实");
}
@ -2334,7 +2334,7 @@ public class yxfyClient extends CommonHttpClient {
basePcsc3501Request.setSelinfoDetail(pcsc3501Requests);
String jsonStr = JSONUtil.toJsonStr(basePcsc3501Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
ybClient.ybPost("3501A", dataJson);
ybClient.ybPost("3501A", dataJson,ioCollectOrder.getBillNo());
}
}
@ -2353,10 +2353,10 @@ public class yxfyClient extends CommonHttpClient {
String[] codes = item.getFinishUdiCode().split(",");
String nameCode = item.getNameCode();
BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(
new QueryWrapper<BasicProductsEntity>().eq("nameCode", nameCode).last("limit 1")
new QueryWrapper<BasicProductsEntity>().eq("nameCode",nameCode).last("limit 1")
);
if (Objects.isNull(basicProductsEntity)) {
return ResultVOUtils.error(500, "产品为空请检查");
if(Objects.isNull(basicProductsEntity)){
return ResultVOUtils.error(500,"产品为空请检查");
}
Integer packLevel = Integer.valueOf(basicProductsEntity.getPackLevel());
List<DrugInfoRequest> drugTraceList = new ArrayList<>();
@ -2373,8 +2373,8 @@ public class yxfyClient extends CommonHttpClient {
}
// 级别为2的产品码不可能只有一个
if (packLevel > 1 && codeList.size() < 2) {
return ResultVOUtils.error(500, "大包装码关联关系拉取不到请检查" + code);
if(packLevel >1 && codeList.size() <2){
return ResultVOUtils.error(500,"大包装码关联关系拉取不到请检查"+code);
}
}
}
@ -2385,24 +2385,24 @@ public class yxfyClient extends CommonHttpClient {
drugTraceList.add(request);
}
if (CollUtil.isEmpty(drugTraceList)) {
return ResultVOUtils.error(500, "单据要传的码为空请检查");
if(CollUtil.isEmpty(drugTraceList)){
return ResultVOUtils.error(500,"单据要传的码为空请检查");
}
// TODO: 2024/9/10 字段未完全正确对应
Kcbg3502Request kcbg3502Request = Kcbg3502Request.builder()
.med_list_codg(item.getYbbm())
.inv_chg_type("108")
.fixmedins_hilist_id(item.getThrCode())
.fixmedins_hilist_name(item.getCpmctymc())
.fixmedins_bchno(item.getOrderIdFk())
// TODO: 价格和数量可以不填
// .pric("0")
// .cnt(item.getActCount())
.fixmedins_bchno("0000")
.pric("0")
.cnt(item.getActCount())
.rx_flag("1")
.inv_chg_time(item.getUpdateTime())
.inv_chg_opter_name(ioCollectOrder.getCreateUser())
.memo(item.getRemark())
.trdn_flag(item.getTrdnFlag())
.trdn_flag("0")
.drugtracinfo(drugTraceList).build();
kcbg3502Requests.add(kcbg3502Request);
// }
@ -2412,12 +2412,13 @@ public class yxfyClient extends CommonHttpClient {
baseKcbg3502Request.setInvinfoDetail(kcbg3502Requests);
String jsonStr = JSONUtil.toJsonStr(baseKcbg3502Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ybClient.ybPost("3502A", dataJson);
} else {
return ResultVOUtils.error(500, "上传医保数据为空请核实");
return ybClient.ybPost("3502A", dataJson,ioCollectOrder.getBillNo());
}else {
return ResultVOUtils.error(500,"上传医保数据为空请核实");
}
}
public void optionUploadCollectOrder3506(IoCollectOrder ioCollectOrder) {
// List<IoCollectOrderBiz> bizList = ioCollectOrder.getBizList();
List<CollectOrderBizResponse> collectOrderBizResponseList = ioCollectOrder.getCollectOrderBizResponseList();
@ -2484,7 +2485,7 @@ public class yxfyClient extends CommonHttpClient {
baseXsth3506Request.setSelinfoDetail(xsth3506Requests);
String jsonStr = JSONUtil.toJsonStr(baseXsth3506Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
ybClient.ybPost("3506A", dataJson);
ybClient.ybPost("3506A", dataJson,ioCollectOrder.getBillNo());
}
/**

@ -47,7 +47,7 @@ public class YbApiController {
String jsonStr = JSONUtil.toJsonStr(baseYljg1201Request);
log.error("【1201】医药机构信息获取请求参数" + jsonStr);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ResultVOUtils.success(ybClient.ybPost("1201", dataJson));
return ResultVOUtils.success(ybClient.ybPost("1201", dataJson,null));
}
@ -59,7 +59,7 @@ public class YbApiController {
String jsonStr = JSONUtil.toJsonStr(dictRequest.getData());
log.error("【1301】通用字典下载接口请求参数" + jsonStr);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson));
return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson,null));
}
@ -71,7 +71,7 @@ public class YbApiController {
String jsonStr = JSONUtil.toJsonStr(dictRequest.getOrder());
JSONObject dataJson = JSONObject.parseObject(jsonStr);
// JSONArray jsonObject = dataJson.getJSONArray("selinfoDetail");
return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson));
return ResultVOUtils.success(ybClient.ybPost(dictRequest.getApiCode(), dataJson,null));
}
@ -86,7 +86,7 @@ public class YbApiController {
String jsonStr = JSONUtil.toJsonStr(baseYbRequest);
log.error("【9001】医药机构信息获取请求参数" + jsonStr);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
return ResultVOUtils.success(ybClient.ybPost("9001", dataJson));
return ResultVOUtils.success(ybClient.ybPost("9001", dataJson,null));
}
@PostMapping("/udiwms/erp/yb/test")
@ -213,7 +213,7 @@ public class YbApiController {
baseXsck3505Request.setSelinfoDetail(xsck3505Requests);
String jsonStr = JSONUtil.toJsonStr(baseXsck3505Request);
JSONObject dataJson = JSONObject.parseObject(jsonStr);
ybClient.ybPost("3505A", dataJson);
ybClient.ybPost("3505A", dataJson,ioCollectOrder.getBillNo());
}
}
}

@ -0,0 +1,9 @@
package com.glxp.mipsdl.dao.yb;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.mipsdl.entity.yb.YbUploadingLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface YbUploadingLogMapper extends BaseMapper<YbUploadingLog> {
}

@ -0,0 +1,44 @@
package com.glxp.mipsdl.entity.yb;
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 lombok.Data;
import java.util.Date;
@Data
@TableName(value = "yb_uploading_log")
public class YbUploadingLog {
@TableId(value = "id", type = IdType.INPUT)
private Integer id;
/**
*
*/
@TableField(value = "ybParam")
private String ybParam;
/**
*
*/
@TableField(value = "ybReturn")
private String ybReturn;
/**
*
*/
@TableField(value = "billNo")
private String billNo;
/**
*
*/
@TableField(value = "apiNo")
private String apiNo;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
}

@ -12,8 +12,10 @@ import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.mipsdl.dao.yb.YbUploadingLogMapper;
import com.glxp.mipsdl.entity.system.ThrYbSetup;
import com.glxp.mipsdl.entity.system.ThrYbSetupMapper;
import com.glxp.mipsdl.entity.yb.YbUploadingLog;
import com.glxp.mipsdl.res.BaseResponse;
import com.glxp.mipsdl.service.basic.RelCodeDetailService;
import com.glxp.mipsdl.service.system.ThrYbSetupService;
@ -38,16 +40,9 @@ public class YbClient {
@Resource
ThrYbSetupMapper thrYbSetupMapper;
@Resource
RelCodeDetailService relCodeDetailService;
YbUploadingLogMapper ybUploadingLogMapper;
/**
*
*
* @param apiNo
* @param data
* @return
*/
public BaseResponse ybPost(String apiNo, JSONObject data) {
public BaseResponse ybPost(String apiNo, JSONObject data,String billNo) {
// log.info("[" + apiNo + "]医保接口请求参数:" + data);
ThrYbSetup thrYbSetup = thrYbSetupService.getSetUp();
@ -58,6 +53,9 @@ public class YbClient {
SignTypeEnum signType = SignTypeEnum.SM3;
EncryptionModeEnum encType = EncryptionModeEnum.SM4;
String msgId = thrYbSetup.getFixmedins_code() + DateUtil.formatYbDateTime(new Date()) + thrYbSetup.getSequenceNum();
String reqStr =null;
String respStr =null;
try {
ZephyrMedicalClient client = new ZephyrMedicalClient(thrYbSetup.getUrl(), infno, thrYbSetup.getAppId(), thrYbSetup.getAppSecret(),
@ -75,9 +73,14 @@ public class YbClient {
req.setInput(data);
req.setSignNo(thrYbSetup.getSignNo());
log.error("【" + apiNo + "】医保接口请求参数:" + JSONObject.toJSONString(req));
reqStr =JSONObject.toJSONString(req);
log.error("【" + apiNo + "】医保接口请求参数:" + reqStr);
ChsMedicalResponse resp = client.execute(req);
log.error("【" + apiNo + "】医保接口返回结果:" + JSONObject.toJSONString(resp));
respStr = JSONObject.toJSONString(resp);
log.error("【" + apiNo + "】医保接口返回结果:" +respStr);
// ChsMedicalResponse resp = new ChsMedicalResponse();
if(resp.getIsSuccess() == true
@ -98,7 +101,16 @@ public class YbClient {
return ResultVOUtils.error(500,"【" + apiNo + "】上传医保失败==="+resp.getErrMsg());
} catch (Exception e) {
respStr = e.getMessage();
return ResultVOUtils.error(500,"【" + apiNo + "】上传医保失败"+e.getMessage());
}finally {
YbUploadingLog ybUploadingLog = new YbUploadingLog();
ybUploadingLog.setYbParam(reqStr);
ybUploadingLog.setYbReturn(respStr);
ybUploadingLog.setBillNo(billNo);
ybUploadingLog.setApiNo(apiNo);
ybUploadingLog.setUpdateTime(new Date());
ybUploadingLogMapper.insert(ybUploadingLog);
}
}

@ -0,0 +1,17 @@
<?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.dao.yb.YbUploadingLogMapper">
<resultMap id="BaseResultMap" type="com.glxp.mipsdl.entity.yb.YbUploadingLog">
<!--@mbg.generated-->
<!--@Table yb_uploading_log-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="ybParam" jdbcType="LONGVARCHAR" property="ybParam" />
<result column="ybReturn" jdbcType="LONGVARCHAR" property="ybParam" />
<result column="billNo" jdbcType="VARCHAR" property="ybParam" />
<result column="updateTime" jdbcType="TIMESTAMP" property="ybParam" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, ybParam, ybReturn, billNo, updateTime
</sql>
</mapper>
Loading…
Cancel
Save