|  | @ -2348,6 +2348,150 @@ public class EntranceService {
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public net.sf.json.JSONObject MS02004(boolean demoFlag,String idcard) throws Exception {
 | 
	
		
			
				|  |  |         int i = 0;
 | 
	
		
			
				|  |  |         String fid = "MS02003";
 | 
	
		
			
				|  |  |         String resp = "";
 | 
	
		
			
				|  |  |         if (demoFlag) {
 | 
	
		
			
				|  |  |             resp = getJosnFileResullt(fid);
 | 
	
		
			
				|  |  |             resp = MqSdkUtil.xml2jsonArrayRootRowMS02003(resp);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             StringBuffer sbs = new StringBuffer();
 | 
	
		
			
				|  |  |             //AccessControl :用户、密码、服务id
 | 
	
		
			
				|  |  |             sbs.append("<ESBEntry><AccessControl><Fid>" + fid + "</Fid><UserName>" + mqUser + "</UserName><Password>" + mqPwd + "</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>" + sourceSysCode + "</SourceSysCode><TargetSysCode>" + targetSysCode + "</TargetSysCode></MessageHeader>");
 | 
	
		
			
				|  |  |             //查询信息拼接
 | 
	
		
			
				|  |  |             sbs.append("<MsgInfo><endNum>10000</endNum><Msg></Msg><startNum>1</startNum></MsgInfo></ESBEntry>");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
 | 
	
		
			
				|  |  |             resp = MqSdkUtil.xml2jsonArrayRootRowMS02003(resp);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(resp);
 | 
	
		
			
				|  |  |         logger.info("获取医生数据"+jsonObject.toString());
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject jsonObject1 = new  net.sf.json.JSONObject();
 | 
	
		
			
				|  |  |         if (null != jsonObject && "1".equals(jsonObject.get("code").toString())) {
 | 
	
		
			
				|  |  |             JSONArray jsonObjectMgsInfo = (JSONArray) jsonObject.get("MsgInfo");
 | 
	
		
			
				|  |  |             if (null != jsonObjectMgsInfo) {
 | 
	
		
			
				|  |  |                 for (Object object : jsonObjectMgsInfo) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     JSONArray jsonArray = JSONArray.fromObject(object);
 | 
	
		
			
				|  |  |                     net.sf.json.JSONObject jsonArraySub = jsonArray.getJSONObject(0);
 | 
	
		
			
				|  |  | //                    net.sf.json.JSONObject jsonArraySub = (net.sf.json.JSONObject) object;
 | 
	
		
			
				|  |  |                     jsonObjectMgsInfo = (JSONArray) jsonArraySub.get("body");
 | 
	
		
			
				|  |  |                     if (jsonObjectMgsInfo instanceof JSONArray) {
 | 
	
		
			
				|  |  |                         for (Object objectSub : jsonObjectMgsInfo) {
 | 
	
		
			
				|  |  |                             net.sf.json.JSONObject jsonObjectBody = (net.sf.json.JSONObject) objectSub;
 | 
	
		
			
				|  |  |                             String doctorCode = "";
 | 
	
		
			
				|  |  |                             String doctorName = "";
 | 
	
		
			
				|  |  |                             if (null != jsonObjectBody) {
 | 
	
		
			
				|  |  |                                 //获取中山医院的医生
 | 
	
		
			
				|  |  |                                 String winNo = "6";
 | 
	
		
			
				|  |  |                                 doctorCode = null == jsonObjectBody.get("Emp_Code") ? "" : jsonObjectBody.get("Emp_Code").toString();
 | 
	
		
			
				|  |  |                                 //根据医生及分部,获取医生号别
 | 
	
		
			
				|  |  |                                 net.sf.json.JSONArray jsonArrayCharge = BS55010(winNo, doctorCode, null, false);
 | 
	
		
			
				|  |  |                                 String chareType = null;
 | 
	
		
			
				|  |  |                                 if (null != jsonArrayCharge) {
 | 
	
		
			
				|  |  |                                     for (Object objectCharge : jsonArrayCharge) {
 | 
	
		
			
				|  |  |                                         net.sf.json.JSONObject jsonObjectBodyCharge = (net.sf.json.JSONObject) objectCharge;
 | 
	
		
			
				|  |  |                                         if (null != jsonObjectBodyCharge) {
 | 
	
		
			
				|  |  |                                             chareType = null == jsonObjectBodyCharge.get("charge_type") ? null : jsonObjectBodyCharge.get("charge_type").toString();
 | 
	
		
			
				|  |  |                                         }
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                                 //保存医生信息
 | 
	
		
			
				|  |  |                                 BaseDoctorDO baseDoctorDO = new BaseDoctorDO();
 | 
	
		
			
				|  |  |                                 String idCard = null == jsonObjectBody.get("Card_Id") ? "" : jsonObjectBody.get("Card_Id").toString();
 | 
	
		
			
				|  |  |                                 if (idCard.equalsIgnoreCase(idcard)){
 | 
	
		
			
				|  |  |                                     jsonObject1 = jsonObjectBody;
 | 
	
		
			
				|  |  |                                     List<BaseDoctorDO> baseDoctorDOS = baseDoctorDao.findByIdcard(idCard);
 | 
	
		
			
				|  |  |                                     if (baseDoctorDOS!=null&&baseDoctorDOS.size()!=0){
 | 
	
		
			
				|  |  |                                         baseDoctorDO=baseDoctorDOS.get(0);
 | 
	
		
			
				|  |  |                                         String disableFlag = null == jsonObjectBody.get("Disable_Flag") ? "" : jsonObjectBody.get("Disable_Flag").toString();
 | 
	
		
			
				|  |  |                                         //互联网医院:1停用,0使用  转 i健康:1正常,0作废
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setDel("1".equals(disableFlag) ? "0" : "1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                                     }else {
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setIdcard(idCard);
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setBirthday(IdCardUtil.getBirthdayForIdcard(idCard));
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setSex(Integer.valueOf(IdCardUtil.getSexForIdcard(idCard)));
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setLocked(0);
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setEnabled(1);
 | 
	
		
			
				|  |  |                                         String disableFlag = null == jsonObjectBody.get("Disable_Flag") ? "" : jsonObjectBody.get("Disable_Flag").toString();
 | 
	
		
			
				|  |  |                                         //互联网医院:1停用,0使用  转 i健康:1正常,0作废
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setDel("1".equals(disableFlag) ? "0" : "1");
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setMobile("0");
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setName(doctorName);
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setIsFamous(0);
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                                         if (StringUtils.isNotBlank(idCard)) {
 | 
	
		
			
				|  |  |                                             baseDoctorDO.setSalt(PwdUtil.randomString(5));
 | 
	
		
			
				|  |  |                                             try {
 | 
	
		
			
				|  |  |                                                 baseDoctorDO.setPassword(com.yihu.utils.security.MD5.md5Hex(baseDoctorDO.getIdcard().substring(baseDoctorDO.getIdcard().length() - 6) + "{" + baseDoctorDO.getSalt() + "}"));
 | 
	
		
			
				|  |  |                                             } catch (Exception e) {
 | 
	
		
			
				|  |  |                                                 logger.error(e.getMessage() + "docotr=" + doctorCode + ";idcard=" + baseDoctorDO.getIdcard());
 | 
	
		
			
				|  |  |                                             }
 | 
	
		
			
				|  |  |                                         } else {
 | 
	
		
			
				|  |  |                                             baseDoctorDO.setPassword(com.yihu.utils.security.MD5.md5Hex("123456" + "{" + baseDoctorDO.getSalt() + "}"));
 | 
	
		
			
				|  |  |                                         }
 | 
	
		
			
				|  |  |                                         //拼音码
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setSpell(null == jsonObjectBody.get("PinYin_Code") ? "" : jsonObjectBody.get("PinYin_Code").toString());
 | 
	
		
			
				|  |  |                                         //姓名
 | 
	
		
			
				|  |  |                                         doctorName = null == jsonObjectBody.get("Emp_Name") ? "" : jsonObjectBody.get("Emp_Name").toString();
 | 
	
		
			
				|  |  |                                         //号别
 | 
	
		
			
				|  |  |                                         baseDoctorDO.setChargeType(chareType);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                                         // 用医生和机构id、部门判断数据是否存在,若不存在则保存医生机构关联关系
 | 
	
		
			
				|  |  |                                         String deptCode = null == jsonObjectBody.get("Dept_Code") ? "" : jsonObjectBody.get("Dept_Code").toString();
 | 
	
		
			
				|  |  |                                         List<BaseDoctorHospitalDO> baseDoctorHospitalDOS = baseDoctorHospitalDao.findByOrgCodeAndDeptCodeAndDoctorCode("350211A1002", deptCode, baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                                         if (!(null != baseDoctorHospitalDOS && baseDoctorHospitalDOS.size() > 0)) {
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDao.delete(baseDoctorHospitalDOS);
 | 
	
		
			
				|  |  |                                             BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO();
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDO.setOrgCode("350211A1002");
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDO.setOrgName("厦门大学附属中山医院");
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDO.setDeptCode(deptCode);
 | 
	
		
			
				|  |  |                                             //根据机构编码获取机构名称
 | 
	
		
			
				|  |  |                                             List<DictHospitalDeptDO> dictHospitalDeptDOS = dictHospitalDeptDao.findByOrgCodeAndCode("350211A1002", deptCode);
 | 
	
		
			
				|  |  |                                             if (null != dictHospitalDeptDOS && dictHospitalDeptDOS.size() > 0) {
 | 
	
		
			
				|  |  |                                                 DictHospitalDeptDO dictHospitalDeptDO = dictHospitalDeptDOS.get(0);
 | 
	
		
			
				|  |  |                                                 baseDoctorHospitalDO.setDeptName(dictHospitalDeptDO.getName());
 | 
	
		
			
				|  |  |                                             }
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDO.setDel("1");
 | 
	
		
			
				|  |  |                                             baseDoctorHospitalDao.save(baseDoctorHospitalDO);
 | 
	
		
			
				|  |  |                                         }
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                                     baseDoctorDO = baseDoctorDao.save(baseDoctorDO);
 | 
	
		
			
				|  |  |                                     //根据医生和机构判断数据是否存在,若不存在则在mapping中追加记录
 | 
	
		
			
				|  |  |                                     List<DoctorMappingDO> doctorMappingDOS = doctorMappingDao.findByDoctorAndOrgCode(baseDoctorDO.getId(), "350211A1002");
 | 
	
		
			
				|  |  |                                     if (!(null != doctorMappingDOS && doctorMappingDOS.size() > 0)) {
 | 
	
		
			
				|  |  |                                         DoctorMappingDO doctorMappingDO = new DoctorMappingDO();
 | 
	
		
			
				|  |  |                                         doctorMappingDao.delete(doctorMappingDOS);
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setDoctor(baseDoctorDO.getId());
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setDoctorName(doctorName);
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setMappingCode(doctorCode);
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setMappingName(doctorName);
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setOrgCode("350211A1002");
 | 
	
		
			
				|  |  |                                         doctorMappingDO.setOrgName("厦门大学附属中山医院");
 | 
	
		
			
				|  |  |                                         doctorMappingDao.save(doctorMappingDO);
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                     break;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | //            net.sf.json.JSONArray jsonArray = ConvertUtil.convertListEnvelopInBodyRowMS02003(resp);
 | 
	
		
			
				|  |  | //            for (Object object : jsonArray) { }
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  |         return jsonObject1;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 |