Compare commits

...

11 Commits

@ -32,7 +32,7 @@
<mybatis.version>3.4.6</mybatis.version>
<mybatis.spring.version>1.3.2</mybatis.spring.version>
<mysql.version>5.1.32</mysql.version>
<slf4j.version>1.6.4</slf4j.version>
<log4j2.version>2.15.0</log4j2.version>
<jackson.version>2.9.4</jackson.version>
<druid.version>1.0.9</druid.version>
<httpclient.version>4.3.5</httpclient.version>
@ -90,10 +90,17 @@
<version>${mysql.version}</version>
</dependency>
<!-- 日志处理 -->
<!-- Web项目需添加 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>${log4j2.version}</version>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${log4j2.version}</version>
</dependency>
<!-- Mybatis -->
<dependency>

@ -16,6 +16,7 @@
<properties>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<shiro.version>1.2.5</shiro.version>
</properties>
<dependencies>
<dependency>
@ -56,6 +57,11 @@
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.5</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
@ -107,6 +113,11 @@
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<!--commoms-->
<dependency>
<groupId>org.apache.commons</groupId>
@ -123,9 +134,15 @@
<artifactId>commons-fileupload</artifactId>
</dependency>
<!--日志处理-->
<!-- Web项目需添加 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
</dependencies>
<build>
@ -149,7 +166,7 @@
<version>2.2</version>
<configuration>
<path>/power</path>
<port>8080</port>
<port>8081</port>
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>

@ -1,6 +1,8 @@
package com.manage.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.manage.dao.Power_NoticeMapper;
import com.manage.dao.Power_UserMapper;
import com.manage.encrypt.Base64;
@ -11,20 +13,27 @@ import com.manage.service.cache.Cache;
import com.manage.service.cache.CacheManager;
import com.manage.service.ipml.Power_NoticeServiceImpl;
import com.manage.service.webSocket.WsPool;
import com.manage.util.ActionScopeUtils;
import com.manage.util.DateUtils;
import com.manage.util.ExceptionPrintUtil;
import com.manage.util.Msg;
import com.manage.vo.*;
import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.io.StringReader;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -44,6 +53,8 @@ import java.util.*;
public class FontController {
@Value("${STR_SPLIT}")
private String STR_SPLIT;
@Value("${EMRRECORD_URLHEAD}")
private String EMRRECORD_URLHEAD;
@Autowired
private PowerService powerService;
@Autowired
@ -63,6 +74,10 @@ public class FontController {
@Autowired
private Power_DeptService power_deptService;
public static Class getUserClass(Object root) {
return null;
}
/**
* 2.1
* @ProjectName: getRolePowerTreeBySysFlag
@ -363,6 +378,339 @@ public class FontController {
return Msg.success().add("list",list);
}
// public static void main(String[] args) throws UnsupportedEncodingException {
// String xml="<Request><SourceSystem>*******</SourceSystem><TargetSystem>医院信息平台</TargetSystem><username>sj</username><password>1C821B22D0402F317E40D93213C66843</password></Request>";
// XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(xml.getBytes("UTF-8")));
// String username = xmlUtils.getElement("username");
// String password = xmlUtils.getElement("password");
// System.out.println(username);
// System.out.println(password);
// System.out.println(ResultUtils.success().asXML());
// }
/**
* 2.10
* @ProjectName: getToken
* @Description: token
* @Param
* @Return Msg
* @Author:
* @CreateDate: 2019/11/06 10:00
* @UpdateUser:
* @UpdateDate: 2019/11/06 10:00
* @UpdateRemark:
* @Version: 1.0
*/
// @RequestMapping(value = "getTokenForHis",method = RequestMethod.POST)
// @ResponseBody
// public Msg getTokenForHis(@RequestParam("username") String userName,@RequestParam("password")String password) throws Exception{
// if(StringUtils.isBlank(userName)){
// return Msg.fail("用户名不能为空");
// }
// if(StringUtils.isBlank(password)){
// return Msg.fail("密码不能为空");
// }
// //2.根据userName查询我们的用户表是否存在
// Power_UserVo userVo = new Power_UserVo();
// // 判断数据库中是否有此用户,如果没有则插入数据库
// String result = linkHisLogin(userName, password);
//// if(StringUtils.isBlank(result)){
//// return Msg.fail("调用第三方认证失败");
//// }
// List<Power_User> userList = userMapper.checkUserName(userName);
// if (CollectionUtils.isEmpty(userList)) {
// //2.1不存在往用户表新增这条用户
// userVo.setUserName(userName);
//// userVo.setUserPwd(Base64.encode(MD5.KL("1C821B22D0402F317E40D93213C66843")));
// userVo.setUserPwd(Base64.encode(MD5.KL("123456")));
// //TODO name从应答的xml解析
//// String name = analysis(result,"Name");
// userVo.setName(name);
// userVo.setRoleId(1);
// userVo.setDeptId("3");
// userVo.setEffective(1);
// userVo.setCreater("his");
// SimpleDateFormat fmt= new SimpleDateFormat("yyyy-MM-dd");
// userVo.setCreateDate(fmt.format(new Date()));
// //插入00
// userMapper.insert(userVo);
// }
// String token = setToken(userVo);
// return Msg.success().add("token",token);
// }
@RequestMapping(value = "saveThirdUser",method = RequestMethod.POST)
@ResponseBody
public Msg saveThirdUser(@RequestParam("userName") String userName,@RequestParam("passWord")String passWord) throws Exception{
if(StringUtils.isBlank(userName)){
return Msg.fail("用户名不能为空");
}
if(StringUtils.isBlank(passWord)){
return Msg.fail("密码不能为空");
}
Power_UserVo userVo = new Power_UserVo();
List<Power_UserVo> userInfo = userMapper.getUserInfo(userName, passWord);
if (CollectionUtils.isEmpty(userInfo)) {
userVo.setUserName(userName);
userVo.setPassWord(passWord);
userMapper.insertUserInfo(userVo);
return Msg.fail("同步用户密码成功");
}else {
userVo.setUserName(userName);
userVo.setPassWord(passWord);
userMapper.updateinsertUserInfo(userVo);
return Msg.fail("同步用户密码成功");
}
}
@RequestMapping(value = "getThirdToken",method = RequestMethod.POST)
@ResponseBody
public Msg getThirdToken(String userName,String passWord) throws Exception {
if (StringUtils.isBlank(userName)) {
return Msg.fail("账号不能为空");
}
if (StringUtils.isBlank(passWord)) {
return Msg.fail("密码不能为空");
}
Power_UserVo userVo = new Power_UserVo();
List<Power_UserVo> userInfo = userMapper.getUserInfoOne(userName, passWord);
if (!CollectionUtils.isEmpty(userInfo)) {
String date = String.valueOf(DateUtils.getDate());
String token = Base64.encode(MD5.KL(date));
ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000);
//设置用户登录次数缓存
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
CacheManager.addloginUserCount(fmt.format(new Date()),userName);
CacheManager.addExcCount("noExc");
List<Power_Menu> list = null;
List<User_Dept_Menu> menuList = new ArrayList<>();
Set<String> menus = new LinkedHashSet<>();
userVo.setRoleId(0);
if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) {
list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId());
} else {
list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null);
}
if(null != list && !list.isEmpty()){
for (Power_Menu powerMenu : list) {
User_Dept_Menu deptMenu = new User_Dept_Menu();
String menuUrl = powerMenu.getMenuUrl();
if (StringUtils.isNotBlank(menuUrl)) {
BeanUtils.copyProperties(powerMenu, deptMenu);
deptMenu.setMethodParent(powerMenu.getParentId());
menuList.add(deptMenu);
}
if (StringUtils.isNotBlank(powerMenu.getMethod())) {
menus.add(powerMenu.getMenuUrl());
}
}
}
userVo.setMenuList(menuList);
userVo.setMenus(menus);
userVo.setRemark("HIS科室");
//设置进缓存
CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME));
ActionScopeUtils.setSessionAttribute("CURRENT_USER",userVo,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000);
return Msg.success().add("token", token);
} else {
return Msg.fail("用户或密码不正确");
}
}
/**
* xmlMap xml"." XML
*
* @param xml
* @param map
* @return
*/
private Map<String, String> parseXml2Map(String xml, Map<String, String> map) {
try {
SAXReader reader = new SAXReader();
Document doc = reader.read(new StringReader(xml));
Element root = doc.getRootElement();
String path = "";
if (map.containsKey(root.getName().trim())) {
path = map.get(root.getName().trim());
map.remove(root.getName().trim());
}
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
if (element.isTextOnly()) {
if (path.length() > 0) {
map.put(path + element.getName().trim(), element.getTextTrim());
} else {
map.put(element.getName().trim(), element.getTextTrim());
}
} else {
map.put(element.getName().trim(), path+ element.getName().trim() + ".");
parseXml2Map(element.asXML(), map);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
/**
* resultxmlname
* @param result
* @param name
* @return
*/
private String analysis(String result, String name) {
String nameValue = "";
Map<String,String> map = new HashMap<>();
Map<String, String> valueMap = parseXml2Map(result, map);
nameValue = valueMap.get("Name");
return nameValue;
}
// private String linkHisLogin(String userName, String password) {
//
// //创建连接工厂
// JAXDynamicClientFactory dcf = JAXDynamicClientFactory.newInstance();
// //创建客户端
// Object[] objects = new Object[0];
//
// Client client = dcf.createClient("http://192.168.128.170/csp/hsb/DHC.Published.PUB0025.BS.PUB0025.CLS?WSDL=1");
// try {
//// //医院给的webservice地址
//// String url = "http://192.168.128.170/csp/hsb/DHC.Published.PUB0025.BS.PUB0025.CLS?WSDL=1";
//// client = dcf.createClient(url);
// //动态调用getInfosByUserId方法
// //获取请求参数xml字符串
// String xmlStr = getXml(userName,password);
// objects = client.invoke("HIPManagerInfo","S0110", xmlStr);
// //应答信息
// String result = objects[0].toString();
// System.out.println(result);
// //新用户存到数据库
// if (result.contains("成功")) {
// return result;
// }
// } catch (Exception e) {
// e.printStackTrace();
// } finally {
// if(null != client) {
// client.destroy();
// }
// }
// return null;
// }
private String getXml(String userName, String password) {
// 1、创建document对象
Document document = DocumentHelper.createDocument();
// 2、创建根节点rss
Element requestElement = document.addElement("Request");
// Element patInfo = Requst.addElement("PatInfo");
// patInfo.addElement("VUID").setText("12412");
requestElement.addElement("SourceSystem").setText("厦门嘉时");
requestElement.addElement("TargetSystem").setText("医院信息平台");
requestElement.addElement("username").setText(userName);
requestElement.addElement("password").setText(password);
OutputFormat format = OutputFormat.createPrettyPrint();
// 设置编码格式
format.setEncoding("UTF-8");
String xml = document.asXML();
System.out.println(xml);
// String res = service.outHOSREG(xml);
// TBasicWebServiceService serviceService=new TBasicWebServiceService();
// TBasicWebService service = serviceService.getTBasicWebServicePort();
// String res = service.outHOSCAN(xml);
// System.out.println(res);
return document.asXML();
}
// private String setToken1(Power_UserVo userVo){
// String date = String.valueOf(DateUtils.getDate());
// String token = Base64.encode(MD5.KL(date));
// List<Power_Menu> list = null;
// List<User_Dept_Menu> menuList = new ArrayList<>();
// Set<String> menus = new TreeSet<>();
// userVo.setRoleId(0);
// if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) {
// list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId());
// } else {
// list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null);
// }
// if(null != list && !list.isEmpty()){
// for (Power_Menu powerMenu : list) {
// User_Dept_Menu deptMenu = new User_Dept_Menu();
// String menuUrl = powerMenu.getMenuUrl();
// if (StringUtils.isNotBlank(menuUrl)) {
// BeanUtils.copyProperties(powerMenu, deptMenu);
// deptMenu.setMethodParent(powerMenu.getParentId());
// menuList.add(deptMenu);
// }
// if (StringUtils.isNotBlank(powerMenu.getMethod())) {
// menus.add(powerMenu.getMenuUrl());
// }
// }
// }
// userVo.setMenuList(menuList);
// userVo.setMenus(menus);
// userVo.setRemark("HIS科室");
// //移除缓存
// CacheManager.removeCacheByObject(userVo);
// CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME));
// return token;
// }
private String setToken(Power_UserVo userVo){
String date = String.valueOf(DateUtils.getDate());
String token = Base64.encode(MD5.KL(date));
List<Power_Menu> list = null;
List<User_Dept_Menu> menuList = new ArrayList<>();
Set<String> menus = new TreeSet<>();
if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) {
list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId());
} else {
list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null);
}
if(null != list && !list.isEmpty()){
for (Power_Menu powerMenu : list) {
User_Dept_Menu deptMenu = new User_Dept_Menu();
String menuUrl = powerMenu.getMenuUrl();
if (StringUtils.isNotBlank(menuUrl)) {
BeanUtils.copyProperties(powerMenu, deptMenu);
deptMenu.setMethodParent(powerMenu.getParentId());
menuList.add(deptMenu);
}
if (StringUtils.isNotBlank(powerMenu.getMethod())) {
menus.add(powerMenu.getMenuUrl());
}
}
}
userVo.setMenuList(menuList);
userVo.setMenus(menus);
//设置科室
StringBuilder powerDepts = new StringBuilder();
List<Power_Dept> powerDeptList = power_deptService.selectByPrimaryKeys(userVo.getDeptId());
for(int j = 0;j < powerDeptList.size();j++){
if(j<powerDeptList.size()-1){
powerDepts.append(powerDeptList.get(j).getDeptName()).append(",");
}else{
powerDepts.append(powerDeptList.get(j).getDeptName());
}
}
userVo.setRemark(powerDepts.toString());
//移除缓存
CacheManager.removeCacheByObject(userVo);
CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME));
return token;
}
/**
* 2.10
* @ProjectName: getToken
@ -587,4 +935,4 @@ public class FontController {
e.printStackTrace();
}
}
}
}

@ -15,7 +15,8 @@ package com.manage.controller;
import com.alibaba.fastjson.support.spring.FastJsonJsonView;
import com.manage.util.ExceptionPrintUtil;
import org.apache.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
@ -28,7 +29,7 @@ import java.util.Map;
@ControllerAdvice
public class GlobalExceptionHandler {
private static Logger log = Logger.getLogger("errorMsg");
private static Logger log = LogManager.getLogger("errorLog");
@ExceptionHandler(value = Exception.class)//指定拦截的异常
public ModelAndView errorHandler(Exception e) {
return returnMv(e, "服务器出错了,请联系系统管理员");

@ -89,6 +89,28 @@ public class UserController {
model.addAttribute("depts",depts);
return "userDir/user";
}
@OptionalLog(module = "查看",methods = "用户管理页面")
@RequiresPermissions(value="/user/pageUI1")
@RequestMapping("/pageUI1")
public String pageUI1(Model model,HttpServletRequest request){
CacheManager.addExcCount("noExc");
Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER");
//根据登陆者查询所属医院id。非系统管理员查询所属医院id
Integer dictId = null;
List<Power_DeptVo> depts = null;
try {
if(!user.getRoleId().equals(0)){
Power_User_Dict powerUserDict = userDictMapper.selectDictIdByUserId(user.getUserId());
dictId = powerUserDict.getDictId();
}
depts = deptService.selectDeptByDictId(dictId,null);
} catch (Exception e) {
ExceptionPrintUtil.printException(e);
e.printStackTrace();
}
model.addAttribute("depts",depts);
return "userDir/user1";
}
@OptionalLog(module = "导出excel",methods = "用户管理")
@RequiresPermissions(value="/user/export")
@ -261,4 +283,24 @@ public class UserController {
return new ResponseEntity<String>(e.getMessage(), responseHeaders, HttpStatus.OK);
}
}
/**
* @Date 2021-11-10
* @Author zwh
* @Description
* */
@RequestMapping("/loadPosition")
@ResponseBody
public Msg selectList() {
try {
List<Power_User> deptList = powerUserService.loadPosition();
CacheManager.addExcCount("noExc");
return Msg.success().add("list",deptList);
}catch (Exception e){
ExceptionPrintUtil.printException(e);
CacheManager.addExcCount("exc");
e.printStackTrace();
return Msg.fail();
}
}
}

@ -13,4 +13,7 @@ public interface PowerWebService {
@WebMethod
String tempTest();
@WebMethod
String HIPMessageServer(String code,String xml);
}

@ -1,9 +1,13 @@
package com.manage.interfaces.webservice.impl;
import com.alibaba.fastjson.JSON;
import com.manage.dao.Power_DeptMapper;
import com.manage.dao.Power_MenuMapper;
import com.manage.dao.Power_UserMapper;
import com.manage.encrypt.Base64;
import com.manage.encrypt.MD5;
import com.manage.entity.PowerUser;
import com.manage.entity.Power_Dept;
import com.manage.entity.Power_Menu;
import com.manage.entity.Power_User;
import com.manage.service.cache.Cache;
@ -11,16 +15,25 @@ import com.manage.service.cache.CacheManager;
import com.manage.interfaces.webservice.PowerWebService;
import com.manage.service.User_Dept_MenuService;
import com.manage.util.Constant;
import com.manage.util.FileUtils;
import com.manage.util.XmlUtils;
import com.manage.vo.Power_UserVo;
import com.manage.vo.Power_UserWebServiceVo;
import com.manage.vo.User_Dept_Menu;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.jws.WebService;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.logging.SimpleFormatter;
@Component
@WebService(serviceName = "PowerWebService",
@ -28,11 +41,27 @@ import java.util.*;
endpointInterface = "com.manage.interfaces.webservice.PowerWebService"
)
public class PowerWebServiceImpl implements PowerWebService {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Value("${newUserName}")
private String newUserName;
@Value("${name}")
private String name;
@Value("${deptCode}")
private String deptCode;
@Value("${synchronizationSwitch}")
private String synchronizationSwitch;
@Value("${deptCTDCode}")
private String deptCTDCode;
@Value("${deptCTDDesc}")
private String deptCTDDesc;
@Autowired
Power_MenuMapper powerMenuMapper;
@Autowired
User_Dept_MenuService userDeptMenuService;
@Autowired
Power_UserMapper powerUserMapper;
@Autowired
Power_DeptMapper powerDeptMapper;
@Override
public String getInfosByUserId(String token,String sysFlag) {
Power_UserWebServiceVo userWebServiceVo = new Power_UserWebServiceVo();
@ -61,6 +90,8 @@ public class PowerWebServiceImpl implements PowerWebService {
userWebServiceVo.setUserEmail(user.getDownloadRecord()+"");
//查看打印简要设置在职位字段
userWebServiceVo.setUserAge(user.getShowPrint());
//预览显示水印设置在年龄字段
userWebServiceVo.setUserSex(user.getShowWater());
userWebServiceVo.setMenus(menus);
}
}
@ -72,6 +103,394 @@ public class PowerWebServiceImpl implements PowerWebService {
return "aaaa~~~~~~~~~~~~~~~~~~~~~~~";
}
@Override
public String HIPMessageServer(String code, String xml) {
if (StringUtils.isNotBlank(synchronizationSwitch) && "1".equals(synchronizationSwitch)) {
//科室字典信息方法
if (StringUtils.isNotBlank(code) && "MES0067".equals(code)) {
departmentInfo(code,xml);
}
//医护人员字典信息
else if (StringUtils.isNotBlank(code) && "MES0072".equals(code)){
userInfo(code,xml);
}
else {
return "无效的服务编码";
}
}
return "<Response>\n" +
" <Header>\n" +
" <SourceSystem></SourceSystem>\n" +
" <MessageID></MessageID>\n" +
" </Header>\n" +
" <Body>\n" +
" <ResultCode>0</ResultCode>\n" +
" <ResultContent>成功</ResultContent>\n" +
" </Body>\n" +
"</Response>";
}
//科室字典信息方法
private String departmentInfo(String code, String xml){
if (StringUtils.isBlank(xml)) {
return "xml不能为空";
}
/**
* <Request>
* <Header>
* <SourceSystem>30</SourceSystem>
* <MessageID></MessageID>
* </Header>
* <Body>
* <CT_CareProvList>
* <CT_CareProv>
* <BusinessFieldCode>00001</BusinessFieldCode>
* <CTCP_AdminiLevel></CTCP_AdminiLevel>
* <CTCP_AdminiPosition></CTCP_AdminiPosition>
* <CTCP_ArrivalHosDate></CTCP_ArrivalHosDate>
* <CTCP_BirthDate></CTCP_BirthDate>
* <CTCP_BirthPlace></CTCP_BirthPlace>
* <CTCP_CareProvPositionCode></CTCP_CareProvPositionCode>
* <CTCP_CareProvTypeCode></CTCP_CareProvTypeCode>
* <CTCP_Code>HHZK</CTCP_Code>
* <CTCP_CodesystemCode>CT_CareProv</CTCP_CodesystemCode>
* <CTCP_CreatDate></CTCP_CreatDate>
* <CTCP_CreatTime></CTCP_CreatTime>
* <CTCP_CreditLevel></CTCP_CreditLevel>
* <CTCP_CurrDeptDate></CTCP_CurrDeptDate>
* <CTCP_DegreeCode></CTCP_DegreeCode>
* <CTCP_DeptCode>H222100</CTCP_DeptCode>
* <CTCP_DeptHierarchyCode></CTCP_DeptHierarchyCode>
* <CTCP_Desc>H</CTCP_Desc>
* <CTCP_DocPracCatCode></CTCP_DocPracCatCode>
* <CTCP_EducationCode></CTCP_EducationCode>
* <CTCP_Email></CTCP_Email>
* <CTCP_EmployMode></CTCP_EmployMode>
* <CTCP_EmploymentDate></CTCP_EmploymentDate>
* <CTCP_EndDate></CTCP_EndDate>
* <CTCP_ExtranetURL></CTCP_ExtranetURL>
* <CTCP_FamilyNameSpell></CTCP_FamilyNameSpell>
* <CTCP_FirstNameSpell></CTCP_FirstNameSpell>
* <CTCP_FirstSubject></CTCP_FirstSubject>
* <CTCP_FormType></CTCP_FormType>
* <CTCP_HosCode>NFYKDXNFYY</CTCP_HosCode>
* <CTCP_IDCardNO></CTCP_IDCardNO>
* <CTCP_IDCardTypeCode></CTCP_IDCardTypeCode>
* <CTCP_IdentityType></CTCP_IdentityType>
* <CTCP_ImageInfo></CTCP_ImageInfo>
* <CTCP_IntranetURL></CTCP_IntranetURL>
* <CTCP_JobNumber>HHZK</CTCP_JobNumber>
* <CTCP_LearnSource></CTCP_LearnSource>
* <CTCP_MaritalCode></CTCP_MaritalCode>
* <CTCP_Name>H</CTCP_Name>
* <CTCP_NationCode></CTCP_NationCode>
* <CTCP_NativePlace></CTCP_NativePlace>
* <CTCP_NurPracCatCode></CTCP_NurPracCatCode>
* <CTCP_OriginalCode></CTCP_OriginalCode>
* <CTCP_OriginalDesc></CTCP_OriginalDesc>
* <CTCP_PassWord></CTCP_PassWord>
* <CTCP_PoliticalAffiliation></CTCP_PoliticalAffiliation>
* <CTCP_PoliticalJoinDate></CTCP_PoliticalJoinDate>
* <CTCP_PositionName></CTCP_PositionName>
* <CTCP_PositionSeqCode></CTCP_PositionSeqCode>
* <CTCP_PositionStatus></CTCP_PositionStatus>
* <CTCP_PracCertiCode></CTCP_PracCertiCode>
* <CTCP_PracCertiRegAddress></CTCP_PracCertiRegAddress>
* <CTCP_PracLevel></CTCP_PracLevel>
* <CTCP_PracStartDateInHos></CTCP_PracStartDateInHos>
* <CTCP_PracStatus></CTCP_PracStatus>
* <CTCP_PracticeArea></CTCP_PracticeArea>
* <CTCP_PracticeEndDate></CTCP_PracticeEndDate>
* <CTCP_PracticeStartDate></CTCP_PracticeStartDate>
* <CTCP_PrescriptionAFlag></CTCP_PrescriptionAFlag>
* <CTCP_PrescriptionFlag></CTCP_PrescriptionFlag>
* <CTCP_PrescriptionMFlag></CTCP_PrescriptionMFlag>
* <CTCP_PrescriptionPFlag></CTCP_PrescriptionPFlag>
* <CTCP_PrescriptionRFlag></CTCP_PrescriptionRFlag>
* <CTCP_PrescriptionSFlag></CTCP_PrescriptionSFlag>
* <CTCP_QualiCertiCode></CTCP_QualiCertiCode>
* <CTCP_RegistResidence></CTCP_RegistResidence>
* <CTCP_Remarks>HHZK</CTCP_Remarks>
* <CTCP_RetireDate></CTCP_RetireDate>
* <CTCP_SexCode></CTCP_SexCode>
* <CTCP_SourceCat></CTCP_SourceCat>
* <CTCP_SpecCertiCode></CTCP_SpecCertiCode>
* <CTCP_SpecializeIn></CTCP_SpecializeIn>
* <CTCP_Spell></CTCP_Spell>
* <CTCP_StaffCat></CTCP_StaffCat>
* <CTCP_StaffLevel></CTCP_StaffLevel>
* <CTCP_StaffTypeCode></CTCP_StaffTypeCode>
* <CTCP_StartDate>2019-05-08</CTCP_StartDate>
* <CTCP_Status>1</CTCP_Status>
* <CTCP_SubjectCat></CTCP_SubjectCat>
* <CTCP_Telephone></CTCP_Telephone>
* <CTCP_TitleEmployDate></CTCP_TitleEmployDate>
* <CTCP_TitleOfTechCode></CTCP_TitleOfTechCode>
* <CTCP_TitleOfTechLevel></CTCP_TitleOfTechLevel>
* <CTCP_UpdateDate></CTCP_UpdateDate>
* <CTCP_UpdateTime></CTCP_UpdateTime>
* <CTCP_UpdateUserCode></CTCP_UpdateUserCode>
* <CTCP_UrbanRegiResiFlag></CTCP_UrbanRegiResiFlag>
* <CTCP_Violation></CTCP_Violation>
* <CTCP_WorkInHosReason></CTCP_WorkInHosReason>
* <CTCP_WorkOrgCode></CTCP_WorkOrgCode>
* <CTCP_WorkYears></CTCP_WorkYears>
* </CT_CareProv>
* </CT_CareProvList>
* </Body>
* </Request>
*/
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Map map = new HashMap();
logger.info("接收到xml数据" + xml);
//xml转map
map = XmlUtils.parseXml2Map(xml, map);
//获取在xml中节点key
String cTDCode = deptCTDCode;
String cTDDesc = deptCTDDesc;
//获取所要的值
String deptCode = (String) map.get(cTDCode);
String deptDesc = (String) map.get(cTDDesc);
logger.info("解析xml数据deptCode = " + deptCode + "; deptDesc = " + deptDesc);
if (StringUtils.isBlank(deptCode)) {
return "科室编号不能为空";
}
Power_Dept dept = new Power_Dept();
dept.setDeptName(deptDesc);
dept.setDeptCode(deptCode);
//查询是否存在
List<Power_Dept> powerDepts = powerDeptMapper.checkDeptCode(deptCode);
dept.setUpdater("admin");
dept.setUpdateDate(fmt.format(new Date()));
if (!CollectionUtils.isEmpty(powerDepts)) {
//修改
Power_Dept powerDept = powerDepts.get(0);
Integer deptId = powerDept.getDeptId();
BeanUtils.copyProperties(dept, powerDept);
powerDept.setDeptId(deptId);
powerDeptMapper.updateByPrimaryKeySelective(powerDept);
logger.info("deptDesc = " + deptDesc + "修改成功!");
} else {
//新增
//设置初始值
dept.setEffective(1);
dept.setCreateDate(fmt.format(new Date()));
dept.setCreater("zwh");
dept.setDictId(1);
Power_Dept newPowerDapt =new Power_Dept();
BeanUtils.copyProperties(dept, newPowerDapt);
powerDeptMapper.insert(newPowerDapt);
logger.info("deptDesc = " + deptDesc + "插入成功!");
}
} catch (BeansException e) {
e.printStackTrace();
return e.getMessage();
}
//科室编码转科室id
return "<Response>\n" +
" <Header>\n" +
" <SourceSystem></SourceSystem>\n" +
" <MessageID></MessageID>\n" +
" </Header>\n" +
" <Body>\n" +
" <ResultCode>0</ResultCode>\n" +
" <ResultContent>成功</ResultContent>\n" +
" </Body>\n" +
"</Response>";
}
//HIS 用户字典信息方法
private String userInfo(String code, String xml){
if (StringUtils.isBlank(xml)) {
return "xml不能为空";
}
/**
* <Request>
* <Header>
* <SourceSystem>30</SourceSystem>
* <MessageID></MessageID>
* </Header>
* <Body>
* <CT_CareProvList>
* <CT_CareProv>
* <BusinessFieldCode>00001</BusinessFieldCode>
* <CTCP_AdminiLevel></CTCP_AdminiLevel>
* <CTCP_AdminiPosition></CTCP_AdminiPosition>
* <CTCP_ArrivalHosDate></CTCP_ArrivalHosDate>
* <CTCP_BirthDate></CTCP_BirthDate>
* <CTCP_BirthPlace></CTCP_BirthPlace>
* <CTCP_CareProvPositionCode></CTCP_CareProvPositionCode>
* <CTCP_CareProvTypeCode></CTCP_CareProvTypeCode>
* <CTCP_Code>HHZK</CTCP_Code>
* <CTCP_CodesystemCode>CT_CareProv</CTCP_CodesystemCode>
* <CTCP_CreatDate></CTCP_CreatDate>
* <CTCP_CreatTime></CTCP_CreatTime>
* <CTCP_CreditLevel></CTCP_CreditLevel>
* <CTCP_CurrDeptDate></CTCP_CurrDeptDate>
* <CTCP_DegreeCode></CTCP_DegreeCode>
* <CTCP_DeptCode>H222100</CTCP_DeptCode>
* <CTCP_DeptHierarchyCode></CTCP_DeptHierarchyCode>
* <CTCP_Desc>H</CTCP_Desc>
* <CTCP_DocPracCatCode></CTCP_DocPracCatCode>
* <CTCP_EducationCode></CTCP_EducationCode>
* <CTCP_Email></CTCP_Email>
* <CTCP_EmployMode></CTCP_EmployMode>
* <CTCP_EmploymentDate></CTCP_EmploymentDate>
* <CTCP_EndDate></CTCP_EndDate>
* <CTCP_ExtranetURL></CTCP_ExtranetURL>
* <CTCP_FamilyNameSpell></CTCP_FamilyNameSpell>
* <CTCP_FirstNameSpell></CTCP_FirstNameSpell>
* <CTCP_FirstSubject></CTCP_FirstSubject>
* <CTCP_FormType></CTCP_FormType>
* <CTCP_HosCode>NFYKDXNFYY</CTCP_HosCode>
* <CTCP_IDCardNO></CTCP_IDCardNO>
* <CTCP_IDCardTypeCode></CTCP_IDCardTypeCode>
* <CTCP_IdentityType></CTCP_IdentityType>
* <CTCP_ImageInfo></CTCP_ImageInfo>
* <CTCP_IntranetURL></CTCP_IntranetURL>
* <CTCP_JobNumber>HHZK</CTCP_JobNumber>
* <CTCP_LearnSource></CTCP_LearnSource>
* <CTCP_MaritalCode></CTCP_MaritalCode>
* <CTCP_Name>H</CTCP_Name>
* <CTCP_NationCode></CTCP_NationCode>
* <CTCP_NativePlace></CTCP_NativePlace>
* <CTCP_NurPracCatCode></CTCP_NurPracCatCode>
* <CTCP_OriginalCode></CTCP_OriginalCode>
* <CTCP_OriginalDesc></CTCP_OriginalDesc>
* <CTCP_PassWord></CTCP_PassWord>
* <CTCP_PoliticalAffiliation></CTCP_PoliticalAffiliation>
* <CTCP_PoliticalJoinDate></CTCP_PoliticalJoinDate>
* <CTCP_PositionName></CTCP_PositionName>
* <CTCP_PositionSeqCode></CTCP_PositionSeqCode>
* <CTCP_PositionStatus></CTCP_PositionStatus>
* <CTCP_PracCertiCode></CTCP_PracCertiCode>
* <CTCP_PracCertiRegAddress></CTCP_PracCertiRegAddress>
* <CTCP_PracLevel></CTCP_PracLevel>
* <CTCP_PracStartDateInHos></CTCP_PracStartDateInHos>
* <CTCP_PracStatus></CTCP_PracStatus>
* <CTCP_PracticeArea></CTCP_PracticeArea>
* <CTCP_PracticeEndDate></CTCP_PracticeEndDate>
* <CTCP_PracticeStartDate></CTCP_PracticeStartDate>
* <CTCP_PrescriptionAFlag></CTCP_PrescriptionAFlag>
* <CTCP_PrescriptionFlag></CTCP_PrescriptionFlag>
* <CTCP_PrescriptionMFlag></CTCP_PrescriptionMFlag>
* <CTCP_PrescriptionPFlag></CTCP_PrescriptionPFlag>
* <CTCP_PrescriptionRFlag></CTCP_PrescriptionRFlag>
* <CTCP_PrescriptionSFlag></CTCP_PrescriptionSFlag>
* <CTCP_QualiCertiCode></CTCP_QualiCertiCode>
* <CTCP_RegistResidence></CTCP_RegistResidence>
* <CTCP_Remarks>HHZK</CTCP_Remarks>
* <CTCP_RetireDate></CTCP_RetireDate>
* <CTCP_SexCode></CTCP_SexCode>
* <CTCP_SourceCat></CTCP_SourceCat>
* <CTCP_SpecCertiCode></CTCP_SpecCertiCode>
* <CTCP_SpecializeIn></CTCP_SpecializeIn>
* <CTCP_Spell></CTCP_Spell>
* <CTCP_StaffCat></CTCP_StaffCat>
* <CTCP_StaffLevel></CTCP_StaffLevel>
* <CTCP_StaffTypeCode></CTCP_StaffTypeCode>
* <CTCP_StartDate>2019-05-08</CTCP_StartDate>
* <CTCP_Status>1</CTCP_Status>
* <CTCP_SubjectCat></CTCP_SubjectCat>
* <CTCP_Telephone></CTCP_Telephone>
* <CTCP_TitleEmployDate></CTCP_TitleEmployDate>
* <CTCP_TitleOfTechCode></CTCP_TitleOfTechCode>
* <CTCP_TitleOfTechLevel></CTCP_TitleOfTechLevel>
* <CTCP_UpdateDate></CTCP_UpdateDate>
* <CTCP_UpdateTime></CTCP_UpdateTime>
* <CTCP_UpdateUserCode></CTCP_UpdateUserCode>
* <CTCP_UrbanRegiResiFlag></CTCP_UrbanRegiResiFlag>
* <CTCP_Violation></CTCP_Violation>
* <CTCP_WorkInHosReason></CTCP_WorkInHosReason>
* <CTCP_WorkOrgCode></CTCP_WorkOrgCode>
* <CTCP_WorkYears></CTCP_WorkYears>
* </CT_CareProv>
* </CT_CareProvList>
* </Body>
* </Request>
*/
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Map map = new HashMap();
logger.info("接收到xml数据" + xml);
//xml转map
map = XmlUtils.parseXml2Map(xml, map);
//获取在xml中节点key
String userNameKey = newUserName;
String nameKey = name;
String deptCodeKey = deptCode;
//获取所要的值
String userName = (String) map.get(userNameKey);
String name = (String) map.get(nameKey);
String deptCode = (String) map.get(deptCodeKey);
logger.info("解析xml数据userName = " + userName + "; name= " + name + "; deptCode = " + deptCode);
if (StringUtils.isBlank(userName)) {
return "工号不能为空";
}
PowerUser user = new PowerUser();
user.setName(name);
user.setUserName(userName);
user.setDeptCode(deptCode);
user.setDeptId("");
//设置科室id
setDeptIdForUser(user);
//查询是否存在
List<Power_User> powerUsers = powerUserMapper.checkUserName(userName);
user.setUpdater("zwh");
user.setUpdateDate(fmt.format(new Date()));
if (!CollectionUtils.isEmpty(powerUsers)) {
//修改
Power_User powerUser = powerUsers.get(0);
Integer userId = powerUser.getUserId();
BeanUtils.copyProperties(user, powerUser);
powerUser.setUserId(userId);
powerUserMapper.updateByPrimaryKeySelective(powerUser);
logger.info("userName = " + userName + "修改成功!");
} else {
//新增
//设置初始值
user.setEffective(1);
user.setCreateDate(fmt.format(new Date()));
user.setCreater("zwh");
user.setRoleId(1);
user.setUserPwd("RUZHQEFC");
Power_User userNew = new Power_User();
BeanUtils.copyProperties(user, userNew);
powerUserMapper.insert(userNew);
logger.info("userName = " + userName + "插入成功!");
}
} catch (BeansException e) {
e.printStackTrace();
return e.getMessage();
}
//科室编码转科室id
return "<Response>\n" +
" <Header>\n" +
" <SourceSystem></SourceSystem>\n" +
" <MessageID></MessageID>\n" +
" </Header>\n" +
" <Body>\n" +
" <ResultCode>0</ResultCode>\n" +
" <ResultContent>成功</ResultContent>\n" +
" </Body>\n" +
"</Response>";
}
//科室编号转科室id
private void setDeptIdForUser(PowerUser user) {
if(StringUtils.isBlank(user.getDeptCode())){
return;
}
//根据科室编码查科室id
List<Integer> deptIds = powerUserMapper.selectDeptIdByDeptCode(user.getDeptCode());
if(CollectionUtils.isEmpty(deptIds)){
return;
}
user.setDeptId(deptIds.get(0).toString());
}
private List<Power_Menu> getPowerMenuMethods(Power_User powerUser, String sysId){
// 根据用户ID以及系统Id查出所有的用户菜单
List<Power_Menu> powerUserMenus = powerMenuMapper.selectUserMenuByUserIdAndDictId(powerUser.getUserId(), Integer.parseInt(sysId));

@ -66,4 +66,6 @@ STR_SPLIT = *^:|,.
log.days = 90
#定义是否为长期登录用户次数
login.times = 3
login.times = 3
synchronizationSwitch = 1

@ -0,0 +1,8 @@
//--------广webService------------
newUserName=Body.CT_CareProvList.CT_CareProv.CTCP_JobNumber
name=Body.CT_CareProvList.CT_CareProv.CTCP_Name
deptCode=Body.CT_CareProvList.CT_CareProv.CTCP_DeptCode
deptCTDCode=Body.CT_DeptList.CT_Dept.CTD_Code
deptCTDDesc=Body.CT_DeptList.CT_Dept.CTD_Desc

@ -1,18 +0,0 @@
log4j.logger.myLog=debug,myLog
log4j.appender.myLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myLog.File=D:\\logs\\power\\info\\info_log
log4j.appender.myLog.DatePattern=-yyyy-MM-dd'.log'
log4j.appender.myLog.Append = true
log4j.appender.myLog.Threshold = INFO
log4j.appender.myLog.layout=org.apache.log4j.PatternLayout
log4j.appender.myLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n
log4j.logger.errorMsg=error,errorMsg
log4j.appender.errorMsg=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorMsg.File=D:\\logs\\power\\error\\error_log
log4j.appender.errorMsg.DatePattern=-yyyy-MM-dd'.log'
log4j.appender.errorMsg.Append = true
log4j.appender.errorMsg.Threshold = error
log4j.appender.errorMsg.layout=org.apache.log4j.PatternLayout
log4j.appender.errorMsg.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:%m%n

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?><configuration status="warn">
<Properties>
<Property name="infoLogFileDir">D:docus_logs/power/info</Property>
<Property name="infoLogFileName">info_log</Property>
<Property name="infoLogFileSrc">${infoLogFileDir}/${infoLogFileName}</Property>
<Property name="errorLogFileDir">D:docus_logs/power/error</Property>
<Property name="errorLogFileName">error_log</Property>
<Property name="errorLogFileSrc">${errorLogFileDir}/${errorLogFileName}</Property>
</Properties>
<appenders>
<RollingFile name="infoLogRollingFile" fileName="${infoLogFileSrc}"
filePattern="${infoLogFileSrc}-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<!--配置1天存储一个文件-->
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<!--配置超过文件大小切割成多个文件%i区分序号目前配一个文件20M-->
<SizeBasedTriggeringPolicy size="20MB"/>
<!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 -->
<DefaultRolloverStrategy max="20">
<Delete basePath="${infoLogFileDir}/" maxDepth="1">
<IfFileName glob="*.log" />
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
<!--保留30天-->
<IfLastModified age="30d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="errorLogRollingFile" fileName="${errorLogFileSrc}"
filePattern="${errorLogFileSrc}-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<!--配置1天存储一个文件-->
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<!--配置超过文件大小切割成多个文件%i区分序号目前配一个文件20M-->
<SizeBasedTriggeringPolicy size="20MB"/>
<!-- DefaultRolloverStrategy属性如不设置则默认为最多同一文件夹下7个文件这里设置了20 -->
<DefaultRolloverStrategy max="20">
<Delete basePath="${errorLogFileDir}/" maxDepth="1">
<IfFileName glob="*.log" />
<!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
<!--保留30天-->
<IfLastModified age="30d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</appenders>
<loggers>
<Logger name="infoLog" additivity="TRUE" level="ALL">
<AppenderRef ref="infoLogRollingFile" level="INFO" />
</Logger>
<Logger name="errorLog" additivity="TRUE" level="ALL">
<AppenderRef ref="errorLogRollingFile" level="ERROR" />
</Logger>
</loggers>
</configuration>

@ -71,17 +71,16 @@
}
function narn (type,title,text,noticeId) {
debugger
naranja()[type]({
title: title,
text: text,
timeout: 1000*60,
buttons: [{
text: '查看详情',
click: function (e) {
noticeManage1(noticeId);
}
}]
buttons: [{
text: '查看详情',
click: function (e) {
noticeManage1(noticeId);
}
}]
})
}
</script>

@ -13,143 +13,86 @@
var path = "${path}";
</script>
<style type="text/css">
.logo{
height: 59px!important;
}
.navbar-custom-menu{
padding-right:17px;
}
/**
* 内容背景颜色
*/
.content-wrapper{
background-color: #fff!important;
}
/**
* 上图标div
*/
.header{
*右侧
*/
.rightDiv{
width: 100%;
height: 120px;
margin-top: 0!important;
}
.headerLeft{
width:70px;
height:100%;
}
.iconContext{
width:104px;
height:100%;
margin-left: 35px;
height: 83%;
}
/**
* 字内容div背景颜色
*右侧上部分
*/
.content-header{
background-color: #ecf0f5!important;
padding: 0!important;
}
/**
* echartDiv
*/
.echartsSection{
background-color: #ecf0f5!important;
margin-top: 10px;
width:100%;
height: 566px;
.rightTopDiv{
width: 100%;
height: 40%;
min-height: 190px;
}
/**
* 上组图div
*/
.topEchartsDiv{
padding:0!important;
width:100%;
height:50%;
.rightTopSpanDiv{
padding-top: 10%;
width: 100%;
height:50px;
text-align: center;
}
/**
* 下组图div
*/
.bottomEchartsDiv{
padding:0!important;
width:100%;
height:50%;
.rightTopSpanDiv span{
font-size: 36px;
font-weight: bold;
}
/**
* 系统操作div
*/
.systemOperDiv{
width:33%;
height: 100%;
.hidden-xs{
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/**
* 在线用户统计div
*/
.alineDiv{
margin-left: 1%;
width:66%;
height: 100%;
.home-sidebar-menu>li{
padding: 18px 0;
}
/**
* 在线用户里内容div
*/
.topEchartsRightDiv{
width:48%;
height: 88%;
.skin-blue .sidebar-menu>li:hover,.skin-blue .sidebar-menu>li.active{
background: #1e282c;
}
/**
* 在线用户里内容右div
*/
.topEchartsRightDiv2{
margin-left:15px;
.skin-blue .sidebar-menu>li:hover>.aClass,.skin-blue .sidebar-menu>li.active>.aClass{
color: white;
}
/**
* 下组图内容div
*/
.bottomEchartsContentDiv{
width:31%;
height: 88%;
.aClass{
display: grid;
justify-content: center;
align-items: center;
font-size: 16px;
font-weight: 700;
text-align: center;
color: #b8c7ce;
cursor: pointer;
}
/**
* 下组图内容div非左div
*/
.bottomEchartsContentNotLeftDiv{
margin-left: 25px;
.aClass i{
display: flex;
justify-content: center;
margin: 0 auto;
font-size: 54px;
}
/**
* echart头标题div
*/
.echartsHeader{
background-color: #3C8DBC;
width: 100%;
height:12%;
text-align: center;
font-size: 18px;
color: #fff;
padding-top:3px;
.aClass span{
margin-top: 5px;
}
hr{
margin: 0!important;
.sidebar-mini.sidebar-collapse .aClass{
font-size: 12px;
}
#alineLineDivMain canvas{
heigth:120%;
.sidebar-mini.sidebar-collapse .aClass>i{
font-size: 25px;
}
#alineBarDivMain canvas{
heigth:120%;
.home-menu:hover .dropdown-menu {display: block;}
.sidebar-mini.sidebar-collapse .img {
width: 25px;
}
/*#serverListenGaugeDiv1 canvas{*/
/*width:120%!important;*/
/*height:120%!important;*/
/*}*/
.hidden-xs{
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.home-menu:hover .dropdown-menu {display: block;}
.sidebar-mini.sidebar-collapse .titleDiv{
font-size: 12px;
}
</style>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<%--<a href="http://192.168.1.3:8080/emr_record/login?token=IxEQVDobAlREQlRFQk5HTE5BRFQ3JyBURkRFTQ==&userName=1137">hhhhhhhhhhhhhhhh</a>--%>
<input type="hidden" id="userId" value="${CURRENT_USER.userId}">
<input type="hidden" id="webSocketUrl" value="${WEBSOCKET_URLHEAD}">
<input type="hidden" id="strSplit" value="${STR_SPLIT}">
@ -157,401 +100,231 @@
<div class="wrapper">
<header class="main-header">
<!--logo-->
<div class=" logo">
<%--<div class="pull-left image" style="align-content: baseline;">
<img src="${path}/static/bootstrap-3.3.7/dist/img/credit/paypal.png"
style=":height:70%;width: 70%;margin-top:0.25rem;"
class="user-image" alt="User Image">
</div>--%>
<div class="logo">
<div class="pull-left info" style="width: 100%">
<p>嘉时软件</p>
</div>
</div>
<nav class="navbar navbar-static-top">
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
<a href="javascript:void(0)" class="sidebar-toggle" data-toggle="push-menu" role="button">
<span class="sr-only">Toggle navigation</span>
</a>
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<li class="user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" onclick="noticeManage()">
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown" onclick="noticeManage()">
<span class="label label-warning" id="noticeCount">0</span>
<i class="fa fa-envelope-o" style="font-size: 25px;"></i>
<i class="fa fa-envelope-o" style="font-size: 21px;"></i>
</a>
</li>
<li class="user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">
<img src="${path}/static/bootstrap-3.3.7/dist/img/user2-160x160.jpg" class="user-image" alt="User Image">
<c:choose>
<c:when test="${CURRENT_USER.powerDepts == '' || CURRENT_USER.powerDepts == null || CURRENT_USER.powerDepts == 'null'}">
<c:choose>
<c:when test="${CURRENT_USER.name != null && CURRENT_USER.name != '' && CURRENT_USER.name != 'null'}">
<p class="hidden-xs" title="${CURRENT_USER.name}">${CURRENT_USER.name}</p>
<div class="hidden-xs" title="${CURRENT_USER.name}">${CURRENT_USER.name}</div>
</c:when>
<c:otherwise>
<p class="hidden-xs" title="${CURRENT_USER.userName}">${CURRENT_USER.userName}</p>
<div class="hidden-xs" title="${CURRENT_USER.userName}">${CURRENT_USER.userName}</div>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:choose>
<c:when test="${CURRENT_USER.name != null && CURRENT_USER.name != '' && CURRENT_USER.name != 'null'}">
<p class="hidden-xs" title="${CURRENT_USER.name}(${CURRENT_USER.powerDepts})">${CURRENT_USER.name}(${CURRENT_USER.powerDepts})</p>
<div class="hidden-xs" title="${CURRENT_USER.name}(${CURRENT_USER.powerDepts})">${CURRENT_USER.name}(${CURRENT_USER.powerDepts})</div>
</c:when>
<c:otherwise>
<p class="hidden-xs" title="${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})">${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})</p>
<div class="hidden-xs" title="${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})">${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})</div>
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</a>
</li>
<li>
<div class="margin">
<div class="btn-group">
<button type="button" class="btn btn-default">操作</button>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-expanded="false" style="height:34px">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu" role="menu">
<%--<li><a href="#">帮助</a></li>
<li><a href="#">联系我们</a></li>
<li><a href="${path}/gatewayPage">返回首页</a></li>
<li class="divider"></li>--%>
<li><a href="${path}/logout?token=${token}">退出登录</a></li>
</ul>
</div>
</div>
<li class="home-menu">
<a href="${path}/gatewayPage" title="点击返回首页"><i class="fa fa-home" style="font-size: 21px"></i></a>
<ul class="dropdown-menu" role="menu">
<li><a href="${path}/logout?token=${token}">退出登录</a></li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<aside class="main-sidebar">
<div onclick="mainManage()" style="cursor:pointer">
<!-- Unnamed (形状) -->
<div id="u86" class="ax_default icon">
<img id="u86_img" class="img " src="${path}/static/images/门户页面/u86.png"/>
</div>
<!-- Unnamed (矩形) -->
<div id="u158" class="ax_default _三级标题">
<div id="u158_div" class=""></div>
<!-- Unnamed () -->
<div id="u159" class="text" style="visibility: visible;">
<p><span>主页</span></p>
<section class="sidebar">
<ul class="sidebar-menu home-sidebar-menu" data-widget="tree">
<li class="active" title="主页">
<div class="aClass" onclick="menuClick(this,'home')">
<i class="fa fa-home"></i>
<span>主页</span>
</div>
</div>
</div>
<!-- Unnamed (组合) -->
<div onclick="noticeManage()" style="cursor:pointer">
<!-- Unnamed (形状) -->
<div id="u161" class="ax_default icon">
<img id="u161_img" class="img " src="${path}/static/images/门户页面/u161.png"/>
<!-- Unnamed () -->
<div id="u162" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</li>
<li title="通知信息">
<div class="aClass notice-menu" onclick="menuClick(this,'notice')">
<i class="fa fa-file"></i>
<span>通知信息</span>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u163" class="ax_default _三级标题">
<div id="u163_div" class=""></div>
<!-- Unnamed () -->
<div id="u164" class="text" style="visibility: visible;">
<p><span>通知信息</span></p>
</li>
<li title="个人资料">
<div class="aClass" onclick="menuClick(this,'help')">
<i class="fa fa-info"></i>
<span>个人资料</span>
</div>
</div>
</div>
<div onclick="helpDocumentManage()" style="cursor:pointer">
<!-- Unnamed (形状) -->
<div id="u152" class="ax_default icon">
<img id="u152_img" class="img " src="${path}/static/images/门户页面/u152.png"/>
<!-- Unnamed () -->
<div id="u153" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</li>
<li title="修改密码">
<div class="aClass" onclick="menuClick(this,'pwd')">
<i class="fa fa-key"></i>
<span>修改密码</span>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u165" class="ax_default _三级标题">
<div id="u165_div" class=""></div>
<!-- Unnamed () -->
<div id="u166" class="text" style="visibility: visible;">
<p><span>帮助文档</span></p>
</div>
</div>
</div>
<div onclick="updatePassword()" style="cursor:pointer">
<!-- Unnamed (形状)/user/toUpdatePassword -->
<div id="u154" class="ax_default icon">
<img id="u154_img" class="img " src="${path}/static/images/门户页面/u154.png"/>
<!-- Unnamed () -->
<div id="u155" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u167" class="ax_default _三级标题">
<div id="u167_div" class=""></div>
<!-- Unnamed () -->
<div id="u168" class="text" style="visibility: visible;">
<p><span>修改密码</span></p>
</li>
<li title="联系我们">
<div class="aClass" onclick="menuClick(this,'contact')">
<i class="fa fa-phone"></i>
<span>联系我们</span>
</div>
</div>
</div>
<div onclick="callMeManage()" style="cursor:pointer">
<!-- Unnamed (形状) -->
<div id="u156" class="ax_default icon">
<img id="u156_img" class="img " src="${path}/static/images/门户页面/u156.png"/>
<!-- Unnamed () -->
<div id="u157" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u169" class=" _三级标题">
<div id="u169_div" class=""></div>
<!-- Unnamed () -->
<div id="u170" class="text" style="visibility: visible;">
<p><span>联系我们</span></p>
</div>
</div>
</div>
</li>
</ul>
</section>
</aside>
<div id="iframeDiv" style="display: none">
<iframe class="row-fluid" style="margin-left:230px;height:100%;width:85%;"
<div id="iframeDiv" class="content-wrapper" style="display: none">
<iframe class="row-fluid" style="height:calc(100% - 102px);width:100%;"
id="iframe" name="iframe" scrolling="no" frameborder="0"></iframe>
</div>
<div class="content-wrapper" id="sectionDiv">
<section class="content-header">
<div class="header">
<div class="headerLeft left">
<a href="#">
<div id="u191" class="ax_default box_1">
<div id="u191_div" class=""></div>
<!-- Unnamed () -->
<div id="u192" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<div id="u187" class="ax_default icon">
<img id="u187_img" class="img " src="${path}/static/images/门户页面/u187.png"/>
<!-- Unnamed () -->
<div id="u188" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
</a>
<div class="rightDiv">
<div class="rightTopDiv">
<div class="rightTopSpanDiv">
<span>嘉时软件 病案数码影像信息管理系统</span>
</div>
<c:if test="${power == 1}">
<div class="iconContext left">
<a href="${path}/index">
<!-- Unnamed (矩形) -->
<div id="u128" class="ax_default sticky_2">
<div id="u128_div" class=""></div>
<!-- Unnamed () -->
<div id="u129" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (形状) -->
<div id="u130" class="ax_default icon">
<img id="u130_img" class="img " src="${path}/static/images/门户页面/u130.png"/>
<!-- Unnamed () -->
<div id="u131" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u132" class="ax_default _二级标题">
<div id="u132_div" class=""></div>
<!-- Unnamed () -->
<div id="u133" class="text" style="visibility: visible;">
<p><span>权限系统</span></p>
</div>
</div>
</a>
</div>
</c:if>
<c:if test="${emr_medical_record == 1}">
<div class="iconContext left">
<a href="${EMRMEDICALRECORD_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u134" class="ax_default sticky_2">
<div id="u134_div" class=""></div>
<!-- Unnamed () -->
<div id="u135" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (形状) -->
<div id="u136" class="ax_default icon">
<img id="u136_img" class="img " src="${path}/static/images/门户页面/u136.png"/>
<!-- Unnamed () -->
<div id="u137" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u138" class="ax_default _二级标题">
<div id="u138_div" class=""></div>
<!-- Unnamed () -->
<div id="u139" class="text" style="visibility: visible;text-align: center">
<p><span>病案归档系统</span></p>
</div>
</div>
</a>
</div>
</c:if>
<c:if test="${emr_record == 1}">
<div class="iconContext left">
<a href="${EMRRECORD_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u140" class="ax_default sticky_3">
<div id="u140_div" class=""></div>
<!-- Unnamed () -->
<div id="u141" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
<section class="content-header">
<div class="header">
<c:if test="${power == 1}">
<div class="iconContext left">
<a href="${path}/index">
<div class="backgroupImgDiv blue rightDefaultImg_bg">
<div class="rightImgDiv">
<img class="rightImg" src="${path}/static/images/门户页面/u130.png"/>
</div>
<div class="rightTitleDiv">
<div class="rightTitle">
<span>权限系统</span>
</div>
</div>
</div>
</div>
<!-- Unnamed (形状) -->
<div id="u142" class="ax_default icon">
<img id="u142_img" class="img " src="${path}/static/images/门户页面/u138.png"/>
<!-- Unnamed () -->
<div id="u143" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</a>
</div>
</c:if>
<c:if test="${emr_medical_record == 1}">
<div class="iconContext left">
<a href="${EMRMEDICALRECORD_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<div class="backgroupImgDiv green rightDefaultImg_bg">
<div class="rightImgDiv">
<img class="rightImg" src="${path}/static/images/门户页面/u136.png"/>
</div>
<div class="rightTitleDiv">
<div class="rightTitle" style="margin-top: 5px;">
<span>病案归档系统</span>
</div>
</div>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u144" class="ax_default _二级标题">
<div id="u144_div" class=""></div>
<!-- Unnamed () -->
<div id="u145" class="text" style="visibility: visible;text-align: center">
<p><span>档案管理系统</span></p>
</a>
</div>
</c:if>
<c:if test="${emr_record == 1}">
<div class="iconContext left">
<a href="${EMRRECORD_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<div class="backgroupImgDiv orange rightDefaultImg_bg">
<div class="rightImgDiv">
<img class="rightImg" src="${path}/static/images/门户页面/u138.png"/>
</div>
<div class="rightTitleDiv">
<div class="rightTitle">
<span>病案数码影像信息管理系统</span>
</div>
</div>
</div>
</div>
</a>
</div>
</c:if>
<%--<c:if test="${emr_apply_copy == 1}">
<div class="iconContext left">
<a href="${EMRAPPLYCOPY_URLHEAD}/auth/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u146" class="ax_default sticky_3">
<div id="u146_div" class=""></div>
<!-- Unnamed () -->
<div id="u147" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</a>
</div>
</c:if>
<%--<c:if test="${emr_apply_copy == 1}">
<div class="iconContext left">
<a href="${EMRAPPLYCOPY_URLHEAD}/auth/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u146" class="ax_default sticky_3">
<div id="u146_div" class=""></div>
<!-- Unnamed () -->
<div id="u147" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
</div>
<!-- Unnamed (形状) -->
<div id="u148" class="ax_default icon">
<img id="u148_img" class="img " src="${path}/static/images/门户页面/u149.png"/>
<!-- Unnamed () -->
<div id="u149" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
<!-- Unnamed (形状) -->
<div id="u148" class="ax_default icon">
<img id="u148_img" class="img " src="${path}/static/images/门户页面/u149.png"/>
<!-- Unnamed () -->
<div id="u149" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u150" class="ax_default _二级标题">
<div id="u150_div" class=""></div>
<!-- Unnamed () -->
<div id="u151" class="text" style="visibility: visible;text-align: center">
<p><span>病案复印预约</span></p>
<!-- Unnamed (矩形) -->
<div id="u150" class="ax_default _二级标题">
<div id="u150_div" class=""></div>
<!-- Unnamed () -->
<div id="u151" class="text" style="visibility: visible;text-align: center">
<p><span>病案复印预约</span></p>
</div>
</div>
</div>
</a>
</div>
</c:if>
<c:if test="${emr_files == 1}">
<div class="iconContext left">
<a href="${EMRFILES_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u1461" class="ax_default sticky_3">
<div id="u1461_div" class=""></div>
<!-- Unnamed () -->
<div id="u1471" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</a>
</div>
</c:if>
<c:if test="${emr_files == 1}">
<div class="iconContext left">
<a href="${EMRFILES_URLHEAD}/login?token=${token}&userName=${CURRENT_USER.userName}">
<!-- Unnamed (矩形) -->
<div id="u1461" class="ax_default sticky_3">
<div id="u1461_div" class=""></div>
<!-- Unnamed () -->
<div id="u1471" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
</div>
<!-- Unnamed (形状) -->
<div id="u1481" class="ax_default icon">
<img id="u1481_img" class="img " src="${path}/static/images/门户页面/u148.png"/>
<!-- Unnamed () -->
<div id="u1491" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
<!-- Unnamed (形状) -->
<div id="u1481" class="ax_default icon">
<img id="u1481_img" class="img " src="${path}/static/images/门户页面/u148.png"/>
<!-- Unnamed () -->
<div id="u1491" class="text" style="display: none; visibility: hidden">
<p><span></span></p>
</div>
</div>
</div>
<!-- Unnamed (矩形) -->
<div id="u1501" class="ax_default _二级标题">
<div id="u1501_div" class=""></div>
<!-- Unnamed () -->
<div id="u1511" class="text" style="visibility: visible;text-align: center">
<p><span>病案签收</span></p>
<!-- Unnamed (矩形) -->
<div id="u1501" class="ax_default _二级标题">
<div id="u1501_div" class=""></div>
<!-- Unnamed () -->
<div id="u1511" class="text" style="visibility: visible;text-align: center">
<p><span>病案签收</span></p>
</div>
</div>
</div>
</a>
</div>
</c:if>--%>
</div>
</section>
<%--<section class="content-bottom echartsSection">
<!--上echarts-->
<div class="topEchartsDiv" style="background-color: #fff">
<!--系统操作div-->
<div class="systemOperDiv left">
<div class="echartsHeader">
<span>权限系统操作</span>
</div>
<div id="systemOperDivMain" style="width:100%;height:100%;"></div>
</div>
<!--统计用户在线div-->
<div class="alineDiv left" style="background-color: #fff">
<div class="echartsHeader">
<span>在线人数统计</span>
</div>
<div class="topEchartsRightDiv left">
<div style="width:100%;height: 11%;"><span style="font-size: 16px">本月客户阶段统计(客户总量:<span id="maxCountList"></span>)</span><hr style="color: grey"></div>
<div id="alineLineDivMain" style="width:100%;height:89%;"></div>
</div>
<div class="topEchartsRightDiv topEchartsRightDiv2 left">
<div style="width:100%;height: 11%;text-align: right"><span style="font-size: 16px;padding-right: 35px">总拜访量:<span id="loginCount"></span></span></div>
<div id="alineBarDivMain" style="width:100%;height:89%;"></div>
</div>
</div>
</div>
<div class="bottomEchartsDiv">
<div class="echartsHeader">
<span>服务器监控</span>
</div>
<div class="bottomEchartsContentDiv left">
<div id="serverListenGaugeDiv1" style="width:100%;height:100%;"></div>
</div>
<div class="bottomEchartsContentDiv left bottomEchartsContentNotLeftDiv">
<div id="serverListenGaugeDiv2" style="width:100%;height:100%;"></div>
</div>
<div class="bottomEchartsContentDiv left bottomEchartsContentNotLeftDiv">
<div id="serverListenGaugeDiv3" style="width:100%;height:100%;"></div>
</a>
</div>
</c:if>--%>
</div>
</div>
</section>--%>
</section>
</div>
</div>
<!-- 底部版权-->
<footer class="main-footer">
<div class="pull-right hidden-xs">
<b>Version</b> 20200211
<b>Version</b> 20201113
</div>
<strong>Copyright &copy; 2019-2090 厦门嘉时软件.</strong> All rights
reserved.
</footer>
</div>
<script type="text/javascript" src="${path}/static/js/getewayIndex.js?time=2019-12-15"></script>
<script type="text/javascript" src="${path}/static/js/getewayIndex.js?t=2020-10-30"></script>
<%@ include file="/WEB-INF/jspf/webSocket.jspf" %>
<%--<script src="${path}/static/js/gatewayIndexEcharts.js"></script>--%>
</body>

@ -30,6 +30,9 @@
.row-fluid{
overflow-y: hidden;
}
.g{
background-color: #f6f6f6;
}
</style>
<body class="hold-transition skin-blue sidebar-mini" scroll="no">
<input type="hidden" id="userId" value="${CURRENT_USER.userId}">
@ -71,7 +74,6 @@
<p class="hidden-xs" title="${CURRENT_USER.userName}">${CURRENT_USER.userName}</p>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:choose>
@ -82,7 +84,6 @@
<p class="hidden-xs" title="${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})">${CURRENT_USER.userName}(${CURRENT_USER.powerDepts})</p>
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>
</a>
@ -112,7 +113,7 @@
</nav>
</header>
<aside class="main-sidebar">
<aside class="main-sidebar" style="background-color: #2a5ec5">
<section class="sidebar">
<!-- 查询菜单列表 -->
<!--<form action="#" method="get" class="sidebar-form">

@ -21,66 +21,142 @@
}
}
%>
<html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>嘉时软件</title>
<!--导入CSS -->
<link rel="stylesheet" href="${path}/static/css/login.css">
<script>
var path = "${path}";
</script>
</head>
<body style="background:url('${path}/static/img/login/bg.png')">
<!--头部-->
<div class="login_head">
<!--头部文字-->
<div class="head_left left">
<div class="head_left_span">
<span>${loginSet.context}</span></div>
</div>
<!--右边logon-->
<div class="head_right left">
<c:if test="${loginSet.logoPath != ''}">
<img src="${path}/${loginSet.logoPath}" width="${loginSet.logoWidth}px" height="${loginSet.logoHeight}px">
</c:if>
</div>
<style>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
.login{
width: 100%;
height: 100vh;
display: flex;
}
.login .left{
width: 1100px;
height: 100%;
}
.login .left img{
width: 100%;
height: 100%;
}
.login .right{
margin: 0 auto;
margin-top: 30px;
}
.logo{
margin-top: 74px;
margin-bottom: 123px;
display: flex;
align-items: center;
}
.title{
text-align: center;
font-size: 40px;
font-weight: 500;
margin-top: 34px;
}
.shuru{
width: 500px;
height: 50px;
background: #EFF0F4;
border-radius: 6px;
border: 1px solid #EFF0F4;
outline: none;
padding-left: 20px;
font-size: 16px;
}
.shuru:focus{
border-color: #09f !important;
}
.item{
margin-bottom: 20px;
}
.item1{
margin-bottom: 30px;
}
.item-name{
font-size: 22px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #555555;
margin: 10px 0;
}
.btn{
width: 500px;
height: 64px;
background: linear-gradient(90deg, #00AFFF 0%, #007CFF 100%);
border-radius: 6px;
text-align: center;
line-height: 53px;
cursor: pointer;
font-size: 22px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #FFFFFF;
margin-top: 108px;
}
.boxCss{
margin-top: 60px;
}
.bottom{
width: 500px;
text-align: center;
font-size: 14px;
font-family: Source Han Sans CN;
font-weight: 400;
color: #919191;
margin-top: 120px;
}
</style>
<body>
<div class="login">
<div class="left">
<img src="./static/img/login/login_bg.png" alt="">
</div>
<!--中间-->
<div class="login_content">
<div class="content_left left">
<c:if test="${loginSet.pic1Path != ''}">
<div class="image1" style="background:url('${path}/${loginSet.pic1Path}') no-repeat">
</div>
</c:if>
<div class="right">
<c:if test="${loginSet.logoPath != ''}">
<img src="${path}/${loginSet.logoPath}" width="${loginSet.logoWidth}px" height="${loginSet.logoHeight}px">
</c:if>
<div class="title">
账号登录
</div>
<div class="content_login left">
<form method="post" action="${path}/login">
<div class="login_div" style="background:url('${path}/static/img/login/登录框.png') no-repeat">
<div class="login_title">
<h3 style="text-align: center">账号登录</h3>
</div>
<div class="inputDiv">
<input type="text" id="userName" name="userName" class="form-control uname left" placeholder="用户名" required value="<%=userName%>"/>
</div>
<div class="inputDiv">
<input type="password" id="userPwd" name="userPwd" class="form-control pword m-b" placeholder="密码" required value="<%=password%>" autocomplete="new-password"/>
</div>
<div class="inputDiv">
<label><input type="checkbox" name="rememberMe" id="rememberMe" value="yes" style="vertical-align:middle; margin-top:0;" <%=checked%>>记住密码</label>
</div>
<%--<a href="#" id="forgetPwd" style="float: right;">忘记密码了?</a>--%>
<div class="inputDiv">
<button class="btn btn-success btn-block">登录</button>
<p class="text-danger">${msg}</p>
</div>
<div class="boxCss">
<form action="">
<div class="item item1">
<div class="item-name">用户名</div>
<input type="text" placeholder="请输入" class="shuru" id="userName" name="userName" >
</div>
<div class="item">
<div class="item-name">用户密码</div>
<input type="password" placeholder="请输入" class="shuru" id="userPwd" name="userPwd">
</div>
<div >
<input type="checkbox" name="" id="">
<span>记住密码</span>
</div>
</form>
</div>
<div class="btn" onclick="login()">立即登录</div>
<div class="bottom">
<div class="top">技术支持:厦门嘉时软件科技有限公司 </div>
<div class="bot">Copyright © 2019-2090 厦门嘉时软件. All rights reserved.</div>
</div>
</div>
<!--尾部-->
<div class="login_foot">
<div class="span_div"><span>${loginSet.footContext}</span></div>
</div>
<script type="text/javascript" src="${path}/static/js/login.js"></script>
</div>
<script type="text/javascript" src="${path}/static/js/login.js?time=2022-01-13"></script>
</body>
</html>

@ -143,9 +143,14 @@
<label for="re_effective" class="control-label left">档案管理系统权限:</label>
<input type="checkbox" name="showRecordCheckbox">免申请预览档案
<input type="checkbox" name="downloadRecordCheckbox">免申请下载档案
<input type="checkbox" name="showPrintCheckbox">查看打印简要
<input type="hidden" name="showRecord" id="showRecord">
<input type="hidden" name="downloadRecord" id="downloadRecord">
</div>
<div class="formDiv">
<label for="re_effective" class="control-label left">档案管理系统权限:</label>
<input type="checkbox" name="showWaterCheckbox">预览显示水印
<input type="checkbox" name="showPrintCheckbox">查看打印简要
<input type="hidden" name="showWater" id="showWater">
<input type="hidden" name="showPrint" id="showPrint">
</div>
<div class="formDiv">

@ -112,10 +112,10 @@
<label for="searchName">姓名:</label>
<input type="text" class="form-control input-sm" id="searchName" maxlength="16"/>
</div>
<%-- <div class="form-group">
<label for="user_email">邮箱地址:</label>
<input type="text" class="form-control input-sm" id="user_email" maxlength="25"/>
</div>--%>
<div class="form-group">
<label for="user_position">用户职位:</label>
<input type="text" class="form-control input-sm" id="user_position" maxlength="25"/>
</div>
<div class="form-group">
<label>所属角色:</label>
<div class=" form-group form-inline">
@ -302,7 +302,7 @@
</script>
<script src="${path}/static/zTree_v3-master/js/jquery.ztree.core.js"></script>
<script src="${path}/static/zTree_v3-master/js/jquery.ztree.excheck.js"></script>
<script src="${path}/static/js/user.js?t=2021-08-20"></script>
<script src="${path}/static/js/user.js?t=2021-11-04"></script>
<%@ include file="/WEB-INF/jspf/importExcelJsp.jspf" %>
</body>
</html>

@ -0,0 +1,322 @@
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/WEB-INF/jspf/common.jspf" %>
<%@ include file="/WEB-INF/jspf/confirmJsp.jspf" %>
<html>
<head>
<title>用户管理</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 引入 Bootstrap -->
<link rel="stylesheet" href="${path}/static/css/comm.css">
<link rel="stylesheet" href="${path}/static/zTree_v3-master/css/zTreeStyle/zTreeStyle.css">
<link href="${path}/static/select2/select2.css" rel="stylesheet">
<script src="${path}/static/select2/select.js"></script>
<style type="text/css">
/*页头*/
.panel-heading{
padding: 0 16px;
}
hr{
margin:0;
}
.form-group{
margin-left:15px;
}
/*模态框表单*/
.formDiv{
width:100%;
height:30px;
}
.searchDiv{
margin-bottom:0px!important;
}
.control-label{
width:30%;
text-align: right;
padding-top:2px;
}
.input{
width:50%;
float:left;
}
/*按钮组*/
.btns{
margin-top:5px;
text-align: right;
margin-bottom: 5px;
}
/*模态框*/
.modal-header{
text-align: center;
}
.modal-title{
font-weight: bold;
}
.modelBtns{
text-align: center;
}
.modelBtn{
width: 74px;
margin-left: 38px;
margin-bottom: 16px;
}
.operBtns{
margin-left:10px;
}
.tableDiv{
margin-left:14px;
}
.shortInput{
width:80px;
}
.sexInput{
width:70px;
}
.warningLabel{
margin-left:102px;
}
.warningDiv{
margin-left: 134px;
margin-top: -20px;
}
.hidden-xs{
max-width: 250px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.form-group{
padding-top: 5px;
}
/*.dropdown {
width:50%!important;
}*/
</style>
</head>
<body>
<div style="width: 100%">
<input type="hidden" id="checks">
<input type="hidden" id="userNames">
<div class="row">
<div class="col-md-12">
<div class="panel-heading"><h4>基本管理/用户管理</h4></div>
<hr>
<form class="form-inline searchDiv" role="form">
<div class="">
<div class="form-group">
<label for="user_name">账号:</label>
<input type="text" class="form-control input-sm" id="user_name" maxlength="16"/>
</div>
<div class="form-group">
<label for="searchName">姓名:</label>
<input type="text" class="form-control input-sm" id="searchName" maxlength="16"/>
</div>
<div class="form-group">
<label for="user_position">用户职位:</label>
<select class=" form-control input-sm" style="width:106px" id="user_position">
<option value="">全部</option>
</select>
</div>
<div class="form-group">
<label>所属角色:</label>
<div class=" form-group form-inline">
<select class=" form-control input-sm" style="width:106px" id="roleId">
<option value="">全部</option>
</select>
</div>
</div>
<div class="form-group">
<label for="dept_id">所属部门:</label>
<div class=" form-group form-inline">
<select class="form-control input-sm" style="width:106px" id="dept_id">
<option value="">全部</option>
</select>
</div>
</div>
<div class="form-group">
<label for="effective">是否有效:</label>
<div class=" form-group form-inline">
<select class=" form-control input-sm" id="effective">
<option value="">全部</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</div>
</div>
<div class="form-group">
<button type="button" id="queryBtn" class="btn btn-primary btn-sm form-group">查询</button>
</div>
</div>
</form>
</div>
</div>
<div class="btns">
<pm:myPermissions permissions="/user/resetPassword">
<button type="button" onclick="resetPassword()" class="btn btn-info btn-sm">重置密码</button>
</pm:myPermissions>
<pm:myPermissions permissions="/user/add">
<button type="button" onclick="add()" class="btn btn-warning btn-sm">增加</button>
</pm:myPermissions>
<pm:myPermissions permissions="/user/importExcel">
<button type="button" class="btn btn-success btn-sm" onclick="importBtn()">导入Excel</button>
</pm:myPermissions>
<pm:myPermissions permissions="/user/export">
<button type="button" class="btn btn-primary btn-sm" onclick="exportExcel()">导出Excel</button>
</pm:myPermissions>
</div>
<div class="tableDiv">
<table id="bootstrapTable" class="table text-nowrap table-bordered"></table>
</div>
</div>
<!-- 模态框Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">用户信息</h4>
</div>
<div class="modal-body" style="height:auto">
<form id="updateaddform">
<div class="formDiv">
<label class="control-label left">账号:</label>
<input type="hidden" id="userId" name="userId">
<input type="text" class="form-control input input-sm" id="re_userName" name="userName" maxlength="15">
</div>
<div class="formDiv" id="passwordDiv">
<label class="control-label left">密码:</label>
<input type="password" class="form-control input input-sm" readonly onfocus="this.removeAttribute('readonly');" id="re_userPwd" name="userPwd" maxlength="15" autocomplete="new-password">
</div>
<div class="formDiv">
<label class="control-label left">姓名:</label>
<input type="text" class="form-control input input-sm" id="name" name="name" maxlength="15">
</div>
<div class="formDiv">
<label class="control-label left">性别:</label>
<select class="form-control input input-sm sexInput" id="re_userSex" name="userSex">
<option value="1" selected="selected">女</option>
<option value="0">男</option>
</select>
</div>
<div class="formDiv">
<label class="control-label left">年龄:</label>
<input type="number" class="form-control input input-sm sexInput" id="re_userAge" name="userAge" oninput="if(value.length>3)value=value.slice(0,3)">
</div>
<div class="formDiv">
<label class="control-label left">移动电话:</label>
<input type="text" class="form-control input input-sm" id="re_userTel" name="userTel" oninput="if(value.length>11)value=value.slice(0,11)">
</div>
<div class="formDiv">
<label class="control-label left">邮箱地址:</label>
<input type="text" class="form-control input input-sm" id="re_userEmail" name="userEmail" maxlength="25">
</div>
<div class="formDiv">
<label class="control-label left">职位:</label>
<input type="text" class="form-control input input-sm" id="re_userPosition" name="userPosition" maxlength="25">
</div>
<div class="formDiv">
<label class="control-label left">所属部门:</label>
<div style="width:100%">
<select class="selectpicker" multiple id="deptId" name="deptId" style="max-height:400px!important;overflow:scroll;" data-live-search="true" data-actions-box="true">
<c:forEach items="${depts}" var="dept">
<option value="${dept.deptId}" <c:if test="${deptId == dept.deptId}">selected</c:if>>${dept.deptName}</option>
</c:forEach>
</select>
<%-- <input id="txtTreeSelect1" type="text" onclick="showMenu1(); return false;"
class="form-control input-sm input" placeholder="所属科室"
name="parentId1"
data-id=""
readonly="readonly"
/>
<input type="hidden" id="deptIds" name="deptId">--%>
</div>
</div>
<%--<div id="menuContent1" class="menuContent" style="display:none;background: #f9f9f9;
position:static;z-index:10;width:288px;margin-left:170px">
<ul id="treeDemo" class="ztree" style="margin-top: 0; width: 178px;">
</ul>
</div>--%>
<div class="formDiv">
<label class="control-label left">所属角色:</label>
<select class="form-control input input-sm" id="re_roleId" name="roleId">
</select>
</div>
<div class="formDiv">
<label class="control-label left">有效否:</label>
<select class="form-control input input-sm shortInput" id="re_effective" name="effective">
<option value="1">是</option>
<option value="0">否</option>
</select>
</div>
<div class="formDiv">
<label class="control-label left">备注:</label>
<textarea id="re_remark" class="form-control input input-sm" name="remark" maxlength="50"></textarea>
</div>
</form>
</div>
<div class="modelBtns">
<button type="button" class="btn btn-primary btn-sm modelBtn" id="btn_submit">提交</button>
<button type="button" class="btn btn-default btn-sm modelBtn" onclick="clearForm()">清空</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<!-- 模态框Modal1 导入-->
<div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel1">导入信息</h4>
</div>
<div class="modal-body" style="height:380px">
<form method="POST" enctype="multipart/form-data"
id="form1">
<div class="formDiv">
<label class="control-label left">下载模板:</label>
<input class="btn btn-primary btn-sm" onclick="window.open('${path }/static/template/用户列表导入模板(脐血库).xls');" type="button" value="下载模板">
</div>
<div class="formDiv">
<label for="re_effective" class="control-label left">选择文件:</label>
<input id="upfile" type="file" name="upfile" calss="layui-btn">
</div>
<div class="modelBtns">
<input class="btn btn-primary btn-sm" type="button" value="批量导入Excel数据"
onclick="importExcel('/user/importExcel','用户')">
</div>
<div class="formDiv">
<label class="warningLabel">友情提醒:</label>
<div class="warningDiv">
<span style="color: red"></br>1、用户名不能为空,不能重复,内容最多16个字</span></br>
<span style="color: red">2、密码不能为空,内容最多20个字</span></br>
<span style="color: red">3、性别不能为空,内容最多9个字</span></br>
<span style="color: red">4、年龄必须为正整数0-150,可为空,内容最多3个字</span></br>
<span style="color: red">5、手机号可为空,内容最多11个字</span></br>
<span style="color: red">6、邮箱可为空,内容最多25个字</span></br>
<span style="color: red">7、角色名不能为空</span></br>
<span style="color: red">8、部门名不能为空,可多个,"@"符号隔开。</span></br>
<span style="color: red">9、是否有效不能为空,内容最多9个字</span></br>
<span style="color: red">10、备注可为空,内容最多50个字</span></br>
<span style="color: red">11、值包含逗号必须单元格设置为文本类型。</span></br>
</div>
</div>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<script>
$(function () {
$(".modal-dialog").draggable();//为模态对话框添加拖拽
$("#dept_id").select2()
})
</script>
<script src="${path}/static/zTree_v3-master/js/jquery.ztree.core.js"></script>
<script src="${path}/static/zTree_v3-master/js/jquery.ztree.excheck.js"></script>
<script src="${path}/static/js/user1.js?t=1"></script>
<%@ include file="/WEB-INF/jspf/importExcelJsp.jspf" %>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

@ -12,36 +12,30 @@ $(function(){
})
var flag = $("#flag").val();
if(flag != ''){
noticeManage();
menuClick($(".notice-menu").get(0),'notice');
}
})
//跳转到主页
function mainManage(){
$("#iframeDiv").hide();
$("#sectionDiv").show();
}
//跳转到通知
function noticeManage(){
$("#iframeDiv").show();
$("#sectionDiv").hide();
$("#iframe").prop("src",path+"/notice/pageUI");
}
//跳转到帮助文档
function helpDocumentManage(){
$("#iframeDiv").show();
$("#sectionDiv").hide();
$("#iframe").prop("src",path+"/main");
}
//跳转到修改密码
function updatePassword(){
$("#iframeDiv").show();
$("#sectionDiv").hide();
$("#iframe").prop("src",path+"/user/toUpdatePassword");
}
//跳转到联系我们
function callMeManage(){
$("#iframeDiv").show();
$("#sectionDiv").hide();
$("#iframe").prop("src",path+"/main");
function menuClick(el,type){
$(".home-sidebar-menu li").removeClass('active');
$(el).parent().addClass("active");
switch (type){
case 'notice':
$("#iframe").prop("src",path+"/notice/pageUI");
break;
case 'pwd':
$("#iframe").prop("src",path+"/user/toUpdatePassword");
break;
case 'help':
$("#iframe").prop("src",path+"/user/updatePersonal");
break;
case 'contact':
$("#iframe").prop("src",path+"/main");
}
if(type==='home'){
$("#iframeDiv").hide();
$("#sectionDiv").show();
}else {
$("#iframeDiv").show();
$("#sectionDiv").hide();
}
}

@ -32,8 +32,7 @@ $(function(){
});
$('body').keydown(function () {
if(event.keyCode == '13'){
function login(){
var userName = $("#userName").val();
var userPwd = $("#userPwd").val();
var rememberMeChecked = $("input[type='checkbox']").is(':checked');
@ -52,12 +51,17 @@ $('body').keydown(function () {
url : path+"/login",
data: {userName:userName, userPwd:userPwd,rememberMe:rememberMe},
success : function(data) {
//window.location.href = 'gatewayPage';
window.location.href = 'gatewayPage';
},
})
}
}
}
$('body').keydown(function () {
if(event.keyCode == '13'){
login();
}
})

@ -0,0 +1,256 @@
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
var ipad = Array(16), opad = Array(16);
for(var i = 0; i < 16; i++)
{
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
return core_md5(opad.concat(hash), 512 + 128);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str = "";
var mask = (1 << chrsz) - 1;
for(var i = 0; i < bin.length * 32; i += chrsz)
str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
return str;
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for(var i = 0; i < binarray.length * 4; i += 3)
{
var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
| (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
| ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
for(var j = 0; j < 4; j++)
{
if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}
return str;
}

@ -195,6 +195,7 @@ function edit(id){
var showRecord = data.showRecord;
var downloadRecord = data.downloadRecord;
var showPrint = data.showPrint;
var showWater = data.showWater;
if(showRecord == 1){
$("input[name='showRecordCheckbox']").prop("checked",true);
$("#showRecord").val("1");
@ -216,6 +217,13 @@ function edit(id){
$("input[name='showPrintCheckbox']").prop("checked",false);
$("#showPrint").val("0");
}
if(showWater == 1){
$("input[name='showWaterCheckbox']").prop("checked",true);
$("#showWater").val("1");
}else{
$("input[name='showWaterCheckbox']").prop("checked",false);
$("#showWater").val("0");
}
}
});
$('#myModal').modal('show')
@ -277,6 +285,12 @@ $('#btn_submit').click(function () {
}else{
$("#showPrint").val(0);
}
var showWater = $("input[name='showWaterCheckbox']").is(":checked");
if(showWater){
$("#showWater").val(1);
}else{
$("#showWater").val(0);
}
var roleName = $("#re_roleName").val();
if(roleName != ''){
var roleId = $("#re_roleId").val();

@ -25,7 +25,7 @@ var form = '';
offset : params.offset, // SQL语句起始索引
page : (params.offset / params.limit) + 1, //当前页码
userName:$("#user_name").val(),
userEmail:$("#user_email").val(),
userPosition:$("#user_position").val(),
name:$("#searchName").val(),
searchRoleId:$("#roleId").val(),
deptId : $("#dept_id option:selected").val(),
@ -77,10 +77,10 @@ var form = '';
title:'移动电话',
field:'userTel',
},
{
/*{
title:'邮箱地址',
field:'userEmail',
},
},*/
{
title:'用户职位',
field:'userPosition',
@ -388,7 +388,6 @@ function clearForm(){
}
//提交更改
$('#btn_submit').click(function () {
debugger
var reUserTel = $("#re_userTel").val();
if(reUserTel != ''){
if(!reUserTel.match(/^1[34578]\d{9}$/)){
@ -533,7 +532,7 @@ function exportExcel(){
message: "没有选中,您确定要按搜索栏条件导出?",
operate: function (reselt) {
if (reselt) {
var url = path+"/user/export?userName="+$("#user_name").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&name="+$("#searchName").val();
var url = path+"/user/export?userName="+$("#user_name").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&name="+$("#searchName").val()+"&userPosition="+$("#user_position").val();
window.location.href = url;
}
}

@ -0,0 +1,655 @@
var pageNumber=1;
//键盘回车查询
$(document).keyup(function(event){
if(event.keyCode ==13){
$("#queryBtn").trigger("click");
}
});
var form = '';
$(function(){
$('#myModal').modal('hide');
loadDept();
loadRole();
loadPosition();
//先销毁表格
$('#bootstrapTable').bootstrapTable({
//表格高度
height: getHeight(),
method : 'get',
url :path+ "/user/pageList",//请求路径
striped : true, //是否显示行间隔色
pageNumber : 1, //初始化加载第一页
pagination : true,//是否分页
sidePagination : 'server',//server:服务器端分页|client前端分页
pageSize : 10,//单页记录数
pageList : [ 5, 10, 20, 30 ],//可选择单页记录数
cache: false,
paginationPreText : '上一页',
paginationNextText : '下一页',
queryParams : function(params) {//上传服务器的参数
var temp = {//如果是在服务器端实现分页limit、offset这两个参数是必须的
limit : params.limit, // 每页显示数量
offset : params.offset, // SQL语句起始索引
page : (params.offset / params.limit) + 1, //当前页码
userName:$("#user_name").val(),
userPosition:$("#user_position").val(),
name:$("#searchName").val(),
searchRoleId:$("#roleId").val(),
deptId : $("#dept_id option:selected").val(),
effective : $("#effective option:selected").val(),
};
return temp;
},
columns : [{
checkbox:true
},
{
title:'序号',
field:'no',
formatter: function (value, row, index) {
//获取每页显示的数量
var pageSize = $('#bootstrapTable').bootstrapTable('getOptions').pageSize;
//获取当前是第几页
if(pageNumber == 1){
pageNumber = $('#bootstrapTable').bootstrapTable('getOptions').pageNumber;
}
//返回序号注意index是从0开始的所以要加上1
return pageSize * (pageNumber - 1) + index + 1;
}
},
{
title:'账号',
field:'userName',
},
{
title:'姓名',
field:'name',
},
{
title:'性别',
field:'userSex',
formatter: function (value, row, index) {
if(value ==1){
return '女'
}else if(value ==0){
return '男'
}
}
},
{
title:'年龄',
field:'userAge',
},
{
title:'移动电话',
field:'userTel',
},
{
title:'邮箱地址',
field:'userEmail',
},
{
title:'用户职位',
field:'userPosition',
},
{
title:'所属角色',
field:'roleName',
},
{
title:'所属部门',
field:'powerDepts',
formatter:paramsMatter,
},
{
title:'是否有效',
field:'effective',
formatter: function (value, row, index) {
if(value ==1){
return '是'
}else if(value ==0){
return '否'
}
}
},
{
title:'创建时间',
field:'createDate',
},
{
title:'创建人',
field:'creater',
},
{
title:'修改时间',
field:'updateDate',
},
{
title:'修改人',
field:'updater',
},
{
title:'操作',
field:'userId', formatter: function(value,row,index){
var editanddrop = '';
if(row.isUpdate == 1){
editanddrop += '<button type="button" onclick="edit('+row.userId+')" class="btn btn-info operBtns btn-sm" >编辑</button>';
}
if(row.isDelete == 1){
editanddrop += '<button type="button" onclick="drop('+row.userId+')" class="btn btn-danger operBtns btn-sm">删除</button>';
}
return editanddrop;
}
}
],
onLoadSuccess: function(){ //加载成功时执行
$(".page-list").show();
$("th").css({'text-align':'center','vertical-align':'middle'})
$("td").css({'text-align':'center','vertical-align':'middle'})
},
//监听分页点击事件
onPageChange: function(num, type) {
pageNumber = num;
},
//选中单个复选框
onCheck:function(row){
var checks = $("#checks").val();
var userNames = $("#userNames").val();
$("#checks").val(checks+=row.userId + ",");
$("#userNames").val(userNames+=row.userName + ",");
},
//取消单个复选框
onUncheck:function(row){
var checks = $("#checks").val();
var userNames = $("#userNames").val();
checks = checks.replace(row.userId + ",","");
userNames = userNames.replace(row.userName + ",","");
$("#checks").val(checks);
$("#userNames").val(userNames);
},
//全选
onCheckAll:function(rows){
$("#checks").val("");
$("#userNames").val("");
var checks = '';
var userNames = '';
for(var i=0;i<rows.length;i++)
{
checks += rows[i].userId + ","
userNames += rows[i].userName + ","
}
$("#checks").val(checks);
$("#userNames").val(userNames);
},
//全不选
onUncheckAll: function (rows) {
$("#checks").val("");
$("#userNames").val("");
}
});
});
//格式化科室列
function paramsMatter(value, row, index) {
value = '<p class="hidden-xs" title="'+value+'">'+value+'</p>'
return value;
}
//验证表单
//验证用户名不重复
$("#re_userName").blur(function(){
var userId = $("#userId").val();
var userName = $("#re_userName").val();
if(userId == '' && userName != ''){
$.ajax({
type:'get',
url:path+'/user/checkUserName?userName='+userName,
dataType:'json',
success:function(data){
if(data.code == 200){
toastr.warning(data.msg);
$("#re_userName").val("");
$("#re_userName").focus();
}
}
})
}
})
//验证密码长度不少于6位
$("#re_userPwd").blur(function(){
var password = $("#re_userPwd").val();
if(password != '' && password.length < 6){
toastr.warning("密码长度不能少于6位!");
}
})
/*//验证手机号
$("#re_userTel").blur(function(){
var tel = $("#re_userTel").val();
if(tel != ''){
if(!tel.match(/^1[34578]\d{9}$/)){
toastr.warning("移动电话格式不正确!");
$("#re_userTel").val("");
$("#re_userTel").focus();
}
}
})
//验证邮箱
$("#re_userEmail").blur(function(){
var email = $("#re_userEmail").val();
if(email != ''){
if(!email.match(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/)){
toastr.warning("邮箱地址格式不正确!");
$("#re_userEmail").val("");
$("#re_userEmail").focus();
}
}
})*/
//所属科室多选树形
function showMenu1() {
var cityObj = $('#txtTreeSelect1');
var cityOffset = cityObj.offset();
$("#menuContent1").css({ left: cityOffset.left + "px", top: cityOffset.top + cityObj.outerHeight() + "px" }).slideDown("fast");
$("body").bind("mousedown", onBodyDown1);
}
function onBodyDown1(event) {
if (!(event.target.id == "menuBtn" || event.target.id == "menuContent1" || $(event.target).parents("#menuContent1").length > 0)) {
hideMenu1();
}
}
function hideMenu1() {
$("#menuContent1").fadeOut("name");
$("body").unbind("mousedown", onBodyDown1);
}
//加载角色
function loadRole(){
$.ajax({
type: "GET",
url: path+"/role/selectList",
dataType: "json",
success: function(data){
var html = '';
$.each(data, function(commentIndex, comment){
html += '<option value="'+comment['roleId']+'">' + comment['roleName']
+ '</option>';
});
$('#re_roleId').append(html);
$('#roleId').append(html);
}
});
}
function loadDept(){
$.ajax({
type: "GET",
url: path+"/dept/selectList",
dataType: "json",
success: function(data){
var html = '';
for(var i = 0;i < data.extend.list.length;i++){
html += '<option value="'+data.extend.list[i].deptId+'">' + data.extend.list[i].deptName
+ '</option>';
}
$('#dept_id').append(html);
}
});
}
function loadPosition(){
$.ajax({
type: "GET",
url: path+"/user/loadPosition",
dataType: "json",
success: function(data){
var html = '';
for(var i = 0;i < data.extend.list.length;i++){
html += '<option value="'+data.extend.list[i].userPosition+'">' + data.extend.list[i].userPosition
+ '</option>';
}
$('#user_position').append(html);
}
});
}
//搜索
$('#queryBtn').click(function () {
$("#checks").val("");
refresh();
})
//编辑框回显
function edit(id){
$("#re_userName").prop("readOnly",true);
$("#passwordDiv").hide();
$("#myModalLabel").text("编辑");
$.ajax({
type: "post",
url: path+"/user/selectUser",
data:{
userId:id
},
dataType:"json",
success: function(data){
$("#userId").val(data.userId);
$("#re_userName").val(data.userName);
$("#name").val(data.name);
var deptIds = data.deptId;
var deptArr = deptIds.split(",");
$('#deptId').selectpicker('val', deptArr);
if(data.userSex == 1){
$("#re_userSex").val("1");
}else{
$("#re_userSex").val("0");
}
$("#re_userAge").val(data.userAge);
$("#re_userTel").val(data.userTel);
$("#re_userEmail").val(data.userEmail);
$("#re_userPosition").val(data.userPosition);
$("#txtTreeSelect1").val(data.powerDepts);
$("#deptIds").val(data.deptId);
$("#re_roleId").find("option[value='"+data.roleId+"']").attr("selected",true);
$("#re_effective").find("option[value='"+data.effective+"']").attr("selected",true);
$("#re_remark").val(data.remark);
/*loadTree();
var deptIds = data.deptId;
if(deptIds != ''){
var deptIdSplit =deptIds.split(",");
for (var i = 0;i < deptIdSplit.length;i++){
if(deptIdSplit[i] != ''){
//选中节点
treeSelectNode(deptIdSplit[i]);
}
}
}*/
}
});
$('#myModal').modal('show');
}
//删除
function drop(id) {
Common.confirm({
title: "提示",
message: "确定是否删除这条记录",
operate: function (reselt) {
if (reselt) {
$.ajax({
type: "post",
url: path + "/user/delete",
data: {
userId: id
},
async: false,
success: function (data) {
if ("success" == data.msg) {
toastr.success("删除成功!");
$("#checks").val("");
$("#userNames").val("");
backToPage();
} else {
toastr.error(data.msg);
}
},
error: function () {
window.confirm("删除失败");
}
})
}
}
})
}
//新增框
function add() {
$("#re_userName").prop("readOnly",false);
clearForm();
$("#userId").val("");
$("#deptIds").val("");
$('.selectpicker').selectpicker('val','1');
$('#myModal').modal('show');
$("#passwordDiv").show();
}
//清空
function clearForm(){
$("#updateaddform")[0].reset();
//loadTree();
$("#deptIds").val("");
}
//提交更改
$('#btn_submit').click(function () {
var reUserTel = $("#re_userTel").val();
if(reUserTel != ''){
if(!reUserTel.match(/^1[34578]\d{9}$/)){
toastr.warning("移动电话格式不正确!");
$("#re_userTel").val("");
$("#re_userTel").focus();
return false;
}
}
var reUserEmail = $("#re_userEmail").val();
if(reUserEmail != ''){
if(!reUserEmail.match(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/)){
toastr.warning("邮箱地址格式不正确!");
$("#re_userEmail").val("");
$("#re_userEmail").focus();
return false;
}
}
var userName = $("#re_userName").val();
var userPwd = $("#re_userPwd").val();
var deptIds = $("#deptIds").val();
var roleId = $("#re_roleId").val();
if(userName != ''){
if(userPwd != '' || $("#userId").val() != ''){
if(userPwd.length >= 6 || $("#userId").val() != ''){
if(deptIds != ''){
if(roleId != ''){
saveForm();
}else{
toastr.warning("所属角色不能为空,如未显示角色请到角色管理添加角色!");
}
}else{
toastr.warning("所属科室不能为空!");
}
}else{
toastr.warning("密码长度不能少于6位!");
}
}else{
toastr.warning("密码不能为空!");
}
}else{
toastr.warning("用户名不能为空!");
}
})
function saveForm(){
var userId = $("#userId").val();
if(userId != ''){
$.ajax({
type: "post",
url:path+ "/user/update",
data:$("#updateaddform").serialize(),
dataType:"json",
success: function(data){
if("success"==data.msg){
toastr.success("修改成功!");
$('#myModal').modal('hide');
backToPage();
}else{
toastr.warning(data.msg);
}
}
})
}else if(userId == ''){
$.ajax({
type: "post",
url:path+ "/user/add",
data:$("#updateaddform").serialize(),
dataType:"json",
success: function(data){
if("success"==data.msg){
toastr.success("添加成功!");
setTimeout(function(){
window.location.reload();
},500)
}else{
toastr.warning(data.msg);
}
}
})
}
}
//获取table的高度
function getHeight() {
return $(window).height() - 190;
}
//刷新表格
function refresh() {
$('#bootstrapTable').bootstrapTable('refresh',{
url : path+'/user/pageList'
})
}
//重置密码
function resetPassword(){
var checks = $("#checks").val();
var userNames = $("#userNames").val();
if(checks != ''){
var ids = checks.split(",");
var userName = userNames.split(",");
if(ids.length == 2){
Common.confirm({
title: "提示",
message: '确定是否重置用户名'+userName[0]+'的密码为000000',
operate: function (reselt) {
if (reselt) {
$.ajax({
type: 'post',
url: path + '/user/resetPassword',
data: {userId: ids[0]},
dataType: 'json',
success: function (data) {
if (data.code == 100) {
toastr.success("重置成功!");
$("#checks").val("");
$("#userNames").val("");
backToPage();
} else {
toastr.error("重置失败,请联系系统管理员!")
}
}
})
}
}
})
}else{
toastr.warning("以防重置密码误选择,只允许一次重置一个!")
}
}else{
toastr.warning("请至少选中一条记录!")
}
}
//导出excel功能
function exportExcel(){
var checks = $("#checks").val();
if(checks != '') {
checks = checks.substring(0, checks.length - 1);
var url = path+"/user/export1?userName="+$("#user_name").val()+"&userEmail="+$("#user_email").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&checks="+checks;
window.location.href = url;
}else{
Common.confirm({
title: "提示",
message: "没有选中,您确定要按搜索栏条件导出?",
operate: function (reselt) {
if (reselt) {
var url = path+"/user/export?userName="+$("#user_name").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&name="+$("#searchName").val()+"&userPosition="+$("#user_position").val();
window.location.href = url;
}
}
})
/* if(confirm('?')) {
var url = path+"/user/export?userName="+$("#user_name").val()+"&userEmail="+$("#user_email").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&checks="+checks;
window.location.href = url;
}*/
}
}
/**树操作*/
/*var setting = {
view: {
showIcon: true,//设置 zTree 是否显示节点的图标。默认值true
showLine: true//设置 zTree 是否显示节点之间的连线。默认值true
},
data: {
simpleData: {
chkStyle: "checkbox",
enable: true,
idKey: "id",
pIdKey: "parentId"
}
},
check:{
enable:true
},
callback: {
onCheck:onCheck
}
};
function onCheck(e, treeId, treeNode) {
var treeObj=$.fn.zTree.getZTreeObj("treeDemo"),
nodes=treeObj.getCheckedNodes(true);
var deptIds = '';
var deptNames = '';
//父节点必须一样
var parentId = new Array();
for (var i = 0; i < nodes.length; i++) {
if(nodes[i].level == 0){
var id = nodes[i].id;
parentId.push(id);
}
if(nodes[i].level == 1){
var deptId = nodes[i].selfId;
deptIds += deptId + ",";
deptNames += nodes[i].name + ",";
}
}
if(parentId.length > 1) {
toastr.warning("科室必须全部属于同一医院!");
treeObj.checkNode(treeNode,false,true);
}else{
if(deptIds != ''){
deptIds = deptIds.substring(0,deptIds.length-1);
deptNames = deptNames.substring(0,deptNames.length-1);
}
$("#txtTreeSelect1").val(deptNames);
$("#deptIds").val(deptIds);
}
}
var zNodes = [];
function loadTree() {
$.ajax({
type: "GET",
url: path + "/dept/selectDeptTreeByUserId",
dataType: "json",
async: false,
success: function (data) {
$.fn.zTree.init($("#treeDemo"), setting, data);
zTree = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = zTree.getNodes();
for (var i = 0; i < nodes.length; i++) { //设置节点展开
zTree.expandNode(nodes[i], true, false, true);
}
}
});
}
//加载树
$(function(){
$("#re_userName").val("");
$("#updateaddform")[0].reset();
loadTree();
})
//选中节点 selfId
function treeSelectNode(selfId){
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
var node = zTree.getNodeByParam("selfId",selfId);
if(node != null){
zTree.checkNode(node, true, true);
}
}*/
//监听关闭模态框刷新事件
$('#myModal1').on('hide.bs.modal', function () {
window.location.reload();
});

@ -1,6 +1,7 @@
package com.manage.dao;
import com.manage.entity.Power_Dept;
import com.manage.entity.Power_User;
import com.manage.vo.Power_DeptVo;
import org.apache.ibatis.annotations.Param;
@ -38,4 +39,7 @@ public interface Power_DeptMapper {
List<Power_DeptVo> selectDeptByDictId(@Param("dictId") Integer dictId,@Param("sysFlag")String sysFlag);
int SimpleInsert(List<Power_Dept> list);
public List<Power_Dept> checkDeptCode(String deptCode);
}

@ -28,8 +28,8 @@ public interface Power_UserMapper {
int getTotal(Power_UserVo powerUser);
List<Power_UserVo> selectList();
/*List<Power_UserVo> selectList();*/
List<Integer> selectDeptIdByDeptCode(String deptCode);
List<Power_UserVo> selectAllByDeptId(@Param("deptId") Integer deptId,@Param("userName")String userName);
List<Power_UserVo> selectAllBySysRole(@Param("dictId") Integer dictId);
List<Power_UserVo> selectAllByRoleIdAndDictId(@Param("roleId") Integer roleId,@Param("dictId") Integer dictId);
@ -64,4 +64,16 @@ public interface Power_UserMapper {
* id
* */
List<Power_User> selectUserIdsWithApprove(@Param("menuUrl")String menuUrl);
List<Power_User> loadPosition();
List<Power_UserVo> getUserInfo(@Param("userName") String userName,@Param("passWord")String passWord);
List<Power_UserVo> getUserInfoOne(@Param("userName") String userName,@Param("passWord")String passWord);
int insertUserInfo(Power_UserVo record);
Integer updateinsertUserInfo(Power_UserVo record);
}

@ -0,0 +1,185 @@
package com.manage.entity;
public class PowerUser {
private Integer userId;
private String userName;
private String name;
private String userPwd;
private Integer userSex;
private Integer userAge;
private String userTel;
private String userEmail;
private String userPosition;
private Integer roleId;
private String deptId;
private Integer effective;
private String createDate;
private String creater;
private String updateDate;
private String updater;
private String remark;
private String deptCode;
public String getDeptCode() {
return deptCode;
}
public void setDeptCode(String deptCode) {
this.deptCode = deptCode;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public Integer getUserSex() {
return userSex;
}
public void setUserSex(Integer userSex) {
this.userSex = userSex;
}
public Integer getUserAge() {
return userAge;
}
public void setUserAge(Integer userAge) {
this.userAge = userAge;
}
public String getUserTel() {
return userTel;
}
public void setUserTel(String userTel) {
this.userTel = userTel;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserPosition() {
return userPosition;
}
public void setUserPosition(String userPosition) {
this.userPosition = userPosition;
}
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public String getDeptId() {
return deptId;
}
public void setDeptId(String deptId) {
this.deptId = deptId;
}
public Integer getEffective() {
return effective;
}
public void setEffective(Integer effective) {
this.effective = effective;
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate;
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater;
}
public String getUpdateDate() {
return updateDate;
}
public void setUpdateDate(String updateDate) {
this.updateDate = updateDate;
}
public String getUpdater() {
return updater;
}
public void setUpdater(String updater) {
this.updater = updater;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

@ -12,6 +12,8 @@ public class Power_Role{
private Short showPrint;
private Short showWater;
private String remark;
private Integer effective;
@ -111,4 +113,12 @@ public class Power_Role{
public void setUpdater(String updater) {
this.updater = updater;
}
public Short getShowWater() {
return showWater;
}
public void setShowWater(Short showWater) {
this.showWater = showWater;
}
}

@ -26,6 +26,16 @@ public class Power_UserVo extends Power_User {
private String sex;
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
private String passWord;
private Integer isUpdate;
private Integer isDelete;
@ -40,12 +50,22 @@ public class Power_UserVo extends Power_User {
private Integer showPrint;
private Integer showWater;
private Set<String> menus;
private List<User_Dept_Menu> menuList;
private List<User> userList;
public Integer getShowWater() {
return showWater;
}
public void setShowWater(Integer showWater) {
this.showWater = showWater;
}
public Integer getShowPrint() {
return showPrint;
}

@ -293,6 +293,15 @@
power_dept.dict_id = #{dictId}
</if>
</select>
<select id="checkDeptCode" resultType="com.manage.entity.Power_Dept" parameterType="java.lang.String">
SELECT
dept_id,dept_code,dept_name
FROM
power_dept
WHERE
dept_Code = #{deptCode}
</select>
<!--批量插入-->
<insert id="SimpleInsert" parameterType="java.util.List">
@ -324,4 +333,6 @@
)
</foreach >
</insert>
</mapper>

@ -7,6 +7,7 @@
<result column="show_record" property="showRecord" jdbcType="SMALLINT" />
<result column="downLoad_record" property="downloadRecord" jdbcType="SMALLINT" />
<result column="show_print" property="showPrint" jdbcType="SMALLINT" />
<result column="show_water" property="showWater" jdbcType="SMALLINT" />
<result column="remark" property="remark" jdbcType="VARCHAR" />
<result column="effective" property="effective" jdbcType="INTEGER" />
<result column="create_date" property="createDate" jdbcType="CHAR" />
@ -15,7 +16,7 @@
<result column="updater" property="updater" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
role_id, role_name, show_record, downLoad_record, show_print, remark, effective,
role_id, role_name, show_record, downLoad_record, show_print,show_water, remark, effective,
create_date, creater, update_date, updater
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
@ -56,6 +57,9 @@
<if test="showPrint != null" >
show_print,
</if>
<if test="showWater != null" >
show_water,
</if>
<if test="remark != null" >
remark,
</if>
@ -126,6 +130,9 @@
<if test="showPrint != null" >
show_print = #{showPrint,jdbcType=SMALLINT},
</if>
<if test="showWater != null" >
show_water = #{showWater,jdbcType=SMALLINT},
</if>
<if test="remark != null" >
remark = #{remark,jdbcType=VARCHAR},
</if>

@ -789,7 +789,7 @@ on FIND_IN_SET(dict.deptIds,power_user.dept_id)
AND
dict_status = 1
GROUP BY
sys_flag
sys_flag,sort
UNION ALL
SELECT
sys_flag,sort
@ -815,7 +815,7 @@ on FIND_IN_SET(dict.deptIds,power_user.dept_id)
AND
dict_status = 1
GROUP BY
sys_flag
sys_flag,sort
</select>
<insert id="simpleInsertDict" parameterType="java.util.List">
INSERT INTO power_sys_dict(

@ -237,6 +237,7 @@
power_role.show_record,
power_role.downLoad_record,
power_role.show_print,
power_role.show_water,
user_name,
NAME,
user_sex,
@ -265,7 +266,7 @@
<!--2019-07-31 zengwenhe -->
<select id="checkUserName" resultMap="BaseResultMap" parameterType="java.lang.String">
SELECT
user_id,role_id
user_id,role_id,dept_id
FROM
power_user
WHERE
@ -323,6 +324,9 @@
<if test="userEmail!=null and userEmail!=''">
and power_user.user_email LIKE '%${userEmail}%'
</if>
<if test="userPosition!=null and userPosition!=''">
and power_user.user_position LIKE '%${userPosition}%'
</if>
<if test="effective!=null">
and power_user.effective=${effective}
</if>
@ -378,6 +382,9 @@
<if test="userEmail!=null and userEmail!=''">
and power_user.user_email LIKE '%${userEmail}%'
</if>
<if test="userPosition!=null and userPosition!=''">
and power_user.user_position LIKE '%${userPosition}%'
</if>
<if test="effective!=null">
and power_user.effective=${effective}
</if>
@ -637,6 +644,7 @@
)
</foreach >
</insert>
<!--根据用户名和备注获取用户信息-->
<select id="findPowerUserByUserNameAndRemark" resultMap="BaseResultMap">
select * from power_user where user_name = #{userName} and remark = #{remark}
@ -707,4 +715,31 @@
role_id = 0
OR role_id = - 100
</select>
<select id="loadPosition" resultType="com.manage.entity.Power_User">
select distinct user_position from power_user where user_position is not null and user_position != ''
</select>
<!--根据科室编码查科室id-->
<select id="selectDeptIdByDeptCode" resultType="java.lang.Integer">
select dept_id from power_dept where dept_code = #{deptCode} and effective = 1
</select>
<select id="getUserInfo" resultType="com.manage.vo.Power_UserVo">
select * from qfUserInfo where userName=#{userName}
</select>
<select id="getUserInfoOne" resultType="com.manage.vo.Power_UserVo">
select * from qfUserInfo where userName=#{userName} and passWord=#{passWord}
</select>
<update id="updateinsertUserInfo" parameterType="com.manage.entity.Power_User">
update qfUserInfo
<set>
passWord = #{passWord,jdbcType=VARCHAR},
</set>
where userName = #{userName,jdbcType=VARCHAR}
</update>
<insert id="insertUserInfo" parameterType="com.manage.vo.Power_UserVo">
insert into qfUserInfo (userName,passWord)
values (#{userName,jdbcType=VARCHAR},#{passWord,jdbcType=VARCHAR})
</insert>
</mapper>

@ -0,0 +1,8 @@
{
//--------广webService------------
"userName": "Body.CT_CareProvList.CT_CareProv.CTCP_JobNumber",
"name": "Body.CT_CareProvList.CT_CareProv.CTCP_Name",
"deptCode": "Body.CT_CareProvList.CT_CareProv.CTCP_DeptCode"
}

@ -47,9 +47,19 @@
<scope>compile</scope>
</dependency>
<!--日志处理-->
<!-- Web项目需添加 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
</dependency>
<!--用于与slf4j保持桥接-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!--系统使用率导包开始-->
<!--<dependency> &lt;!&ndash;工具类 小数格式化 可以改为其他&ndash;&gt;

@ -1,6 +1,8 @@
package com.manage.util;
import org.apache.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@ -19,7 +21,7 @@ import java.io.PrintStream;
* @Version: 1.0
*/
public class ExceptionPrintUtil {
private static Logger log = Logger.getLogger("errorMsg");
private static Logger log = LogManager.getLogger("errorLog");
public static void printException(Exception e){
//方法名
ByteArrayOutputStream baos = new ByteArrayOutputStream();

@ -0,0 +1,42 @@
package com.manage.util;
import com.alibaba.fastjson.JSON;
import java.io.File;
import java.io.IOException;
import java.util.Map;
public class FileUtils {
/**
* jar
*
* @return
*/
public static String currentPath() {
File dir = new File(".");
String currentpath = "";
try {
currentpath = dir.getCanonicalPath();
} catch (IOException e) {
e.printStackTrace();
}
return currentpath;
}
// /**
// * 获取静态文件中的内容
// * @param name
// * @return
// */
// public static Object getJsonByName(String name){
// //获取目录结构
// String path = FileUtils.currentPath();
// //解析json映射文件
// String json = JsonUtils.readJsonFile(path + "\\config\\json.properties");
// Map jsonMap = JSON.parseObject(json, Map.class);
// return jsonMap.get(name);
// }
}

@ -0,0 +1,44 @@
package com.manage.util;
import java.io.*;
/**
* json
*/
public class JsonUtils {
/**
* json
* @param fileNamejson
* @return
*/
public static String readJsonFile(String fileName) {
String jsonStr = "";
Reader reader=null;
FileReader fileReader=null;
try {
File jsonFile = new File(fileName);
fileReader = new FileReader(jsonFile);
reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}finally {
try {
reader.close();
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

@ -1,5 +1,5 @@
/**
*
*
*/
package com.manage.util;
@ -9,25 +9,25 @@ import java.util.Map;
/**
* <p>Title:Msg </p>
* <p>Description:common return class </p>
* <p>Company: </p>
* <p>Company: </p>
* @author hu
* @date
*/
public class Msg {
//state:100-success 200-fail
//state:100-success 200-fail
private int code;
//提示信息
private String msg;
//用户要返回给浏览器的数据
private Map<String,Object> extend=new HashMap<String,Object>();
public static Msg success(){
Msg result=new Msg();
result.setCode(100);
result.setMsg("success");
return result;
}
public static Msg fail(){
Msg result=new Msg();
result.setCode(200);
@ -35,6 +35,14 @@ public class Msg {
return result;
}
public static Msg failUser(){
Msg result=new Msg();
result.setCode(200);
result.setMsg("账号或密码错误");
return result;
}
public static Msg fail(String msg){
Msg result=new Msg();
result.setCode(200);
@ -46,7 +54,7 @@ public class Msg {
this.getExtend().put(key, value);
return this;
}
public int getCode() {
return code;
@ -71,5 +79,5 @@ public class Msg {
public void setExtend(Map<String, Object> extend) {
this.extend = extend;
}
}

@ -0,0 +1,194 @@
package com.manage.util;
import com.alibaba.fastjson.JSON;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.InputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class XmlUtils {
//定义解析器和文档对象
private SAXReader saxReader;
private Document document;
public Document getDocument() {
return document;
}
public XmlUtils(String path) {
//获取解析器
saxReader = new SAXReader();
try {
//获取文档对象
document = saxReader.read(path);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public XmlUtils(InputStream path) throws Exception{
//获取解析器
saxReader = new SAXReader();
//获取文档对象
document = saxReader.read(path);
}
// /**
// * 动态获取节点内容
// *
// * @return
// */
// public String getElement(String name) {
// //获取根节点
// Element root = document.getRootElement();
// Object directory = FileUtils.getJsonByName("directory");
// Element current = root;
// if (directory == null) {
// throw new RuntimeException("没有定义目录结构");
// }
// List<String> directoryArr = (List<String>) directory;
// for (String dire : directoryArr) {
// current = current.element(dire);
// }
// return current.element(name) == null ? "" : current.element(name).getText();
// }
/**
*
*
* @return
*/
public Element getElement(List<String> directory) {
//获取根节点
Element root = document.getRootElement();
Element current = root;
List<String> directoryArr = directory;
for (String dire : directoryArr) {
current = current.element(dire);
}
if (current == null) {
throw new RuntimeException("未找到对应节点");
}
return current;
}
/**
*
*/
public List<Element> getJsonByName(Element root) {
//获取目录结构
String path = FileUtils.currentPath();
//解析json映射文件
String json = JsonUtils.readJsonFile(path + "\\dataConfig\\homeQualitySet.json");
Map jsonMap = JSON.parseObject(json, Map.class);
//判断是否多条
List<String> basicArr = (List<String>) jsonMap.get("doubleBasic");
// List<String> directory = (List<String>) jsonMap.get("basicDirectory");
List<Element> elements = null;
// Element root = this.getElement(directory);
for (String basic : basicArr) {
elements = root.elements(basic);
if (elements != null && elements.size() > 0) {
break;
}
}
if (elements == null || elements.size() == 0) {
//只有一条
// List<String> rootDirectory = (List<String>) jsonMap.get("directory");
// root = this.getElement(rootDirectory);
elements = new ArrayList<>();
elements.add(root);
}
return elements;
}
/**
*
*
* @return
*/
public Element getMsgElement() {
//获取目录结构
String path = FileUtils.currentPath();
//解析json映射文件
String json = JsonUtils.readJsonFile(path + "\\dataConfig\\homeQualitySet.json");
Map jsonMap = JSON.parseObject(json, Map.class);
List<String> directory = (List<String>) jsonMap.get("directory");
Element root = this.getElement(directory);
return root;
}
/**
*
*
* @param name
* @return
*/
public String getElementText(String name) {
//定位根节点
Element root = document.getRootElement();
//根据名称定位节点
Element msg = root.element("Msg");
if (msg == null) {
throw new RuntimeException("没有" + "Msg" + "节点");
}
// Element patInfo = msg.element(Codes.PAT_INFO.getMessage());
// if(patInfo==null){
// throw new RuntimeException("没有"+Codes.PAT_INFO.getMessage()+"节点");
// }
Element element = msg.element(name);
if (element == null) {
return null;
}
//返回节点内容
return element.getText();
}
/**
* xmlmap
* @param xml
* @param map
* @return
*/
public static Map<String, String> parseXml2Map(String xml, Map<String, String> map) {
try {
SAXReader reader = new SAXReader();
Document doc = reader.read(new StringReader(xml));
Element root = doc.getRootElement();
String path = "";
if (map.containsKey(root.getName().trim())) {
path = map.get(root.getName().trim());
map.remove(root.getName().trim());
}
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
if (element.isTextOnly()) {
if (path.length() > 0) {
map.put(path + element.getName().trim(), element.getTextTrim());
} else {
map.put(element.getName().trim(), element.getTextTrim());
}
} else {
map.put(element.getName().trim(), path+ element.getName().trim() + ".");
parseXml2Map(element.asXML(), map);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}

@ -84,4 +84,6 @@ public interface Power_UserService {
* @Description
* */
public Power_UserVo findPowerUserByUserNameAndRemark(Power_User powerUser);
List<Power_User> loadPosition();
}

@ -755,14 +755,15 @@ public class PowerServiceImpl implements PowerService {
public List<PowerTree> getRolePowerTreeBySysFlag(String sysFlag,Power_User user) {
//根据系统标识查询科室id
List<Power_Sys_DictVo> dicts = new ArrayList<>();
if(user.getRoleId() == 0){
dicts = sysDictMapper.selectAllByAdmin();
}/*else if(user.getRoleId() == -100){
dicts = sysDictMapper.selectAllByHosRoleId(user.getUserId());
}*/else{
dicts = sysDictMapper.selectAllByHosRoleId(user.getUserId(),user.getRoleId(),null);
//dicts = sysDictMapper.selectAllByUserId(user.getUserId());
}
dicts = sysDictMapper.selectAllByAdmin();
// if(user.getRoleId() == 0){
// dicts = sysDictMapper.selectAllByAdmin();
// }/*else if(user.getRoleId() == -100){
// dicts = sysDictMapper.selectAllByHosRoleId(user.getUserId());
// }*/else{
// dicts = sysDictMapper.selectAllByHosRoleId(user.getUserId(),user.getRoleId(),null);
// //dicts = sysDictMapper.selectAllByUserId(user.getUserId());
// }
//获取用户集合
List<Power_Sys_DictVo> userList = new ArrayList<>();
List<PowerTree> treeList = new ArrayList<>();

@ -235,4 +235,9 @@ public class Power_UserServiceImpl implements Power_UserService {
return powerUserMapper.findPowerUserByUserNameAndRemark(powerUser);
}
@Override
public List<Power_User> loadPosition() {
return powerUserMapper.loadPosition();
}
}

Loading…
Cancel
Save