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