From 8b7db2be65fe9a60d0cc345e88e01e4c3853ca1e Mon Sep 17 00:00:00 2001 From: xm Date: Wed, 17 Nov 2021 09:23:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E7=AE=A1=E7=90=86=E7=B3=BB=E7=BB=9F=EF=BC=8C=E4=BE=9B?= =?UTF-8?q?=E5=80=9F=E9=98=85=E5=8A=9F=E8=83=BD=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/methodForEmrMedical.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java index ea5aec9..c70bf1e 100644 --- a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java +++ b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java @@ -187,6 +187,100 @@ public class methodForEmrMedical { return result; } + /* + * 单点登录到档案管理系统,现供跳转借阅使用 + * author xm + */ + @RequestMapping(value = "logintoEmrRecordForBorrowing", method = RequestMethod.GET, produces = "text/html;charset=utf-8") + @ResponseBody + public String loginToEmrRecordForWebService(String sessionID, HttpServletRequest request, HttpServletResponse response) throws Exception { + String result = ""; + String returnMessage = ""; + if (sessionID != null && !"".equals(sessionID)) { + //请求对方webservices获取用户信息 + String endpoint = "http://10.6.0.170/csp/jhip/JHIP.JHIP.BS.JhipServicesBS.cls?wsdl"; + String method = "getUserDetailInfo"; + JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); + Client client = factory.createClient(endpoint); + Object[] res = null; + String xml = "\n" + + "" + sessionID + "\n" + + ""; + res = client.invoke(method, xml); + returnMessage = (String) res[0]; + //获取登录名 + int start = returnMessage.indexOf("") + 17; + int end = returnMessage.indexOf(""); + //传进来的id已失效,无法获取用户信息 + if (start != 16 && end != -1) { + String userName = returnMessage.substring(start, end); + //根据登录名获取用户(需要确保用户登录名唯一) + Power_UserVo user = powerUserService.selectByUserName(userName); + if (user != null) { + String password = MD5.JM(Base64.decode(user.getUserPwd())); + if (password != null && !"".equals(password)) { + String date = String.valueOf(DateUtils.getDate()); + //加密(此部分代码来自FontController的getToken方法,用来获取token及相关操作) + String token = Base64.encode(MD5.KL(date)); + List list = null; + List menuList = new ArrayList<>(); + Set menus = new TreeSet<>(); + if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { + list = powerMenuService.queryAllPowerMenu(null, user.getRoleId()); + } else { + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(), null); + } + if (null != list && !list.isEmpty()) { + for (Power_Menu power_menu : list) { + User_Dept_Menu deptMenu = new User_Dept_Menu(); + String menuUrl = power_menu.getMenuUrl(); + if (StringUtils.isNotBlank(menuUrl)) { + BeanUtils.copyProperties(power_menu, deptMenu); + deptMenu.setMethodParent(power_menu.getParentId()); + menuList.add(deptMenu); + } + if (StringUtils.isNotBlank(power_menu.getMethod())) { + menus.add(power_menu.getMenuUrl()); + } + } + } + user.setMenuList(menuList); + user.setMenus(menus); + + //设置科室 + StringBuilder power_depts = new StringBuilder(); + List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for (int j = 0; j < power_depts1.size(); j++) { + if (j < power_depts1.size() - 1) { + power_depts.append(power_depts1.get(j).getDeptName()).append(","); + } else { + power_depts.append(power_depts1.get(j).getDeptName()); + } + } + user.setRemark(power_depts.toString()); + //移除缓存 + CacheManager.removeCacheByObject(user); + CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME)); + if (!"".equals(token) && token != null) { + //返回跳转url + result = "http://" + ip2 + ":" + port2 + "/emr_record/login?token=" + token + "&userName=" + userName; + response.sendRedirect(result); + } else { + result = "获取登录token失败,请检查数据!!"; + } + } else { + result = "无法获取用户密码!!"; + } + } else { + result = "登录用户不存在!!"; + } + } else { + result = "sessionID已失效,请重新登录"; + } + } + return result; + } + /* * 单点登录,跳转病案归档系统