| 
					
				 | 
			
			
				@ -13,12 +13,17 @@ import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.prescription.service.entrance.XzzxEntranceService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.hospital.doctor.PersonInfoVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.http.HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.WebserviceUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.BasePatientWechatDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.WxTemplateConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import net.sf.json.xml.XMLSerializer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import nu.xom.Builder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import nu.xom.Document; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import nu.xom.Element; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import nu.xom.Elements; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.map.HashedMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.NameValuePair; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -30,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.StringReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -160,6 +166,10 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("msgBody",msgBody); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("registerPatient params:"+params.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml= xml.replace("]]>","");*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        XMLSerializer xmlSerializer = new XMLSerializer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String json = xmlSerializer.read(xml).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("registerPatient json:"+json); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -200,6 +210,18 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("clinicFee"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            condition += "<clinicFee>"+jsonObject.getString("clinicFee")+"</clinicFee>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("address_now"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            condition += "<address_now>"+jsonObject.getString("address_now")+"</address_now>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_standing_type"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            condition += "<ncp_standing_type>"+jsonObject.getString("ncp_standing_type")+"</ncp_standing_type>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_profession"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            condition += "<ncp_profession>"+jsonObject.getString("ncp_profession")+"</ncp_profession>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("ncp_profession_sub"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            condition += "<ncp_profession_sub>"+jsonObject.getString("ncp_profession_sub")+"</ncp_profession_sub>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String itemCoditon=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(jsonObject.getString("item"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject itemObject=jsonObject.getJSONObject("item"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -222,6 +244,10 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("msgBody",msgBody); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("insertNucleicBill params:"+params.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml= xml.replace("]]>","");*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        XMLSerializer xmlSerializer = new XMLSerializer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String json = xmlSerializer.read(xml).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("insertNucleicBill json:"+json); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -259,11 +285,16 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("msgBody",msgBody); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("cancelNucleicBill params:"+params.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*xml= xml.replace("<![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?>",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml= xml.replace("]]>","");*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        XMLSerializer xmlSerializer = new XMLSerializer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String json = xmlSerializer.read(xml).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("cancelNucleicBill json:"+json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 核酸检测项目扣费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -294,16 +325,17 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,String> params = new HashedMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("msgHeader",msgHeader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("msgBody",msgBody); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("cancelNucleicBill params:"+params.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("ChargenucleicBill params:"+params.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml = getTaszWebServiceInfo("CallInterface",params,getOperateUrl()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        XMLSerializer xmlSerializer = new XMLSerializer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String json = xmlSerializer.read(xml).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("cancelNucleicBill json:"+json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        logger.info("ChargenucleicBill json:"+json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //组装核算下单参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String initNatParams(String preNo,String patientName,String icCardNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String initNatParams(String preNo,String patientName,String icCardNo,String address,String job,String jobChild){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> natConfigList = wlyyHospitalSysDictDao.findByDictName("natConfigList"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String deptCode = "0001"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String staffNo = "0001"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -312,6 +344,7 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String itemCode = "xmCode"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String itemName = "核酸检测"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String itemPrice = "0.01"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String ncpStandingType=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:natConfigList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"deptCode".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                deptCode = wlyyHospitalSysDictDO.getDictValue(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -334,6 +367,9 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"itemPrice".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                itemPrice = wlyyHospitalSysDictDO.getDictValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(wlyyHospitalSysDictDO.getDictValue())&&"ncp_standing_type".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ncpStandingType = wlyyHospitalSysDictDO.getDictValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("preNo",preNo); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -343,6 +379,10 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("staffNo",staffNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("registerFee",registerFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("clinicFee",clinicFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("ncp_profession_sub",jobChild); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("address_now",address); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("ncp_profession",job); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("ncp_standing_type",ncpStandingType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject item = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        item.put("itemCode",itemCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        item.put("itemName",itemName); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -364,8 +404,8 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    //调用取消核酸接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String cancelNat(String hisTraceNo,String idCardNo,String patientName){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("hisTraceNo",hisTraceNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("idCardNo",idCardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("hisTradeNo",hisTraceNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("icCardNo",idCardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("patientName",patientName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String res=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -530,4 +570,11 @@ public class TasyNatService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void main(String[] args) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml="<StringResponse><StringValue><![CDATA[<?xml version=\"1.0\" encoding=\"utf-8\"?><root><ReturnCode>1</ReturnCode><hisTradeNo>599907010</hisTradeNo><ReturnMsg></ReturnMsg></root>]]></StringValue></StringResponse>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        xml=xml.substring(xml.indexOf("<root>"),xml.lastIndexOf("]]")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.println(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |