|
@ -0,0 +1,103 @@
|
|
|
package com.yihu.jw.base.service.a3service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalMxDO;
|
|
|
import com.yihu.jw.entity.hospital.healthCare.YlzMedicalRelationDO;
|
|
|
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailIcdDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailMxDao;
|
|
|
import com.yihu.jw.hospital.healthCare.YlzMedicailRelationDao;
|
|
|
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
|
|
|
import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
@Transactional
|
|
|
@Service
|
|
|
public class JwService {
|
|
|
private static Logger logger = LoggerFactory.getLogger(JwService.class);
|
|
|
@Autowired
|
|
|
private WlyyHttpService wlyyHttpService;
|
|
|
@Autowired
|
|
|
private WlyyHttpLogDao httpLogDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailRelationDao ylzMedicailRelationDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailIcdDao ylzMedicailIcdDao;
|
|
|
@Autowired
|
|
|
private YlzMedicailMxDao ylzMedicailMxDao;
|
|
|
|
|
|
/**
|
|
|
* 获取智业待结算数据接口
|
|
|
* @param cardNo 卡号
|
|
|
* @param orgCode 机构编码
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject getDispUnSettleFeeInfoListMultiNew(String cardNo,String orgCode){
|
|
|
Map<String,String> param = new HashMap<>();
|
|
|
param.put("interfaceStr","getDispUnSettleFeeInfoListMultiNew");//接口方法
|
|
|
param.put("orgCode",orgCode);
|
|
|
JSONObject msgBody = new JSONObject();
|
|
|
msgBody.put("cardNo",cardNo);
|
|
|
msgBody.put("settleFlag","1");
|
|
|
param.put("msgBody",msgBody.toJSONString());
|
|
|
JSONObject re = wlyyHttpService.sendWlyyMes("callEhrInterfaceYG", null,param);
|
|
|
WlyyHttpLogDO wlyyHttpLogDO = new WlyyHttpLogDO();
|
|
|
wlyyHttpLogDO.setCode("callEhrInterfaceYG");
|
|
|
wlyyHttpLogDO.setRequest(param.toString());
|
|
|
wlyyHttpLogDO.setResponse(re.toJSONString());
|
|
|
wlyyHttpLogDO.setName("续方查询待结算清单接口");
|
|
|
wlyyHttpLogDO.setStatus("1");
|
|
|
wlyyHttpLogDO.setCreateTime(new Date());
|
|
|
httpLogDao.save(wlyyHttpLogDO);
|
|
|
return re;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 确认结算-智业
|
|
|
* @param
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String executeSickSettleMultiNew(String recipe_no) throws Exception {
|
|
|
YlzMedicalRelationDO ylzMedicalRelationDO = ylzMedicailRelationDao.findByLog_no(recipe_no);
|
|
|
if (null==recipe_no){
|
|
|
throw new Exception("无结算信息");
|
|
|
}
|
|
|
if (ylzMedicalRelationDO.getState()==1){
|
|
|
throw new Exception("订单已结算,无法重复结算");
|
|
|
}
|
|
|
List<YlzMedicalMxDO> ylzMedicalMxDO = ylzMedicailMxDao.findByMedicalId(ylzMedicalRelationDO.getId());
|
|
|
JSONObject msgBody = new JSONObject();
|
|
|
JSONArray insurVisitInfo = new JSONArray();
|
|
|
JSONObject insurResult = new JSONObject(); //医保结算信息 自费病人没有产生医保收费记录,insurResult节点不传自费结算信息
|
|
|
msgBody.put("cardNo",ylzMedicalRelationDO.getCardNo());//病人卡号
|
|
|
msgBody.put("settleDept",ylzMedicalRelationDO.getDeptCode());//结算科室编码
|
|
|
msgBody.put("settleOperator",ylzMedicalRelationDO.getCollector());//结算人员编码
|
|
|
if (0==ylzMedicalRelationDO.getMedicalState()){//自费
|
|
|
msgBody.put("insurResult",insurResult);//todo
|
|
|
}else if (1==ylzMedicalRelationDO.getMedicalState()){//医保
|
|
|
|
|
|
}
|
|
|
JSONObject insurVisitTmp = new JSONObject();
|
|
|
insurVisitTmp.put("visit_msgid",ylzMedicalRelationDO.getHisSettleNo());//发送方报文ID"
|
|
|
insurVisitTmp.put("insuplc_admdvs",ylzMedicalRelationDO.getRegionCode());//参保地医保区划【窗口冲销有用】
|
|
|
insurVisitTmp.put("insutype","310");//险种类型【挂号时用的险种,医保目前以此为准】
|
|
|
insurVisitTmp.put("mdtrt_id","");//就诊ID 医保挂号接口返回
|
|
|
insurVisitTmp.put("psn_no","");//人员编号 医保人员基本信息获取接口返回
|
|
|
insurVisitTmp.put("ipt_otp_no",ylzMedicalRelationDO.getRelationCode());//门诊号
|
|
|
insurVisitTmp.put("exp_content","");//字段扩展【应需要解决转义字符反斜杠被过滤问题,否则要将里面的扩展节点独立字段出
|
|
|
insurVisitInfo.add(insurVisitTmp);
|
|
|
|
|
|
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
}
|