| 
					
				 | 
			
			
				@ -26,6 +26,7 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.BufferedReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.InputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.InputStreamReader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.regex.Matcher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.regex.Pattern; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -113,7 +114,7 @@ public class EntranceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //先调用银医通获取下载余额到his,再查询his中卡余额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            net.sf.json.JSONObject jsonObject= callYYTServerService(cardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if(null==jsonObject && "success".equals(jsonObject.get("code").toString())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if(null!=jsonObject && "1".equals(jsonObject.get("code").toString())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               JSONObject msg=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               msg.put("endNum","20000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               msg.put("Msg", new net.sf.json.JSONArray() ); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -848,11 +849,11 @@ public class EntranceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("ok".equals(errorCode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSON json2 = xmlSerializer.read(((net.sf.json.JSONObject) json).get("response").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            System.out.println("银医通下载response:" + json2.toString(1)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("code","success"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("code","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("obj",json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Object errorMsg = ((net.sf.json.JSONObject) json).get("error_msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("code","error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("code","-1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonObject.element("obj","银医通下载失败," +errorMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //{"error_type":"0","error_code":"10002","error_msg":"卡号无效"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -866,4 +867,80 @@ public class EntranceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  患者门诊就诊记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  按照患者唯一号、科室、医生、获取当前时间往前24小时的挂号记录。获取最新一条判断是否有效(医保当天有效,自费24小时有效) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  若是自费,则有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  若是医保,判断日期是否和当前时间同一天,否则无效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  @param patNo 居民唯一号 必传参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  @param dept 挂号科室 必传参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  @param doctor 挂号医生 必传参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return true 已挂号 ,false 未挂号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean guahao(String patNo,String dept,String doctor,boolean demoFlag) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String fid = BS30025; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer sbs = new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String resp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (demoFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resp = getJosnFileResullt(fid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //AccessControl :用户、密码、服务id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sbs.append("<ESBEntry><AccessControl><Fid>" + fid + "</Fid><UserName>JKZL</UserName><Password>123456</Password></AccessControl>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //MessageHeader :固定值 消费方系统编号 S60,提供方系统编号 S01 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sbs.append("<MessageHeader><Fid>" + fid + "</Fid><MsgDate>" + DateUtil.dateToStr(new Date(), DateUtil.YYYY_MM_DD_HH_MM_SS) + "</MsgDate><SourceSysCode>S60</SourceSysCode><TargetSysCode>S01</TargetSysCode></MessageHeader>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //查询信息拼接 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sbs.append("<MsgInfo><onceFlag>1</onceFlag><startNum>1</startNum><endNum>50000</endNum><Msg/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(patNo)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sbs.append("<query compy=\"=\" item=\"PAT_NO\" splice=\"and\" value=\"'" + patNo + "'\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(dept)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sbs.append("<query compy=\"=\" item=\"ADM_SPEC\" splice=\"and\" value=\"'" + dept + "'\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(doctor)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sbs.append("<query compy=\"=\" item=\"CON_DOC\" splice=\"and\" value=\"'" + doctor + "'\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取当前时间 查询当前时间往前推24小时是否有挂号 (医保当天有效,自费24小时有效) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String now = DateUtil.dateToStr(DateUtil.getNowDate(), DateUtil.YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String preday = DateUtil.dateToStr(DateUtil.getPreDays(DateUtil.getNowDate(), -1), DateUtil.YYYY_MM_DD_HH_MM_SS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(preday)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sbs.append("<query compy=\">\" item=\"ADM_DAT\" splice=\"and\" value=\"'" + preday + "'\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(now)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sbs.append("<query compy=\"<\" item=\"ADM_DAT\" splice=\"and\" value=\"'" + now + "'\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sbs.append("<order item=\"ADM_DAT\" sort=\"desc\"/>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //查询信息结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sbs.append("</MsgInfo></ESBEntry>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resp = MqSdkUtil.xml2jsonArrayRootRow(resp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //解析返回结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(resp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null != jsonObject.get("MsgInfo")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            net.sf.json.JSONArray jsonArray = (net.sf.json.JSONArray) jsonObject.get("MsgInfo"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取第一条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            net.sf.json.JSONObject object = (net.sf.json.JSONObject) jsonArray.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //市医保,1;省医保,2;自费,3,其他医保,99) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null != object.get("yb_flag") && "2".equals(object.get("yb_flag").toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null != object.get("yb_flag") && ("1".equals(object.get("yb_flag").toString())) || "3".equals(object.get("yb_flag").toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String admDateStr = object.get("ADM_DAT").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //挂号时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Date admDate = DateUtil.strToDate(admDateStr + "", DateUtil.YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                SimpleDateFormat format = new SimpleDateFormat(DateUtil.yyyy_MM_dd_HH_mm_ss); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //获取当前时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String dateString = format.format(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Date nowDate = DateUtil.strToDate(dateString, DateUtil.YYYY_MM_DD); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (0 == nowDate.compareTo(admDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |