Browse Source

update bug

wangzhinan 3 years ago
parent
commit
ffbedd28ba

+ 103 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/JwService.java

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

File diff suppressed because it is too large
+ 11 - 21
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedOrderService.java