From c73812a09fb2c9ed5a06cb7b5785a9e6ff3a7494 Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Wed, 5 Aug 2020 17:26:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81(=E5=8F=AF=E8=83=BD=E5=87=BA=E9=94=99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- pom.xml | 9 +- power-admin/pom.xml | 5 + .../com/manage/controller/DeptController.java | 174 ++--- .../com/manage/controller/FontController.java | 420 ++++++------ .../controller/GlobalExceptionHandler.java | 51 ++ .../com/manage/controller/LogAopAction.java | 14 +- .../manage/controller/LoginController.java | 31 +- .../com/manage/controller/PageController.java | 101 +-- .../controller/PermissionsController.java | 51 -- .../controller/Power_LogController.java | 52 +- .../controller/Power_MenuController.java | 89 +-- .../Power_MenuManageController.java | 259 ++++--- .../controller/Power_NoticeController.java | 201 ++---- .../controller/Power_Sys_DictController.java | 309 ++++----- .../RoleAndUserPowerController.java | 49 +- .../com/manage/controller/RoleController.java | 171 +---- .../manage/controller/T_MenuController.java | 15 +- .../com/manage/controller/UserController.java | 176 ++--- .../manage/interceptor/LoginInterceptor.java | 43 +- .../com/manage/interfaces/cache/Cache.java | 65 -- .../manage/interfaces/cache/CacheManager.java | 205 ------ .../webservice/PowerWebService.java | 3 - .../webservice/RoleAndUserTreeWebService.java | 14 - .../webservice/impl/PowerWebServiceImpl.java | 39 -- .../src/main/java/com/manage/test.java | 56 -- .../src/main/resources/log4j.properties | 18 + .../src/main/test/com/manage/MapperTest.java | 57 -- .../main/test/com/manage/WebServiceTest.java | 48 -- .../webapp/WEB-INF/views/deptDir/blood.jsp | 225 ------- .../webapp/WEB-INF/views/dictDir/dict1.jsp | 210 ------ .../webapp/WEB-INF/views/loginDir/login1.jsp | 82 --- .../WEB-INF/views/loginDir/login174.jsp | 83 --- .../views/otherManage/backupDatabase.jsp | 11 +- .../webapp/WEB-INF/views/roleDir/role.jsp | 219 ------ .../webapp/WEB-INF/views/userDir/user1.jsp | 316 --------- power-admin/src/main/webapp/WEB-INF/web.xml | 16 +- .../main/webapp/doc/视图power_user_dict.sql | 14 + .../src/main/webapp/static/js/blood.js | 407 ----------- power-admin/src/main/webapp/static/js/role.js | 357 ---------- power-admin/src/main/webapp/static/js/user.js | 4 +- .../src/main/webapp/static/js/user1.js | 632 ------------------ .../用户列表导入模板(脐血库).xls | Bin 19456 -> 0 bytes .../template/角色列表导入模板.xls | Bin 19456 -> 0 bytes .../template/部门列表导入模板.xls | Bin 18944 -> 0 bytes .../manage/controller/DeptController.class | Bin 15328 -> 13807 bytes .../manage/controller/FontController.class | Bin 14235 -> 13775 bytes .../com/manage/controller/LogAopAction.class | Bin 8072 -> 7952 bytes .../manage/controller/LoginController.class | Bin 8857 -> 8676 bytes .../manage/controller/PageController.class | Bin 9618 -> 8389 bytes .../controller/PermissionsController.class | Bin 4741 -> 4741 bytes .../controller/Power_LogController.class | Bin 7177 -> 7035 bytes .../controller/Power_MenuController.class | Bin 2207 -> 2081 bytes .../Power_MenuManageController.class | Bin 8535 -> 8310 bytes .../controller/Power_NoticeController.class | Bin 9702 -> 8210 bytes .../controller/Power_Sys_DictController.class | Bin 11564 -> 10682 bytes .../RoleAndUserPowerController.class | Bin 7603 -> 7606 bytes .../manage/controller/RoleController.class | Bin 12943 -> 10288 bytes .../manage/controller/T_MenuController.class | Bin 1712 -> 1546 bytes .../manage/controller/UserController.class | Bin 14464 -> 12896 bytes .../manage/interceptor/LoginInterceptor.class | Bin 5724 -> 6053 bytes .../com/manage/interfaces/cache/Cache.class | Bin 1737 -> 0 bytes .../interfaces/cache/CacheManager.class | Bin 6204 -> 0 bytes .../webservice/PowerWebService.class | Bin 480 -> 426 bytes .../RoleAndUserTreeWebService.class | Bin 381 -> 0 bytes .../webservice/impl/PowerWebServiceImpl.class | Bin 5703 -> 3759 bytes .../target/classes/com/manage/test.class | Bin 2386 -> 0 bytes power-api/pom.xml | 43 -- power-foundaton/pom.xml | 19 +- .../com/manage/util/ExceptionPrintUtil.java | 36 + .../src/main/java/com/manage/App.java | 13 - .../ImportExcel/ImportExcelJudgeMethod.java | 26 +- .../service/ImportExcel/ImportExcelUtil.java | 36 +- .../manage/service/Power_Sys_DictService.java | 7 - .../manage/service/cache/CacheManager.java | 182 +---- .../manage/service/ipml/LogServiceImpl.java | 4 +- .../manage/service/ipml/PageServiceImpl.java | 26 +- .../manage/service/ipml/PowerServiceImpl.java | 244 ++++--- .../service/ipml/Power_DeptServiceImpl.java | 46 +- .../service/ipml/Power_MenuServiceImpl.java | 3 +- .../service/ipml/Power_NoticeServiceImpl.java | 53 +- .../service/ipml/Power_RoleServiceImpl.java | 66 +- .../ipml/Power_Sys_DictServiceImpl.java | 33 +- .../service/ipml/Power_UserServiceImpl.java | 77 +-- .../service/ipml/T_MenuServiceImpl.java | 2 +- .../manage/service/webSocket/WebServer.java | 20 - .../com/manage/service/webSocket/WsPool.java | 24 - .../target/classes/com/manage/App.class | Bin 535 -> 0 bytes .../ImportExcel/ImportExcelJudgeMethod.class | Bin 12450 -> 12519 bytes .../service/ImportExcel/ImportExcelUtil.class | Bin 12417 -> 12304 bytes .../service/Power_Sys_DictService.class | Bin 1673 -> 1562 bytes .../manage/service/cache/CacheManager.class | Bin 7470 -> 3639 bytes .../manage/service/ipml/LogServiceImpl.class | Bin 4326 -> 4429 bytes .../manage/service/ipml/PageServiceImpl.class | Bin 8734 -> 5885 bytes .../service/ipml/PowerServiceImpl.class | Bin 28294 -> 27721 bytes .../service/ipml/Power_DeptServiceImpl.class | Bin 9447 -> 9459 bytes .../service/ipml/Power_MenuServiceImpl.class | Bin 5525 -> 5426 bytes .../ipml/Power_NoticeServiceImpl.class | Bin 11422 -> 11149 bytes .../service/ipml/Power_RoleServiceImpl.class | Bin 8331 -> 8206 bytes .../ipml/Power_Sys_DictServiceImpl.class | Bin 7957 -> 7415 bytes .../service/ipml/Power_UserServiceImpl.class | Bin 10316 -> 10167 bytes .../manage/service/webSocket/WebServer.class | Bin 2729 -> 2209 bytes .../com/manage/service/webSocket/WsPool.class | Bin 3355 -> 2643 bytes power_web/pom.xml | 27 - power_web/src/main/webapp/WEB-INF/web.xml | 7 - power_web/src/main/webapp/index.jsp | 5 - 106 files changed, 1228 insertions(+), 5076 deletions(-) create mode 100644 power-admin/src/main/java/com/manage/controller/GlobalExceptionHandler.java delete mode 100644 power-admin/src/main/java/com/manage/interfaces/cache/Cache.java delete mode 100644 power-admin/src/main/java/com/manage/interfaces/cache/CacheManager.java delete mode 100644 power-admin/src/main/java/com/manage/interfaces/webservice/RoleAndUserTreeWebService.java delete mode 100644 power-admin/src/main/java/com/manage/test.java create mode 100644 power-admin/src/main/resources/log4j.properties delete mode 100644 power-admin/src/main/test/com/manage/MapperTest.java delete mode 100644 power-admin/src/main/test/com/manage/WebServiceTest.java delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/deptDir/blood.jsp delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/dictDir/dict1.jsp delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/loginDir/login1.jsp delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/loginDir/login174.jsp delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/roleDir/role.jsp delete mode 100644 power-admin/src/main/webapp/WEB-INF/views/userDir/user1.jsp create mode 100644 power-admin/src/main/webapp/doc/视图power_user_dict.sql delete mode 100644 power-admin/src/main/webapp/static/js/blood.js delete mode 100644 power-admin/src/main/webapp/static/js/role.js delete mode 100644 power-admin/src/main/webapp/static/js/user1.js delete mode 100644 power-admin/src/main/webapp/static/template/用户列表导入模板(脐血库).xls delete mode 100644 power-admin/src/main/webapp/static/template/角色列表导入模板.xls delete mode 100644 power-admin/src/main/webapp/static/template/部门列表导入模板.xls delete mode 100644 power-admin/target/classes/com/manage/interfaces/cache/Cache.class delete mode 100644 power-admin/target/classes/com/manage/interfaces/cache/CacheManager.class delete mode 100644 power-admin/target/classes/com/manage/interfaces/webservice/RoleAndUserTreeWebService.class delete mode 100644 power-admin/target/classes/com/manage/test.class delete mode 100644 power-api/pom.xml create mode 100644 power-foundaton/src/main/java/com/manage/util/ExceptionPrintUtil.java delete mode 100644 power-service/src/main/java/com/manage/App.java delete mode 100644 power-service/target/classes/com/manage/App.class delete mode 100644 power_web/pom.xml delete mode 100644 power_web/src/main/webapp/WEB-INF/web.xml delete mode 100644 power_web/src/main/webapp/index.jsp diff --git a/.gitignore b/.gitignore index 3f7ceb3..7a45b09 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -/target/ +target /.idea/ -power.iml \ No newline at end of file +*.iml \ No newline at end of file diff --git a/pom.xml b/pom.xml index 7b498fb..4830128 100644 --- a/pom.xml +++ b/pom.xml @@ -9,10 +9,8 @@ pom 1.0-SNAPSHOT - power-api power-dao power-service - power_web power-admin power-foundaton @@ -34,6 +32,7 @@ 3.4.6 1.3.2 5.1.32 + 1.6.4 2.9.4 1.0.9 4.3.5 @@ -101,6 +100,12 @@ mybatis ${mybatis.version} + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + com.alibaba diff --git a/power-admin/pom.xml b/power-admin/pom.xml index 52f2665..64d4525 100644 --- a/power-admin/pom.xml +++ b/power-admin/pom.xml @@ -122,6 +122,11 @@ commons-fileupload commons-fileupload + + + org.slf4j + slf4j-log4j12 + power diff --git a/power-admin/src/main/java/com/manage/controller/DeptController.java b/power-admin/src/main/java/com/manage/controller/DeptController.java index 7d7ff0d..bbf032e 100644 --- a/power-admin/src/main/java/com/manage/controller/DeptController.java +++ b/power-admin/src/main/java/com/manage/controller/DeptController.java @@ -8,6 +8,7 @@ import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.ImportExcel.ImportExcelUtil; import com.manage.service.Power_DeptService; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; import com.manage.util.PageHelper; import com.manage.vo.ImportExcelEntity; @@ -31,7 +32,6 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.OutputStream; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.*; @@ -67,6 +67,7 @@ public class DeptController { pageHelper.setRows(list); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); e.printStackTrace(); CacheManager.addExcCount("exc"); } @@ -87,21 +88,6 @@ public class DeptController { return "deptDir/dept"; } - /** - * @Date 2020-01-02 - * @Author zwh - * @Description 查看部门返回页面 - * */ - @OptionalLog(module = "查看",methods = "部门管理页面") - @RequiresPermissions(value="/dept/bloodUI") - @RequestMapping("/bloodUI") - public String bloodUI(HttpServletRequest request, Model model){ - Power_User powerUser1 =(Power_User) request.getSession().getAttribute("CURRENT_USER"); - model.addAttribute("user",powerUser1); - CacheManager.addExcCount("noExc"); - return "deptDir/blood"; - } - /** * @Date 2019-4-22 * @Author ly @@ -109,16 +95,10 @@ public class DeptController { * */ @RequestMapping("/selectList") @ResponseBody - public Msg selectList(HttpServletRequest request) { - try { - List deptList = powerDeptService.selectDeptByUserId(request); - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",deptList); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg selectList(HttpServletRequest request) throws Exception{ + List deptList = powerDeptService.selectDeptByUserId(request); + CacheManager.addExcCount("noExc"); + return Msg.success().add("list",deptList); } /** * @Date 2019-4-30 @@ -129,10 +109,11 @@ public class DeptController { @ResponseBody public Power_Dept selectDept(Integer deptId) { try { - Power_Dept power_dept = powerDeptService.selectByPrimaryKey(deptId); + Power_Dept powerDept = powerDeptService.selectByPrimaryKey(deptId); CacheManager.addExcCount("noExc"); - return power_dept; + return powerDept; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -148,8 +129,8 @@ public class DeptController { @ResponseBody public Msg checkDeptName(String deptName,Integer dictId) { try { - List power_dept = powerDeptService.checkDeptName(deptName,dictId); - if(power_dept != null && !power_dept.isEmpty()){ + List powerDept = powerDeptService.checkDeptName(deptName,dictId); + if(powerDept != null && !powerDept.isEmpty()){ return Msg.fail("科室名已存在"); }else{ CacheManager.addExcCount("noExc"); @@ -177,8 +158,8 @@ public class DeptController { Integer id = 1; Integer parentId = null; if(null != list && !list.isEmpty()){ - for (int i = 0;i < list.size();i++){ - hospitalMap.put(list.get(i).getDictId(),list.get(i).getHospitalName()); + for (Power_DeptVo powerDeptVo : list) { + hospitalMap.put(powerDeptVo.getDictId(), powerDeptVo.getHospitalName()); } for (Map.Entry entry : hospitalMap.entrySet()) { //医院层 @@ -191,12 +172,12 @@ public class DeptController { parentId = id; id++; //科室层 - for (int i = 0;i < list.size();i++){ - if(entry.getKey().equals(list.get(i).getDictId())){ + for (Power_DeptVo powerDeptVo : list) { + if (entry.getKey().equals(powerDeptVo.getDictId())) { PowerTree tree2 = new PowerTree(); tree2.setId(id); - tree2.setSelfId(list.get(i).getDeptId()); - tree2.setName(list.get(i).getDeptName()); + tree2.setSelfId(powerDeptVo.getDeptId()); + tree2.setName(powerDeptVo.getDeptName()); tree2.setParentId(parentId); treeList.add(tree2); id++; @@ -209,6 +190,7 @@ public class DeptController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -223,22 +205,15 @@ public class DeptController { @RequiresPermissions(value="/dept/add") @RequestMapping("/add") @ResponseBody - public Msg add(Power_Dept powerDept){ - try { - List power_dept = powerDeptService.checkDeptName(powerDept.getDeptName(),powerDept.getDictId()); - if(null == power_dept || power_dept.isEmpty()){ - powerDeptService.insertSelective(powerDept); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }else{ - return Msg.fail("科室名已存在!"); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("添加出错了,请联系系统管理员!"); + public Msg add(Power_Dept powerDept) throws Exception{ + List powerDeptList = powerDeptService.checkDeptName(powerDept.getDeptName(),powerDept.getDictId()); + if(null == powerDeptList || powerDeptList.isEmpty()){ + powerDeptService.insertSelective(powerDept); + CacheManager.addExcCount("noExc"); + return Msg.success(); + }else{ + return Msg.fail("科室名已存在!"); } - } /** * @Date 2019-4-25 @@ -249,23 +224,15 @@ public class DeptController { @RequiresPermissions(value="/dept/update") @RequestMapping("/update") @ResponseBody - public Msg update(Power_Dept powerDept,HttpServletRequest request){ - try { - List power_dept = powerDeptService.checkDeptName(powerDept.getDeptName(),powerDept.getDictId()); - if(null != power_dept && !power_dept.isEmpty() && !power_dept.get(0).getDeptId().equals(powerDept.getDeptId())){ - return Msg.fail("科室名已存在!"); - }else{ - powerDeptService.updateByPrimaryKeySelective(powerDept,request); - CacheManager.addExcCount("noExc"); - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("修改出错了,请联系系统管理员!"); + public Msg update(Power_Dept powerDept,HttpServletRequest request) throws Exception{ + List powerDeptList = powerDeptService.checkDeptName(powerDept.getDeptName(),powerDept.getDictId()); + if(null != powerDeptList && !powerDeptList.isEmpty() && !powerDeptList.get(0).getDeptId().equals(powerDept.getDeptId())){ + return Msg.fail("科室名已存在!"); + }else{ + powerDeptService.updateByPrimaryKeySelective(powerDept,request); + CacheManager.addExcCount("noExc"); + return Msg.success(); } - - } /** * @Date 2019-4-25 @@ -276,16 +243,10 @@ public class DeptController { @RequiresPermissions(value="/dept/delete") @RequestMapping("/delete") @ResponseBody - public Msg delete(Integer deptId){ - try { - CacheManager.addExcCount("noExc"); - powerDeptService.deleteByPrimaryKey(deptId); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg delete(Integer deptId) throws Exception{ + CacheManager.addExcCount("noExc"); + powerDeptService.deleteByPrimaryKey(deptId); + return Msg.success(); } /** * @Date 2019-4-29 @@ -300,27 +261,12 @@ public class DeptController { powerDeptService.export(powerDept,request,response); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } } - /** - * @Date 2019-4-29 - * @Author ly - * @Description 导出Excel - * */ - @OptionalLog(module = "导出excel",methods = "部门管理") - @RequiresPermissions(value="/dept/exportBlood") - @RequestMapping("/exportBlood") - public void exportBlood(Power_DeptVo powerDept,HttpServletRequest request,HttpServletResponse response){ - try { - powerDeptService.exportBlood(powerDept,request,response); - CacheManager.addExcCount("noExc"); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - } - } + /** * @Date 2019-4-22 * @Author ly @@ -334,13 +280,13 @@ public class DeptController { CacheManager.addExcCount("noExc"); return deptList; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } - /** * @Date 2019-08-06 * @Author zengwenhe @@ -348,16 +294,10 @@ public class DeptController { * */ @RequestMapping("/selectDeptByDictId") @ResponseBody - public Msg selectDeptByDictId(Integer dictId){ - try { - List depts = powerDeptService.selectDeptByDictId(dictId,null); - CacheManager.addExcCount("noExc"); - return Msg.success().add("depts",depts); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("查询失败,请联系系统管理员!"); - } + public Msg selectDeptByDictId(Integer dictId) throws Exception{ + List depts = powerDeptService.selectDeptByDictId(dictId,null); + CacheManager.addExcCount("noExc"); + return Msg.success().add("depts",depts); } /** @@ -370,7 +310,6 @@ public class DeptController { @RequestMapping(value="/importExcel",method = {RequestMethod.POST}) @ResponseBody public ResponseEntity importExcel(HttpServletRequest request){ - OutputStream os = null; HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(new MediaType("text","html", Charset.forName("UTF-8"))); try { @@ -382,16 +321,16 @@ public class DeptController { String[] fieldNames = {"deptName","dictId","effective","remark",}; //判断集中类中的方法名 String[] judgeMethods = {"judgeDeptName","judgeDictId","convertEffective","judgeRemark"}; - Power_Dept power_dept = new Power_Dept(); + Power_Dept powerDept = new Power_Dept(); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); - power_dept.setCreater(user.getUserName()); - power_dept.setUpdater(user.getUserName()); - power_dept.setCreateDate(fmt.format(new Date())); - power_dept.setUpdateDate(fmt.format(new Date())); - power_dept.setDeptCode(""); + powerDept.setCreater(user.getUserName()); + powerDept.setUpdater(user.getUserName()); + powerDept.setCreateDate(fmt.format(new Date())); + powerDept.setUpdateDate(fmt.format(new Date())); + powerDept.setDeptCode(""); //实例化 - ImportExcelUtil.newInstance("power_DeptMapper",power_dept, Power_Dept.class); + ImportExcelUtil.newInstance("power_DeptMapper",powerDept, Power_Dept.class); //导入excel的操作 ImportExcelEntity excelEntity = ImportExcelUtil.fileImport(multipartFile,fieldNames,judgeMethods); CacheManager.addExcCount("noExc"); @@ -409,17 +348,10 @@ public class DeptController { } }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); //抛异常 return new ResponseEntity(e.getMessage(), responseHeaders, HttpStatus.OK); - }finally { - if(os != null){ - try { - os.close(); - }catch (Exception e){ - e.printStackTrace(); - } - } } } } diff --git a/power-admin/src/main/java/com/manage/controller/FontController.java b/power-admin/src/main/java/com/manage/controller/FontController.java index 8d80898..046c51d 100644 --- a/power-admin/src/main/java/com/manage/controller/FontController.java +++ b/power-admin/src/main/java/com/manage/controller/FontController.java @@ -11,7 +11,9 @@ 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; @@ -76,37 +78,30 @@ public class FontController { */ @RequestMapping(value = "getMenusByUserIdAndSysFlag",method = RequestMethod.GET) @ResponseBody - public Msg getMenusByUserIdAndSysFlag(String userName,String sysFlag,Integer userId,Integer roleId,Integer sysId,Integer hospitalId){ - try { - if(StringUtils.isNotBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId == null && hospitalId == null){ - return Msg.fail("查询复杂,数据大,暂不支持只带sysFlag参数查询"); - } - if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId != null && hospitalId == null){ - return Msg.fail("查询复杂,数据大,暂不支持只带sysId参数查询"); - } - if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId == null && hospitalId != null){ - return Msg.fail("查询复杂,数据大,暂不支持只带hospitalId参数查询"); - } - if(StringUtils.isNotBlank(userName)){ - List power_users = userMapper.checkUserName(userName); - if(null != power_users && !power_users.isEmpty()){ - if(power_users.get(0).getRoleId().equals(0) || power_users.get(0).getRoleId().equals(-100)){ - roleId = power_users.get(0).getRoleId(); - } + public Msg getMenusByUserIdAndSysFlag(String userName,String sysFlag,Integer userId,Integer roleId,Integer sysId,Integer hospitalId) throws Exception{ + if(StringUtils.isNotBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId == null && hospitalId == null){ + return Msg.fail("查询复杂,数据大,暂不支持只带sysFlag参数查询"); + } + if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId != null && hospitalId == null){ + return Msg.fail("查询复杂,数据大,暂不支持只带sysId参数查询"); + } + if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId == null && hospitalId != null){ + return Msg.fail("查询复杂,数据大,暂不支持只带hospitalId参数查询"); + } + if(StringUtils.isNotBlank(userName)){ + List powerUsers = userMapper.checkUserName(userName); + if(null != powerUsers && !powerUsers.isEmpty()){ + if(powerUsers.get(0).getRoleId().equals(0) || powerUsers.get(0).getRoleId().equals(-100)){ + roleId = powerUsers.get(0).getRoleId(); } } - - List list = userDeptMenuService.selectAll(userName, sysFlag, userId, roleId, sysId, hospitalId); - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); } + List list = userDeptMenuService.selectAll(userName, sysFlag, userId, roleId, sysId, hospitalId); + CacheManager.addExcCount("noExc"); + return Msg.success().add("list",list); } /** @@ -124,16 +119,10 @@ public class FontController { */ @RequestMapping(value = "selectAllByUserIdOrRoleIdAndSysIdOrSysFlag") @ResponseBody - public Msg selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(Integer userId,Integer roleId,Integer sysId,String sysFlag){ - try { - List list = powerNoticeMapper.selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(userId, roleId, sysId, sysFlag); - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(Integer userId,Integer roleId,Integer sysId,String sysFlag) throws Exception{ + List list = powerNoticeMapper.selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(userId, roleId, sysId, sysFlag); + CacheManager.addExcCount("noExc"); + return Msg.success().add("list",list); } /** @@ -165,6 +154,7 @@ public class FontController { return null; } }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -199,6 +189,7 @@ public class FontController { return null; } }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -220,29 +211,23 @@ public class FontController { */ @RequestMapping(value = "getUserList") @ResponseBody - public Msg getUserList(String userName){ - try { - List list = new ArrayList<>(); - if(StringUtils.isNoneBlank(userName)){ - List users = userMapper.checkUserName(userName); - if(null != users && !users.isEmpty()){ - Integer roleId = users.get(0).getRoleId(); - if(roleId == 0){ - list = userMapper.selectUserIdAndUserNameList(null); - }else{ - list = userMapper.selectUserIdAndUserNameList(users.get(0).getUserId()); - } + public Msg getUserList(String userName) throws Exception{ + List list = new ArrayList<>(); + if(StringUtils.isNoneBlank(userName)){ + List users = userMapper.checkUserName(userName); + if(null != users && !users.isEmpty()){ + Integer roleId = users.get(0).getRoleId(); + if(roleId == 0){ + list = userMapper.selectUserIdAndUserNameList(null); + }else{ + list = userMapper.selectUserIdAndUserNameList(users.get(0).getUserId()); } - }else{ - return Msg.fail("用户名不能为空"); } - CacheManager.addExcCount("noExc"); - return Msg.success().add("userList",list); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return null; + }else{ + return Msg.fail("用户名不能为空"); } + CacheManager.addExcCount("noExc"); + return Msg.success().add("userList",list); } /** @@ -260,22 +245,21 @@ public class FontController { */ @RequestMapping(value = "checkToken",method = RequestMethod.POST) @ResponseBody - public Msg checkToken(String token){ - try { - if(StringUtils.isNotBlank(token) && StringUtils.isNotBlank(token) ) { - token = MD5.JM(Base64.decode(token)); - Cache cache = CacheManager.getCacheInfo(token); - if (cache == null) { - return Msg.fail("token已过期或不存在"); - } - }else{ - return Msg.fail("token不能为空"); + public Msg checkToken(String token) throws Exception{ + if(StringUtils.isNotBlank(token) && StringUtils.isNotBlank(token) ) { + token = MD5.JM(Base64.decode(token)); + Cache cache = CacheManager.getCacheInfo(token); + if (cache == null) { + return Msg.fail("token已过期或不存在"); } - return Msg.success(); - }catch(Exception e){ - e.printStackTrace(); - return Msg.fail(e.getMessage()); + //更新过期时间 + Power_UserVo user = (Power_UserVo) cache.getValue(); + String date = String.valueOf(DateUtils.getDate()); + CacheManager.putCache(token,new Cache(date,user,TOKEN_EXPIRE_TIME)); + }else{ + return Msg.fail("token不能为空"); } + return Msg.success(); } /** @@ -293,55 +277,49 @@ public class FontController { */ @RequestMapping(value = "getUserByToken",method = RequestMethod.POST) @ResponseBody - public Msg getMenuListByToken(String token,String sysFlag){ - try { - if(StringUtils.isBlank(token)){ - return Msg.fail("token不能为空!"); - } - if(StringUtils.isBlank(sysFlag)){ - return Msg.fail("sysFlag不能为空!"); - } - token = MD5.JM(Base64.decode(token)); - Cache cacheInfo = CacheManager.getCacheInfo(token); - Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); - if(null != user){ - List menuList = user.getMenuList(); - List list = new ArrayList<>(); - Set menus = new TreeSet<>(); - if(null != menuList && !menuList.isEmpty()){ - for (int i = 0; i < menuList.size(); i++) { - String menuSysFlag = menuList.get(i).getSysFlag(); - if(StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)){ - list.add(menuList.get(i)); - if(StringUtils.isNotBlank(menuList.get(i).getMethod())){ - menus.add(menuList.get(i).getMenuUrl()); - } + public Msg getMenuListByToken(String token,String sysFlag) throws Exception{ + if(StringUtils.isBlank(token)){ + return Msg.fail("token不能为空!"); + } + if(StringUtils.isBlank(sysFlag)){ + return Msg.fail("sysFlag不能为空!"); + } + token = MD5.JM(Base64.decode(token)); + Cache cacheInfo = CacheManager.getCacheInfo(token); + Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); + if(null != user){ + List menuList = user.getMenuList(); + List list = new ArrayList<>(); + Set menus = new TreeSet<>(); + if(null != menuList && !menuList.isEmpty()){ + for (User_Dept_Menu deptMenu : menuList) { + String menuSysFlag = deptMenu.getSysFlag(); + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { + list.add(deptMenu); + if (StringUtils.isNotBlank(deptMenu.getMethod())) { + menus.add(deptMenu.getMenuUrl()); } } } - user.setMenuList(list); - user.setMenus(menus); - UserVo userVo = new UserVo(); - BeanUtils.copyProperties(user,userVo); - //查询用户集合 - List userList = new ArrayList<>(); - Integer roleId = userVo.getRoleId(); - if(roleId == 0){ - userList = userMapper.selectUserIdAndUserNameList(null); - }else{ - userList = userMapper.selectUserIdAndUserNameList(userVo.getUserId()); - } - //设置用户集合 - userVo.setUserList(userList); - CacheManager.addExcCount("noExc"); - return Msg.success().add("user",userVo); + } + user.setMenuList(list); + user.setMenus(menus); + UserVo userVo = new UserVo(); + BeanUtils.copyProperties(user,userVo); + //查询用户集合 + List userList = new ArrayList<>(); + Integer roleId = userVo.getRoleId(); + if(roleId == 0){ + userList = userMapper.selectUserIdAndUserNameList(null); }else{ - return Msg.fail("token已失效"); + userList = userMapper.selectUserIdAndUserNameList(userVo.getUserId()); } - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); + //设置用户集合 + userVo.setUserList(userList); + CacheManager.addExcCount("noExc"); + return Msg.success().add("user",userVo); + }else{ + return Msg.fail("token已失效"); } } @@ -360,34 +338,28 @@ public class FontController { */ @RequestMapping(value = "getMenuByToken",method = RequestMethod.POST) @ResponseBody - public Msg getMenuByToken(String token,String sysFlag){ - try { - if(StringUtils.isBlank(token)){ - return Msg.fail("token不能为空!"); - } - if(StringUtils.isBlank(sysFlag)){ - return Msg.fail("sysFlag不能为空!"); - } - token = MD5.JM(Base64.decode(token)); - Cache cacheInfo = CacheManager.getCacheInfo(token); - Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); - List menuList = user.getMenuList(); - List list = new ArrayList<>(); - if(null != menuList && !menuList.isEmpty()){ - for (int i = 0; i < menuList.size(); i++) { - String menuSysFlag = menuList.get(i).getSysFlag(); - if(StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)){ - list.add(menuList.get(i)); - } + public Msg getMenuByToken(String token,String sysFlag) throws Exception{ + if(StringUtils.isBlank(token)){ + return Msg.fail("token不能为空!"); + } + if(StringUtils.isBlank(sysFlag)){ + return Msg.fail("sysFlag不能为空!"); + } + token = MD5.JM(Base64.decode(token)); + Cache cacheInfo = CacheManager.getCacheInfo(token); + Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); + List menuList = user.getMenuList(); + List list = new ArrayList<>(); + if(null != menuList && !menuList.isEmpty()){ + for (User_Dept_Menu dept_menu : menuList) { + String menuSysFlag = dept_menu.getSysFlag(); + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { + list.add(dept_menu); } } - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); } + CacheManager.addExcCount("noExc"); + return Msg.success().add("list",list); } /** @@ -405,72 +377,67 @@ public class FontController { */ @RequestMapping(value = "getToken",method = RequestMethod.GET) @ResponseBody - public Msg getToken(String userName,String password){ - try { - if(StringUtils.isBlank(userName)){ - return Msg.fail("用户名不能为空"); - } - if(StringUtils.isBlank(password)){ - return Msg.fail("密码不能为空"); - } - Power_User user = new Power_User(); - user.setUserName(userName); - //归档特殊token=1462903487866169011 - if("1462903487866169011".equals(password)){ - password = null; - } - user.setRemark(password); - Power_UserVo userVo = userService.findPowerUserByUserNameAndRemark(user); - if(null == userVo){ - return Msg.fail("用户名或密码不正确"); - } - String date = String.valueOf(DateUtils.getDate()); - String token = Base64.encode(MD5.KL(date)); + public Msg getToken(String userName,String password) throws Exception{ + if(StringUtils.isBlank(userName)){ + return Msg.fail("用户名不能为空"); + } + if(StringUtils.isBlank(password)){ + return Msg.fail("密码不能为空"); + } + Power_User user = new Power_User(); + user.setUserName(userName); + //归档特殊token=1462903487866169011 + if("1462903487866169011".equals(password)){ + password = null; + } + user.setRemark(password); + Power_UserVo userVo = userService.findPowerUserByUserNameAndRemark(user); + if(null == userVo){ + return Msg.fail("用户名或密码不正确"); + } + String date = String.valueOf(DateUtils.getDate()); + String token = Base64.encode(MD5.KL(date)); - List list = null; - List menuList = new ArrayList<>(); - Set 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 (int i = 0; i < list.size(); i++) { - User_Dept_Menu deptMenu = new User_Dept_Menu(); - String menuUrl = list.get(i).getMenuUrl(); - if(StringUtils.isNotBlank(menuUrl)){ - BeanUtils.copyProperties(list.get(i),deptMenu); - deptMenu.setMethodParent(list.get(i).getParentId()); - menuList.add(deptMenu); - } - if(StringUtils.isNotBlank(list.get(i).getMethod())){ - menus.add(list.get(i).getMenuUrl()); - } + List list = null; + List menuList = new ArrayList<>(); + Set 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); + } + userVo.setMenuList(menuList); + userVo.setMenus(menus); - //设置科室 - String power_depts = ""; - List power_depts1 = power_deptService.selectByPrimaryKeys(userVo.getDeptId()); - for(int j=0;j powerDeptsList = power_deptService.selectByPrimaryKeys(userVo.getDeptId()); + for(int j=0;j user = userMapper.checkUserName(userName); - if(null == user || user.isEmpty()){ - return Msg.fail("该工号不存在!"); - } - return Msg.success().add("user",user); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(e.getMessage()); + public Msg checkUserName(String userName) throws Exception{ + if(StringUtils.isBlank(userName)){ + return Msg.fail("工号不能为空!"); + } + //查询用户 + List user = userMapper.checkUserName(userName); + if(null == user || user.isEmpty()){ + return Msg.fail("该工号不存在!"); } + return Msg.success().add("user",user); } /** @@ -567,6 +522,7 @@ public class FontController { } } }catch (Exception e){ + ExceptionPrintUtil.printException(e); e.printStackTrace(); } } diff --git a/power-admin/src/main/java/com/manage/controller/GlobalExceptionHandler.java b/power-admin/src/main/java/com/manage/controller/GlobalExceptionHandler.java new file mode 100644 index 0000000..08852f3 --- /dev/null +++ b/power-admin/src/main/java/com/manage/controller/GlobalExceptionHandler.java @@ -0,0 +1,51 @@ +package com.manage.controller; + +/** + * @ProjectName: + * @Description: + * @Param 传输参数 + * @Return + * @Author: 曾文和 + * @CreateDate: 2020/5/15 16:14 + * @UpdateUser: 曾文和 + * @UpdateDate: 2020/5/15 16:14 + * @UpdateRemark: 更新说明 + * @Version: 1.0 + */ + +import com.alibaba.fastjson.support.spring.FastJsonJsonView; +import com.manage.util.ExceptionPrintUtil; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.servlet.ModelAndView; + +import java.util.HashMap; +import java.util.Map; + +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(value = Exception.class)//指定拦截的异常 + public ModelAndView errorHandler(Exception e) { + return returnMv(e, "服务器出错了,请联系系统管理员"); + } + + @ExceptionHandler(value = RuntimeException.class)//指定拦截的异常 + public ModelAndView runtimeHandler(Exception e) { + return returnMv(e, "服务器出错了,请联系系统管理员"); + } + + private ModelAndView returnMv(Exception e, String msg) { + ModelAndView mv = new ModelAndView(); + /* 使用FastJson提供的FastJsonJsonView视图返回,不需要捕获异常 */ + FastJsonJsonView view = new FastJsonJsonView(); + Map attributes = new HashMap<>(1); + attributes.put("code", "500"); + attributes.put("msg", msg); + view.setAttributesMap(attributes); + mv.setView(view); + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + return mv; + } +} diff --git a/power-admin/src/main/java/com/manage/controller/LogAopAction.java b/power-admin/src/main/java/com/manage/controller/LogAopAction.java index 726d2eb..d7dedfa 100644 --- a/power-admin/src/main/java/com/manage/controller/LogAopAction.java +++ b/power-admin/src/main/java/com/manage/controller/LogAopAction.java @@ -6,6 +6,7 @@ package com.manage.controller; /** import com.manage.annotation.OptionalLog; import com.manage.entity.Power_Log; import com.manage.service.LogService; +import com.manage.util.ExceptionPrintUtil; import org.apache.commons.lang3.CharUtils; import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; @@ -62,8 +63,6 @@ public class LogAopAction { method = target.getClass().getMethod(methodName, parameterTypes); } catch (NoSuchMethodException e1) { e1.printStackTrace(); - } catch (SecurityException e1) { - e1.printStackTrace(); } if (null != method) { //插入表操作 @@ -77,13 +76,13 @@ public class LogAopAction { Map newmap = new HashMap(); for(Map.Entry entry : map.entrySet()){ String name = entry.getKey(); - String values[] = entry.getValue(); + String[] values = entry.getValue(); if(values==null){ newmap.put(name, new String[]{}); continue; } - String newvalues[] = new String[values.length]; + String[] newvalues = new String[values.length]; for(int i=0; i list = null; List menuList = new ArrayList<>(); @@ -92,16 +91,16 @@ public class LoginController { list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null); } if(null != list && !list.isEmpty()){ - for (int i = 0; i < list.size(); i++) { + for (Power_Menu powerMenu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); - String menuUrl = list.get(i).getMenuUrl(); - if(StringUtils.isNotBlank(menuUrl)){ - BeanUtils.copyProperties(list.get(i),deptMenu); - deptMenu.setMethodParent(list.get(i).getParentId()); + String menuUrl = powerMenu.getMenuUrl(); + if (StringUtils.isNotBlank(menuUrl)) { + BeanUtils.copyProperties(powerMenu, deptMenu); + deptMenu.setMethodParent(powerMenu.getParentId()); menuList.add(deptMenu); } - if(StringUtils.isNotBlank(list.get(i).getMethod())){ - menus.add(list.get(i).getMenuUrl()); + if (StringUtils.isNotBlank(powerMenu.getMethod())) { + menus.add(powerMenu.getMenuUrl()); } } } @@ -109,16 +108,16 @@ public class LoginController { user.setMenus(menus); //设置科室 - String power_depts = ""; - List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId()); - for(int j=0;j powerDeptsList = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for(int j=0;j menus = new TreeSet<>(); - List list = null; - if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,user.getRoleId()); - } else { - list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null); - } - if(null != list && !list.isEmpty()){ - for (int i = 0; i < list.size(); i++) { - if(StringUtils.isNotBlank(list.get(i).getMethod())){ - menus.add(list.get(i).getMenuUrl()); - } - } - } - user.setMenus(menus);*/ return "/loginDir/index"; } @@ -151,7 +130,7 @@ public class PageController { int emr_record1 = 0; int emr_apply_copy1 = 0; int emr_files1 = 0; - if(null != sysList && !sysList.isEmpty()){ + if(!sysList.isEmpty()){ //获取权限菜单 List menuList = powerUser.getMenuList(); if(null != menuList && !menuList.isEmpty()) { @@ -181,28 +160,27 @@ public class PageController { } } } - for (int i = 0; i < sysList.size(); i++) { - String sysFlag = sysList.get(i).getSysFlag(); - if(StringUtils.isNotBlank(sysFlag)){ - if("power".equals(sysFlag)){ + for (Power_Sys_Dict powerSysDict : sysList) { + String sysFlag = powerSysDict.getSysFlag(); + if (StringUtils.isNotBlank(sysFlag)) { + if ("power".equals(sysFlag)) { power = 1; continue; } - if("emr_medical_record".equals(sysFlag)){ + if ("emr_medical_record".equals(sysFlag)) { emr_medical_record = 1; continue; } - if("emr_record".equals(sysFlag)){ + if ("emr_record".equals(sysFlag)) { emr_record = 1; continue; } - if("emr_apply_copy".equals(sysFlag)){ + if ("emr_apply_copy".equals(sysFlag)) { emr_apply_copy = 1; continue; } - if("emr_files".equals(sysFlag)){ + if ("emr_files".equals(sysFlag)) { emr_files = 1; - continue; } } } @@ -247,37 +225,32 @@ public class PageController { @RequestMapping("getEcharts1") @ResponseBody - public Msg getEcharts1(){ + public Msg getEcharts1() throws Exception{ List list = new ArrayList<>(); - try { - //无异常 - Integer noExc = CacheManager.getExcCount("noExc"); - String valueArr1[] = {noExc.toString()}; - Echarts echarts1 = new Echarts("无异常",null,valueArr1); + /*//无异常 + Integer noExc = CacheManager.getExcCount("noExc"); + String valueArr1[] = {noExc.toString()}; + Echarts echarts1 = new Echarts("无异常",null,valueArr1); - //异常 - Integer exc = CacheManager.getExcCount("exc"); - if(null == exc){ - exc = 0; - } - String valueArr2[] = {exc.toString()}; - Echarts echarts2 = new Echarts("异常",null,valueArr2); - - //锁定 - Integer effectiveCount = pageService.selectEffectiveCount(); - if(null == effectiveCount){ - effectiveCount = 0; - } - String valueArr3[] = {effectiveCount.toString()}; - Echarts echarts3 = new Echarts("锁定",null,valueArr3); + //异常 + Integer exc = CacheManager.getExcCount("exc"); + if(null == exc){ + exc = 0; + } + String valueArr2[] = {exc.toString()}; + Echarts echarts2 = new Echarts("异常",null,valueArr2); - list.add(echarts1); - list.add(echarts2); - list.add(echarts3); - }catch (Exception e){ - e.printStackTrace(); - return Msg.fail(e.getMessage()); + //锁定 + Integer effectiveCount = pageService.selectEffectiveCount(); + if(null == effectiveCount){ + effectiveCount = 0; } + String valueArr3[] = {effectiveCount.toString()}; + Echarts echarts3 = new Echarts("锁定",null,valueArr3); + + list.add(echarts1); + list.add(echarts2); + list.add(echarts3);*/ return Msg.success().add("list",list); } diff --git a/power-admin/src/main/java/com/manage/controller/PermissionsController.java b/power-admin/src/main/java/com/manage/controller/PermissionsController.java index b99f227..b051c34 100644 --- a/power-admin/src/main/java/com/manage/controller/PermissionsController.java +++ b/power-admin/src/main/java/com/manage/controller/PermissionsController.java @@ -102,57 +102,6 @@ public class PermissionsController { } } } - /*object = pjp.proceed(); - //接受客户端的数据 - Map map = request.getParameterMap(); - // 解决获取参数乱码 - Map newmap = new HashMap(); - for(Map.Entry entry : map.entrySet()){ - String name = entry.getKey(); - String values[] = entry.getValue(); - - if(values==null){ - newmap.put(name, new String[]{}); - continue; - } - String newvalues[] = new String[values.length]; - for(int i=0; i map = request.getParameterMap(); - // 解决获取参数乱码 - Map newmap = new HashMap(); - for(Map.Entry entry : map.entrySet()){ - String name = entry.getKey(); - String values[] = entry.getValue(); - if(values==null){ - newmap.put(name, new String[]{}); - continue; - } - String newvalues[] = new String[values.length]; - for(int i=0; i menus = user.getMenus(); if(null != menus && !menus.isEmpty()){ - Integer deleteOper = 0; + int deleteOper = 0; for(String menu : menus){ if(StringUtils.isNotBlank(menu)){ if("/otherManage/deleteLogById".equals(menu)){ @@ -107,6 +107,7 @@ public class Power_LogController { pageHelper.setRows(logs); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -130,16 +131,10 @@ public class Power_LogController { @RequiresPermissions("/otherManage/deleteLogById") @RequestMapping("deleteLogById/{logId}") @ResponseBody - public Msg deleteLogById(@PathVariable("logId")Integer logId){ - try{ - logService.deleteLogById(logId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("删除失败,请联系超管!"); - } + public Msg deleteLogById(@PathVariable("logId")Integer logId) throws Exception{ + logService.deleteLogById(logId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } /** @@ -158,27 +153,21 @@ public class Power_LogController { @RequestMapping("deleteLogByIds/{ids}") @RequiresPermissions("/otherManage/deleteLogByIds") @ResponseBody - public Msg deleteLogByIds(@PathVariable("ids")String ids){ - try{ - String[] idList = ids.split(","); - String str = ""; - for (int i = 0; i < idList.length; i++) { - if(StringUtils.isNoneBlank(idList[i])){ - if(i != idList.length - 1){ - str += idList[i] + ","; - }else{ - str += idList[i]; - } + public Msg deleteLogByIds(@PathVariable("ids")String ids) throws Exception{ + String[] idList = ids.split(","); + StringBuilder str = new StringBuilder(); + for (int i = 0; i < idList.length; i++) { + if(StringUtils.isNoneBlank(idList[i])){ + if(i != idList.length - 1){ + str.append(idList[i]).append(","); + }else{ + str.append(idList[i]); } } - logService.deleteLogByIds(str); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("删除失败,请联系超管!"); } + logService.deleteLogByIds(str.toString()); + CacheManager.addExcCount("noExc"); + return Msg.success(); } /** @@ -216,6 +205,7 @@ public class Power_LogController { exportExcelUtil.expordExcel(tableThNames,fieldCns,logs,fileName,response); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } diff --git a/power-admin/src/main/java/com/manage/controller/Power_MenuController.java b/power-admin/src/main/java/com/manage/controller/Power_MenuController.java index 1050fba..e3ada87 100644 --- a/power-admin/src/main/java/com/manage/controller/Power_MenuController.java +++ b/power-admin/src/main/java/com/manage/controller/Power_MenuController.java @@ -1,22 +1,17 @@ package com.manage.controller; import com.manage.entity.Power_Menu; -import com.manage.entity.Power_Menu_User; -import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.Power_MenuService; import com.manage.util.ActionScopeUtils; import com.manage.util.Constant; import com.manage.util.Msg; import com.manage.vo.Power_UserVo; -import com.manage.vo.User_Dept_Menu; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.util.ArrayList; import java.util.List; /** @@ -30,88 +25,18 @@ public class Power_MenuController { @Autowired private Power_MenuService powerMenuService; - /*@RequestMapping("powerMenuList") - @ResponseBody - public Msg list() { - try { - List list = powerMenuService.queryAllPowerMenu("power"); - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } - }*/ - @RequestMapping("indexMenu") @ResponseBody - public Msg indexMenu() { - try { - Power_UserVo user = (Power_UserVo) ActionScopeUtils.getSessionAttribute( Constant.CURRENT_USER); - List list = null; - if(user.getRoleId().equals(0) || user.getRoleId().equals(-100)){ - list = powerMenuService.queryAllPowerMenu("power",user.getRoleId()); - } else{ - list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),"power"); - } - CacheManager.addExcCount("noExc"); - return Msg.success().add("listPower", list); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } - -/* - Power_User user = (Power_User) ActionScopeUtils.getSessionAttribute( Constant.CURRENT_USER); + public Msg indexMenu() throws Exception{ + Power_UserVo user = (Power_UserVo) ActionScopeUtils.getSessionAttribute( Constant.CURRENT_USER); List list = null; - List listPower = null; - if (user.getRoleId().equals(0)) { - list = powerMenuService.queryAllPowerMenu(); - return Msg.success().add("listRole", list); - } else if(user.getRoleId().equals(-100)){ - listPower = powerMenuService.queryPoswerMenuByUserId(user.getUserId()); - List indexList = new ArrayList<>(); - if(null != listPower && !listPower.isEmpty()){ - for (int i = 0; i < listPower.size(); i++) { - if(StringUtils.isBlank(listPower.get(i).getMenuName()) || "菜单管理".equals(listPower.get(i).getMenuName())){ - indexList.add(listPower.get(i)); - } - } - } - if(null != indexList && !indexList.isEmpty()){ - for (int i = 0; i < indexList.size(); i++) { - for (int j = 0; j < listPower.size(); j++) { - if(listPower.get(j).getMenuId() == indexList.get(i).getMenuId()){ - listPower.remove(indexList.get(i)); - } - } - } - } - return Msg.success().add("listPower", listPower); + if(user.getRoleId().equals(0) || user.getRoleId().equals(-100)){ + list = powerMenuService.queryAllPowerMenu("power",user.getRoleId()); } else{ - List menuList = powerMenuService.queryMenuViewByUserId(user.getUserId()); - List indexList = new ArrayList<>(); - if(null != menuList && !menuList.isEmpty()){ - for (int i = 0; i < menuList.size(); i++) { - if(StringUtils.isBlank(menuList.get(i).getMenuName())){ - indexList.add(menuList.get(i)); - } - } - } - if(null != indexList && !indexList.isEmpty()){ - for (int i = 0; i < indexList.size(); i++) { - for (int j = 0; j < menuList.size(); j++) { - if(menuList.get(j).getMenuId() == indexList.get(i).getMenuId()){ - menuList.remove(indexList.get(i)); - } - } - } - } - return Msg.success().add("listUser", menuList); + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),"power"); } -*/ + CacheManager.addExcCount("noExc"); + return Msg.success().add("listPower", list); } } diff --git a/power-admin/src/main/java/com/manage/controller/Power_MenuManageController.java b/power-admin/src/main/java/com/manage/controller/Power_MenuManageController.java index b8b9790..0cce435 100644 --- a/power-admin/src/main/java/com/manage/controller/Power_MenuManageController.java +++ b/power-admin/src/main/java/com/manage/controller/Power_MenuManageController.java @@ -8,6 +8,7 @@ import com.manage.entity.Power_Menu; import com.manage.service.cache.CacheManager; import com.manage.service.PowerService; import com.manage.service.Power_MenuService; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; import com.manage.vo.Power_Sys_DictVo; import org.apache.commons.lang3.StringUtils; @@ -45,6 +46,7 @@ public class Power_MenuManageController { CacheManager.addExcCount("noExc"); return JSON.toJSONString(dicts); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -68,6 +70,7 @@ public class Power_MenuManageController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -76,42 +79,30 @@ public class Power_MenuManageController { @RequestMapping(value = "checkMenuName") @ResponseBody - public Msg checkMenuName(String sysFlag,String menuName){ - try { - List menus = menuService.checkMenuNameBySysId(sysFlag,menuName); - CacheManager.addExcCount("noExc"); - if(null != menus && !menus.isEmpty()){ - return Msg.fail(); - }else{ - return Msg.success(); - } - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return null; + public Msg checkMenuName(String sysFlag,String menuName) throws Exception{ + List menus = menuService.checkMenuNameBySysId(sysFlag,menuName); + CacheManager.addExcCount("noExc"); + if(null != menus && !menus.isEmpty()){ + return Msg.fail(); + }else{ + return Msg.success(); } } @RequestMapping(value = "checkMethodName") @ResponseBody - public Msg checkMethodName(Integer parentId,String methodName,String method){ - try { - List menus = new ArrayList<>(); - if(StringUtils.isNotBlank(method)){ - menus = menuService.checkMethodByParentId(parentId, null,method); - }else{ - menus = menuService.checkMethodByParentId(parentId, methodName,null); - } - CacheManager.addExcCount("noExc"); - if(null != menus && !menus.isEmpty()){ - return Msg.fail(); - }else{ - return Msg.success(); - } - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return null; + public Msg checkMethodName(Integer parentId,String methodName,String method) throws Exception{ + List menus = new ArrayList<>(); + if(StringUtils.isNotBlank(method)){ + menus = menuService.checkMethodByParentId(parentId, null,method); + }else{ + menus = menuService.checkMethodByParentId(parentId, methodName,null); + } + CacheManager.addExcCount("noExc"); + if(null != menus && !menus.isEmpty()){ + return Msg.fail(); + }else{ + return Msg.success(); } } @@ -119,141 +110,129 @@ public class Power_MenuManageController { @RequiresPermissions(value="/menu/update") @RequestMapping(value="update",method = RequestMethod.POST) @ResponseBody - public Msg addMenu(Power_Menu menu,String sysName){ + public Msg addMenu(Power_Menu menu,String sysName) throws Exception{ if(StringUtils.isNotBlank(menu.getMenuUrl())){ if(!menu.getMenuUrl().contains("/") && !"#".equals(menu.getMenuUrl())){ return Msg.fail("菜单地址必须包含斜杠/,建目录必须为单个字符#"); } } - try { - List menus = new ArrayList<>(); - if(StringUtils.isNotBlank(menu.getSysFlag())){ - menus = menuService.checkMenuNameBySysId(menu.getSysFlag(), menu.getMenuName()); - } - if(menu.getMenuId() == null){ - if(StringUtils.isNoneBlank(menu.getMethod())) { - Integer parentId = menu.getParentId(); - Power_Menu parentMenu = powerMenuMapper.selectByPrimaryKey(parentId); - String menuUrl = parentMenu.getMenuUrl(); - if (StringUtils.isNoneBlank(menuUrl) && menuUrl.contains("/")) { - String methodUrl = ""; - // /user /user/pageUI user/pageUI ../user/pageUI - String str1 = ""; - String str = menuUrl.substring(0, 1); - if(menuUrl.length() >= 3){ - str1 = menuUrl.substring(0, 3); - } - if("/".equals(str)){ - menuUrl = menuUrl.substring(1,menuUrl.length()); - if(StringUtils.isNotBlank(menuUrl)){ - String[] menuss = menuUrl.split("/"); - methodUrl = "/" + menuss[0] + "/" + menu.getMethod(); - }else{ - methodUrl = "/" + menu.getMethod(); - } - }else if(StringUtils.isNotBlank(str1) && "../".equals(str1)){ - menuUrl = menuUrl.substring(3,menuUrl.length()); - if(StringUtils.isNotBlank(menuUrl)){ - String[] menuss = menuUrl.split("/"); - methodUrl = "../" + menuss[0] + "/" + menu.getMethod(); - }else{ - methodUrl = "../" + menu.getMethod(); - } + List menus = new ArrayList<>(); + if(StringUtils.isNotBlank(menu.getSysFlag())){ + menus = menuService.checkMenuNameBySysId(menu.getSysFlag(), menu.getMenuName()); + } + if(menu.getMenuId() == null){ + if(StringUtils.isNoneBlank(menu.getMethod())) { + Integer parentId = menu.getParentId(); + Power_Menu parentMenu = powerMenuMapper.selectByPrimaryKey(parentId); + String menuUrl = parentMenu.getMenuUrl(); + if (StringUtils.isNoneBlank(menuUrl) && menuUrl.contains("/")) { + String methodUrl = ""; + // /user /user/pageUI user/pageUI ../user/pageUI + String str1 = ""; + String str = menuUrl.substring(0, 1); + if(menuUrl.length() >= 3){ + str1 = menuUrl.substring(0, 3); + } + if("/".equals(str)){ + menuUrl = menuUrl.substring(1,menuUrl.length()); + if(StringUtils.isNotBlank(menuUrl)){ + String[] menuss = menuUrl.split("/"); + methodUrl = "/" + menuss[0] + "/" + menu.getMethod(); }else{ + methodUrl = "/" + menu.getMethod(); + } + }else if(StringUtils.isNotBlank(str1) && "../".equals(str1)){ + menuUrl = menuUrl.substring(3,menuUrl.length()); + if(StringUtils.isNotBlank(menuUrl)){ String[] menuss = menuUrl.split("/"); - methodUrl = menuss[0] + "/" + menu.getMethod(); + methodUrl = "../" + menuss[0] + "/" + menu.getMethod(); + }else{ + methodUrl = "../" + menu.getMethod(); } - menu.setMenuUrl(methodUrl); }else{ - return Msg.fail("父级菜单url地址格式不正确,正确示例:/user或/user/pageUI!"); - } - List checkMethodNames = menuService.checkMethodByParentId(menu.getParentId(), menu.getMenuName(),null); - List checkMethods = menuService.checkMethodByParentId(menu.getParentId(),null,menu.getMethod()); - if(null != checkMethodNames && !checkMethodNames.isEmpty()){ - return Msg.fail("功能名称不能重复!"); - } - if(null != checkMethods && !checkMethods.isEmpty()){ - return Msg.fail("功能方法已存在!"); + String[] menuss = menuUrl.split("/"); + methodUrl = menuss[0] + "/" + menu.getMethod(); } + menu.setMenuUrl(methodUrl); }else{ - if(null != menus && !menus.isEmpty()){ - return Msg.fail("菜单名不能重复!"); - } + return Msg.fail("父级菜单url地址格式不正确,正确示例:/user或/user/pageUI!"); + } + List checkMethodNames = menuService.checkMethodByParentId(menu.getParentId(), menu.getMenuName(),null); + List checkMethods = menuService.checkMethodByParentId(menu.getParentId(),null,menu.getMethod()); + if(null != checkMethodNames && !checkMethodNames.isEmpty()){ + return Msg.fail("功能名称不能重复!"); + } + if(null != checkMethods && !checkMethods.isEmpty()){ + return Msg.fail("功能方法已存在!"); } - menuService.addMenu(menu,sysName); }else{ - if(StringUtils.isNoneBlank(menu.getMethod())) { - Integer parentId = menu.getParentId(); - Power_Menu parentMenu = powerMenuMapper.selectByPrimaryKey(parentId); - String menuUrl = parentMenu.getMenuUrl(); - if (StringUtils.isNoneBlank(menuUrl) && menuUrl.contains("/")) { - String methodUrl = ""; - // /user /user/pageUI user/pageUI ../user/pageUI - String str1 = ""; - String str = menuUrl.substring(0, 1); - if(menuUrl.length() >= 3){ - str1 = menuUrl.substring(0, 3); - } - if("/".equals(str)){ - menuUrl = menuUrl.substring(1,menuUrl.length()); - if(StringUtils.isNotBlank(menuUrl)){ - String[] menuss = menuUrl.split("/"); - methodUrl = "/" + menuss[0] + "/" + menu.getMethod(); - }else{ - methodUrl = "/" + menu.getMethod(); - } - }else if(StringUtils.isNotBlank(str1) && "../".equals(str1)){ - menuUrl = menuUrl.substring(3,menuUrl.length()); - if(StringUtils.isNotBlank(menuUrl)){ - String[] menuss = menuUrl.split("/"); - methodUrl = "../" + menuss[0] + "/" + menu.getMethod(); - }else{ - methodUrl = "../" + menu.getMethod(); - } + if(null != menus && !menus.isEmpty()){ + return Msg.fail("菜单名不能重复!"); + } + } + menuService.addMenu(menu,sysName); + }else{ + if(StringUtils.isNoneBlank(menu.getMethod())) { + Integer parentId = menu.getParentId(); + Power_Menu parentMenu = powerMenuMapper.selectByPrimaryKey(parentId); + String menuUrl = parentMenu.getMenuUrl(); + if (StringUtils.isNoneBlank(menuUrl) && menuUrl.contains("/")) { + String methodUrl = ""; + // /user /user/pageUI user/pageUI ../user/pageUI + String str1 = ""; + String str = menuUrl.substring(0, 1); + if(menuUrl.length() >= 3){ + str1 = menuUrl.substring(0, 3); + } + if("/".equals(str)){ + menuUrl = menuUrl.substring(1,menuUrl.length()); + if(StringUtils.isNotBlank(menuUrl)){ + String[] menuss = menuUrl.split("/"); + methodUrl = "/" + menuss[0] + "/" + menu.getMethod(); }else{ + methodUrl = "/" + menu.getMethod(); + } + }else if(StringUtils.isNotBlank(str1) && "../".equals(str1)){ + menuUrl = menuUrl.substring(3,menuUrl.length()); + if(StringUtils.isNotBlank(menuUrl)){ String[] menuss = menuUrl.split("/"); - methodUrl = menuss[0] + "/" + menu.getMethod(); + methodUrl = "../" + menuss[0] + "/" + menu.getMethod(); + }else{ + methodUrl = "../" + menu.getMethod(); } - menu.setMenuUrl(methodUrl); }else{ - return Msg.fail("父级菜单url地址格式不正确,正确示例:/user或/user/pageUI!"); - } - List checkMethodNames = menuService.checkMethodByParentId(menu.getParentId(), menu.getMenuName(),null); - List checkMethods = menuService.checkMethodByParentId(menu.getParentId(),null,menu.getMethod()); - if(null != checkMethodNames && !checkMethodNames.isEmpty() && !checkMethodNames.get(0).getMenuId().equals(menu.getMenuId())){ - return Msg.fail("方法名不能重复!"); - } - if(null != checkMethods && !checkMethods.isEmpty() && !checkMethods.get(0).getMenuId().equals(menu.getMenuId())){ - return Msg.fail("功能方法已存在!"); + String[] menuss = menuUrl.split("/"); + methodUrl = menuss[0] + "/" + menu.getMethod(); } + menu.setMenuUrl(methodUrl); }else{ - if(null != menus && !menus.isEmpty() && !menus.get(0).getMenuId().equals(menu.getMenuId())){ - return Msg.fail("菜单名不能重复!"); - } + return Msg.fail("父级菜单url地址格式不正确,正确示例:/user或/user/pageUI!"); + } + List checkMethodNames = menuService.checkMethodByParentId(menu.getParentId(), menu.getMenuName(),null); + List checkMethods = menuService.checkMethodByParentId(menu.getParentId(),null,menu.getMethod()); + if(null != checkMethodNames && !checkMethodNames.isEmpty() && !checkMethodNames.get(0).getMenuId().equals(menu.getMenuId())){ + return Msg.fail("方法名不能重复!"); + } + if(null != checkMethods && !checkMethods.isEmpty() && !checkMethods.get(0).getMenuId().equals(menu.getMenuId())){ + return Msg.fail("功能方法已存在!"); + } + }else{ + if(null != menus && !menus.isEmpty() && !menus.get(0).getMenuId().equals(menu.getMenuId())){ + return Msg.fail("菜单名不能重复!"); } - menuService.updateMenu(menu,sysName); } - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("保存失败,请联系系统管理员!"); + menuService.updateMenu(menu,sysName); } + CacheManager.addExcCount("noExc"); + return Msg.success(); } @RequiresPermissions(value="/menu/delete") @RequestMapping("delete/{menuId}") @ResponseBody - public Msg delMenu(@PathVariable("menuId")Integer menuId){ - try { - menuService.deleteMenuByMenuId(menuId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg delMenu(@PathVariable("menuId")Integer menuId) throws Exception{ + menuService.deleteMenuByMenuId(menuId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } } diff --git a/power-admin/src/main/java/com/manage/controller/Power_NoticeController.java b/power-admin/src/main/java/com/manage/controller/Power_NoticeController.java index fcd2375..d33a190 100644 --- a/power-admin/src/main/java/com/manage/controller/Power_NoticeController.java +++ b/power-admin/src/main/java/com/manage/controller/Power_NoticeController.java @@ -7,6 +7,7 @@ import com.manage.entity.Power_Notice; import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.ipml.Power_NoticeServiceImpl; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; import com.manage.util.PageHelper; import com.manage.vo.*; @@ -32,7 +33,7 @@ public class Power_NoticeController { @RequestMapping(value = "pageUI") public String notice(HttpServletRequest request, Model model){ noticeService.loadSys(request,model); - model.addAttribute("user",(Power_User)request.getSession().getAttribute("CURRENT_USER")); + model.addAttribute("user",request.getSession().getAttribute("CURRENT_USER")); CacheManager.addExcCount("noExc"); return "/noticeDir/noticePage"; } @@ -45,11 +46,6 @@ public class Power_NoticeController { Listpower_notices = new ArrayList(); List getTatal = new ArrayList(); try { - /*if(user.getRoleId() == 0){ - power_notices = this.noticeMapper.selectSysByAdmin(null,null,notice); - }else{ - power_notices = this.noticeMapper.selectSysByAdmin(user.getRoleId(),user.getUserId(),notice); - }*/ if(user.getRoleId() == 0){ getTatal = this.noticeMapper.getTotal(null,null,notice); power_notices = this.noticeMapper.selectALlByPower(null,null,notice); @@ -63,34 +59,13 @@ public class Power_NoticeController { CacheManager.addExcCount("noExc"); return pageHelper; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } - - - public List putChildren(List moduleList, Power_NoticeVo notice,Power_User user) { - if (moduleList.size() > 0) { - for (Power_Notice mod2 : moduleList) { - HashMap param = new HashMap(); - notice.setParentId(mod2.getNoticeId()); - List res2 = new ArrayList<>(); - if(user.getRoleId() == -100 || user.getRoleId() == 0){ - res2 = this.noticeMapper.selectNoticeListByParentId(notice,null); - }else{ - res2 = this.noticeMapper.selectNoticeListByParentId(notice,user.getUserId()); - } - if (res2.size() > 0) { - res2 = putChildren(res2,notice,user); - } - mod2.setChildren(res2); - } - } - return moduleList; - } - @RequestMapping(value = "getNoticeTypeTree",produces = {"text/json;charset=UTF-8"}) @ResponseBody public String getNoticeTypeTree(){ @@ -99,6 +74,7 @@ public class Power_NoticeController { CacheManager.addExcCount("noExc"); return JSON.toJSONString(treeList); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -107,110 +83,78 @@ public class Power_NoticeController { @RequestMapping(value = "checkTypeSysFlagOrTypeSysName") @ResponseBody - public Msg checkTypeSysFlag(String noticeTypeFlag,String noticeTypeName){ - try { - if(StringUtils.isNoneBlank(noticeTypeFlag) || StringUtils.isNotBlank(noticeTypeName)) { - Power_Notice powerNotice = noticeService.checkTypeSysFlagOrTypeSysName(noticeTypeFlag, noticeTypeName); - CacheManager.addExcCount("noExc"); - if (null != powerNotice) { - return Msg.fail(); - } else { - return Msg.success(); - } - }else{ - return Msg.fail("查询出错,请联系系统管理员!"); + public Msg checkTypeSysFlag(String noticeTypeFlag,String noticeTypeName) throws Exception{ + if(StringUtils.isNoneBlank(noticeTypeFlag) || StringUtils.isNotBlank(noticeTypeName)) { + Power_Notice powerNotice = noticeService.checkTypeSysFlagOrTypeSysName(noticeTypeFlag, noticeTypeName); + CacheManager.addExcCount("noExc"); + if (null != powerNotice) { + return Msg.fail(); + } else { + return Msg.success(); } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); + }else{ return Msg.fail("查询出错,请联系系统管理员!"); } } @RequestMapping(value = "update") @ResponseBody - public Msg udpate(Power_Notice powerNotice,HttpServletRequest request){ - try { - //保存类别 - if(StringUtils.isNotBlank(powerNotice.getNoticeTypeFlag())){ - //验证用户名 - Power_Notice typeNotice = noticeService.checkTypeSysFlagOrTypeSysName(powerNotice.getNoticeTypeFlag(), null); - Power_Notice nameNotice = noticeService.checkTypeSysFlagOrTypeSysName(null,powerNotice.getNoticeTypeName()); - //添加类别 - if (null == powerNotice.getNoticeId()) { - if(null != typeNotice){ - return Msg.fail("类别标志已存在!"); - } - if(null != nameNotice){ - return Msg.fail("类别名称已存在!"); - } - noticeService.update(powerNotice,request); - } else { - //修改类别 - if(null != typeNotice && !typeNotice.getNoticeId().equals(powerNotice.getNoticeId())){ - return Msg.fail("类别标志已存在!"); - } - if(null != nameNotice && !nameNotice.getNoticeId().equals(powerNotice.getNoticeId())){ - return Msg.fail("类别名称已存在!"); - } - noticeService.update(powerNotice,request); + public Msg udpate(Power_Notice powerNotice,HttpServletRequest request) throws Exception{ + //保存类别 + if(StringUtils.isNotBlank(powerNotice.getNoticeTypeFlag())){ + //验证用户名 + Power_Notice typeNotice = noticeService.checkTypeSysFlagOrTypeSysName(powerNotice.getNoticeTypeFlag(), null); + Power_Notice nameNotice = noticeService.checkTypeSysFlagOrTypeSysName(null,powerNotice.getNoticeTypeName()); + //添加类别 + if (null == powerNotice.getNoticeId()) { + if(null != typeNotice){ + return Msg.fail("类别标志已存在!"); + } + if(null != nameNotice){ + return Msg.fail("类别名称已存在!"); + } + noticeService.update(powerNotice,request); + } else { + //修改类别 + if(null != typeNotice && !typeNotice.getNoticeId().equals(powerNotice.getNoticeId())){ + return Msg.fail("类别标志已存在!"); + } + if(null != nameNotice && !nameNotice.getNoticeId().equals(powerNotice.getNoticeId())){ + return Msg.fail("类别名称已存在!"); } - }else{ - //保存通知 noticeService.update(powerNotice,request); } - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - e.printStackTrace(); - CacheManager.addExcCount("exc"); - return Msg.fail("查询出错,请联系系统管理员!"); + }else{ + //保存通知 + noticeService.update(powerNotice,request); } + CacheManager.addExcCount("noExc"); + return Msg.success(); } @OptionalLog(module = "删除",methods = "通知管理",fieldName = "noticeContent",fieldName1="noticeTypeName",tableName = "power_notice") @RequestMapping(value = "delete") @ResponseBody - public Msg delete(Integer noticeId){ - try { - noticeService.delete(noticeId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg delete(Integer noticeId) throws Exception{ + noticeService.delete(noticeId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } - - /************************************************通知操作***************************************************/ @RequestMapping(value = "getUserNameListByNoticeTypeId") @ResponseBody - public Msg getUserNameListByNoticeTypeId(Integer noticeTypeId, HttpServletRequest request){ - try { - List userList = noticeService.getUserNameListByNoticeTypeId(noticeTypeId, request); - CacheManager.addExcCount("noExc"); - return Msg.success().add("userList",userList); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("查询出错,请联系系统管理员!"); - } + public Msg getUserNameListByNoticeTypeId(Integer noticeTypeId, HttpServletRequest request) throws Exception{ + List userList = noticeService.getUserNameListByNoticeTypeId(noticeTypeId, request); + CacheManager.addExcCount("noExc"); + return Msg.success().add("userList",userList); } @RequestMapping(value = "selectNoticeByNoticeId") @ResponseBody - public Msg selectNoticeByNoticeId(Integer noticeId){ - try { - Power_Notice powerNotice = noticeMapper.selectByPrimaryKey(noticeId); - CacheManager.addExcCount("noExc"); - return Msg.success().add("powerNotice",powerNotice); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("查询出错,请联系系统管理员!"); - } + public Msg selectNoticeByNoticeId(Integer noticeId) throws Exception{ + Power_Notice powerNotice = noticeMapper.selectByPrimaryKey(noticeId); + CacheManager.addExcCount("noExc"); + return Msg.success().add("powerNotice",powerNotice); } @OptionalLog(module = "导出excel",methods = "通知管理") @@ -221,6 +165,7 @@ public class Power_NoticeController { noticeService.export(powerNoticeVo,noticeIds,response,request); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); @@ -229,16 +174,10 @@ public class Power_NoticeController { @RequestMapping(value = "updateNoticeReadFlag") @ResponseBody - public Msg updateNoticeReadFlag(Integer noticeId){ - try { - noticeService.updateNoticeReadFlag(noticeId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("修改出错了,请联系系统管理员!"); - } + public Msg updateNoticeReadFlag(Integer noticeId) throws Exception{ + noticeService.updateNoticeReadFlag(noticeId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } /** @@ -255,22 +194,16 @@ public class Power_NoticeController { */ @RequestMapping("getUnReadCount") @ResponseBody - public Msg getUnReadCount(HttpServletRequest request){ - try { - //获取登录者信息 - Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); - Integer userId = null; - //系统管理员userId为null,非系统管理员传入userId - if(user.getRoleId() != 0){ - userId = user.getRoleId(); - } - int unReadCount = noticeService.getUnReadCount(userId); - CacheManager.addExcCount("noExc"); - return Msg.success().add("unReadCount",unReadCount); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(e.getMessage()); + public Msg getUnReadCount(HttpServletRequest request) throws Exception{ + //获取登录者信息 + Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); + Integer userId = null; + //系统管理员userId为null,非系统管理员传入userId + if(user.getRoleId() != 0){ + userId = user.getRoleId(); } + int unReadCount = noticeService.getUnReadCount(); + CacheManager.addExcCount("noExc"); + return Msg.success().add("unReadCount",unReadCount); } } diff --git a/power-admin/src/main/java/com/manage/controller/Power_Sys_DictController.java b/power-admin/src/main/java/com/manage/controller/Power_Sys_DictController.java index 4f4b4c6..e12c6d0 100644 --- a/power-admin/src/main/java/com/manage/controller/Power_Sys_DictController.java +++ b/power-admin/src/main/java/com/manage/controller/Power_Sys_DictController.java @@ -7,8 +7,8 @@ import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.Power_DeptService; import com.manage.service.Power_Sys_DictService; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; -import com.manage.util.PageHelper; import com.manage.vo.Power_DeptVo; import com.manage.vo.Power_Sys_DictVo; import org.apache.commons.lang3.StringUtils; @@ -62,10 +62,11 @@ public class Power_Sys_DictController { @ResponseBody public List selectHosList(HttpServletRequest request){ try { - List power_sys_dicts = powerSysDictService.selectHosList(request); + List powerSysDicts = powerSysDictService.selectHosList(request); CacheManager.addExcCount("noExc"); - return power_sys_dicts; + return powerSysDicts; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -76,10 +77,11 @@ public class Power_Sys_DictController { @ResponseBody public List selectList(){ try { - List power_sys_dicts = powerSysDictService.selectList(); + List powerSysDicts = powerSysDictService.selectList(); CacheManager.addExcCount("noExc"); - return power_sys_dicts; + return powerSysDicts; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -90,10 +92,11 @@ public class Power_Sys_DictController { @ResponseBody public Power_Sys_Dict selectDict(Integer dictId){ try { - Power_Sys_Dict power_sys_dict = powerSysDictService.selectByPrimaryKey(dictId); + Power_Sys_Dict powerSysDict = powerSysDictService.selectByPrimaryKey(dictId); CacheManager.addExcCount("noExc"); - return power_sys_dict; + return powerSysDict; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -101,202 +104,155 @@ public class Power_Sys_DictController { } @RequestMapping("/checkHospitalName") @ResponseBody - public Msg checkHospitalName(String hospitalName){ - try { - Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(hospitalName); - CacheManager.addExcCount("noExc"); - if(dictVo != null){ - return Msg.fail("医院名称已存在"); - }else{ - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("验证失败,请联系系统管理员"); + public Msg checkHospitalName(String hospitalName) throws Exception{ + Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(hospitalName); + CacheManager.addExcCount("noExc"); + if(dictVo != null){ + return Msg.fail("医院名称已存在"); + }else{ + return Msg.success(); } } @RequiresPermissions(value="/dict/add") @RequestMapping("/add") @ResponseBody - public Msg add(Power_Sys_DictVo powerSysDict, HttpServletRequest request){ - try { - if(powerSysDict.getDictId() == null){ - //添加医院 - if(StringUtils.isNoneBlank(powerSysDict.getHospitalName())){ - Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(powerSysDict.getHospitalName()); - if(dictVo != null){ - return Msg.fail("医院名称不能重复!"); - } - powerSysDictService.insertSelective(powerSysDict,request); - Integer dictId = powerSysDict.getDictId(); - CacheManager.addExcCount("noExc"); - return Msg.success().add("dictId",dictId); - }else{ - //添加系统 - String deptIds = powerSysDict.getDeptIds(); - if(StringUtils.isBlank(deptIds)){ - deptIds = "-999"; - } - if(!deptIds.contains(",")){ - List deptBySysFlagList = sysDictMapper.selectDeptIdByParentIdAndSysFlag(powerSysDict.getParentId(), powerSysDict.getSysFlag(),deptIds); - if(null != deptBySysFlagList && !deptBySysFlagList.isEmpty()){ - return Msg.fail("系统标识已存在!"); - } + public Msg add(Power_Sys_DictVo powerSysDict, HttpServletRequest request) throws Exception{ + if(powerSysDict.getDictId() == null){ + //添加医院 + if(StringUtils.isNoneBlank(powerSysDict.getHospitalName())){ + Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(powerSysDict.getHospitalName()); + if(dictVo != null){ + return Msg.fail("医院名称不能重复!"); + } + powerSysDictService.insertSelective(powerSysDict,request); + Integer dictId = powerSysDict.getDictId(); + CacheManager.addExcCount("noExc"); + return Msg.success().add("dictId",dictId); + }else{ + //添加系统 + String deptIds = powerSysDict.getDeptIds(); + if(StringUtils.isBlank(deptIds)){ + deptIds = "-999"; + } + if(!deptIds.contains(",")){ + List deptBySysFlagList = sysDictMapper.selectDeptIdByParentIdAndSysFlag(powerSysDict.getParentId(), powerSysDict.getSysFlag(),deptIds); + if(null != deptBySysFlagList && !deptBySysFlagList.isEmpty()){ + return Msg.fail("系统标识已存在!"); } - /*List dicts = powerSysDictService.checkSysFlagOrSysNameByDeptIds(powerSysDict.getSysFlag(), powerSysDict.getSysName(), deptIds); - if(null != dicts && !dicts.isEmpty()) { - if (StringUtils.isNoneBlank(powerSysDict.getSysFlag())) { - return Msg.fail("系统标识已存在!"); - } else { - return Msg.fail("系统名称已存在!"); - } - }*/ - if(StringUtils.isNoneBlank(deptIds) && deptIds.contains(",")){ - int count = powerSysDictService.simpleInsertDict(powerSysDict, deptIds, request); - if(count == 0){ - return Msg.fail("系统已存在!"); - }else{ - int dictLastId = sysDictMapper.selectLastDict(); - powerSysDict.setDictId(dictLastId); - } + } + if(StringUtils.isNoneBlank(deptIds) && deptIds.contains(",")){ + int count = powerSysDictService.simpleInsertDict(powerSysDict, deptIds, request); + if(count == 0){ + return Msg.fail("系统已存在!"); }else{ - powerSysDict.setDeptId(Integer.valueOf(deptIds)); - powerSysDictService.insertSelective(powerSysDict,request); + int dictLastId = sysDictMapper.selectLastDict(); + powerSysDict.setDictId(dictLastId); } + }else{ + powerSysDict.setDeptId(Integer.valueOf(deptIds)); + powerSysDictService.insertSelective(powerSysDict,request); + } + CacheManager.addExcCount("noExc"); + return Msg.success().add("dictId",powerSysDict.getDictId()); + } + }else{ + //修改 + if(StringUtils.isNoneBlank(powerSysDict.getHospitalName())){ + //修改医院信息 + Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(powerSysDict.getHospitalName()); + if(dictVo != null && !dictVo.getDictId().equals(powerSysDict.getDictId())){ + return Msg.fail("医院名称已存在!"); + }else{ + powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); CacheManager.addExcCount("noExc"); return Msg.success().add("dictId",powerSysDict.getDictId()); } }else{ - //修改 - if(StringUtils.isNoneBlank(powerSysDict.getHospitalName())){ - //修改医院信息 - Power_Sys_DictVo dictVo = powerSysDictService.checkHospitalName(powerSysDict.getHospitalName()); - if(dictVo != null && !dictVo.getDictId().equals(powerSysDict.getDictId())){ - return Msg.fail("医院名称已存在!"); - }else{ - powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); - CacheManager.addExcCount("noExc"); - return Msg.success().add("dictId",powerSysDict.getDictId()); + //修改系统信息 + Integer deptId = powerSysDict.getDeptId(); + if(null == deptId){ + deptId = -999; + } + List flagExists = powerSysDictService.checkSysFlagOrSysNameByDeptId(powerSysDict.getSysFlag(), null, deptId.toString()); + if(null != flagExists && !flagExists.isEmpty()) { + //判断是否包含在这个集合里 + boolean flagExist = false; + for (Power_Sys_Dict flagExist1 : flagExists) { + if (!flagExist1.getDictId().equals(powerSysDict.getDictId())) { + flagExist = true; + } } - }else{ - //修改系统信息 - Integer deptId = powerSysDict.getDeptId(); - if(null == deptId){ - deptId = -999; + if(flagExist){ + return Msg.fail("系统标识已存在!"); } - List flagExists = powerSysDictService.checkSysFlagOrSysNameByDeptId(powerSysDict.getSysFlag(), null, deptId.toString()); - if(null != flagExists && !flagExists.isEmpty()) { - //判断是否包含在这个集合里 - Boolean flagExist = false; - for (int i = 0; i < flagExists.size(); i++) { - if(!flagExists.get(i).getDictId().equals(powerSysDict.getDictId())){ - flagExist = true; - } - } - if(flagExist){ - return Msg.fail("系统标识已存在!"); + } + //修改系统信息 + List sysNameExists = powerSysDictService.checkSysFlagOrSysNameByDeptId(null, powerSysDict.getSysName(), deptId.toString()); + if(null != sysNameExists && !sysNameExists.isEmpty()) { + //判断是否包含在这个集合里 + boolean sysNameExist = false; + for (Power_Sys_Dict sysNameExist1 : sysNameExists) { + if (!sysNameExist1.getDictId().equals(powerSysDict.getDictId())) { + sysNameExist = true; } } - //修改系统信息 - List sysNameExists = powerSysDictService.checkSysFlagOrSysNameByDeptId(null, powerSysDict.getSysName(), deptId.toString()); - if(null != sysNameExists && !sysNameExists.isEmpty()) { - //判断是否包含在这个集合里 - Boolean sysNameExist = false; - for (int i = 0; i < sysNameExists.size(); i++) { - if(!sysNameExists.get(i).getDictId().equals(powerSysDict.getDictId())){ - sysNameExist = true; - } - } - if(sysNameExist){ - return Msg.fail("系统名称已存在!"); - } + if(sysNameExist){ + return Msg.fail("系统名称已存在!"); } - if(StringUtils.isNoneBlank(powerSysDict.getSysType()) && "权限系统".equals(powerSysDict.getSysType())){ - powerSysDict.setDeptId(null); + } + if(StringUtils.isNoneBlank(powerSysDict.getSysType()) && "权限系统".equals(powerSysDict.getSysType())){ + powerSysDict.setDeptId(null); - }else{ - //计算出科室减少部分批量删除,增加部分批量增加,重叠部分批量修改 - } - powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); + }else{ + //计算出科室减少部分批量删除,增加部分批量增加,重叠部分批量修改 } - CacheManager.addExcCount("noExc"); - return Msg.success().add("dictId",powerSysDict.getDictId()); + powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("添加失败,请联系系统管理员!"); + CacheManager.addExcCount("noExc"); + return Msg.success().add("dictId",powerSysDict.getDictId()); } } @RequiresPermissions(value="/dict/update") @RequestMapping("/update") @ResponseBody - public Msg update(@RequestBody Power_Sys_Dict powerSysDict, HttpServletRequest request){ - try { - powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("更新失败,请联系系统管理员!"); - } + public Msg update(@RequestBody Power_Sys_Dict powerSysDict, HttpServletRequest request) throws Exception{ + powerSysDictService.updateByPrimaryKeySelective(powerSysDict,request); + CacheManager.addExcCount("noExc"); + return Msg.success(); } @RequiresPermissions(value="/dict/delete") @RequestMapping("/delete") @ResponseBody - public Msg delete(Integer dictId){ - try { - powerSysDictService.deleteByPrimaryKey(dictId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("更新失败,请联系系统管理员!"); - } + public Msg delete(Integer dictId) throws Exception{ + powerSysDictService.deleteByPrimaryKey(dictId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } @RequestMapping("/selectType") @ResponseBody public List selectType(){ try { - List power_sys_dictVos = powerSysDictService.selectSysType(); + List powerSysDictVos = powerSysDictService.selectSysType(); CacheManager.addExcCount("noExc"); - return power_sys_dictVos; + return powerSysDictVos; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } - @RequestMapping("/export") - public void download(HttpServletResponse response){ - try { - powerSysDictService.export(response); - CacheManager.addExcCount("noExc"); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - } - } @RequestMapping("/getHospitalByParentId") @ResponseBody - public Msg getHospitalByParentId(Integer dictId){ - try { - Power_Sys_DictVo powerSysExsit = powerSysDictService.getHospitalByParentId(dictId, "权限系统"); - CacheManager.addExcCount("noExc"); - if(null != powerSysExsit){ - return Msg.fail(); - }else{ - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("查询失败,请联系系统管理员!"); + public Msg getHospitalByParentId(Integer dictId) throws Exception{ + Power_Sys_DictVo powerSysExsit = powerSysDictService.getHospitalByParentId(dictId, "权限系统"); + CacheManager.addExcCount("noExc"); + if(null != powerSysExsit){ + return Msg.fail(); + }else{ + return Msg.success(); } } @@ -324,7 +280,7 @@ public class Power_Sys_DictController { dict = hospital; model.addAttribute("dict",dict); } - if(level != 0 && selfId >= 0 || selfId == -100){ + if(selfId >= 0 || selfId == -100){ //权限系统是否存在,不存在才加载 Power_Sys_DictVo powerSysExsit = powerSysDictService.getHospitalByParentId(selfId, "权限系统"); if(null == powerSysExsit && level != 2 || "权限系统".equals(hospital.getSysType())){ @@ -338,9 +294,7 @@ public class Power_Sys_DictController { sysTypes.add("科研系统"); sysTypes.add("其它"); model.addAttribute("sysTypes",sysTypes); - if(hospital != null){ - selfId = hospital.getHospitalId(); - } + selfId = hospital.getHospitalId(); List depts = deptService.selectDeptByDictId(selfId,dict.getSysFlag()); model.addAttribute("depts",depts); } @@ -359,6 +313,7 @@ public class Power_Sys_DictController { model.addAttribute("deptId",deptId); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -367,26 +322,20 @@ public class Power_Sys_DictController { @RequestMapping("/checkSysFlagOrSysNameByDeptId") @ResponseBody - public Msg checkSysFlagOrSysNameByDeptId(String sysFlag,String sysName,String deptIds){ - try { - if(StringUtils.isBlank(deptIds)){ - deptIds = "-999"; - } - List dicts = powerSysDictService.checkSysFlagOrSysNameByDeptId(sysFlag, sysName, deptIds); - CacheManager.addExcCount("noExc"); - if(null != dicts && !dicts.isEmpty()){ - if(StringUtils.isNoneBlank(sysFlag)){ - return Msg.fail("系统标识已存在!"); - }else{ - return Msg.fail("系统名称已存在!"); - } + public Msg checkSysFlagOrSysNameByDeptId(String sysFlag,String sysName,String deptIds) throws Exception{ + if(StringUtils.isBlank(deptIds)){ + deptIds = "-999"; + } + List dicts = powerSysDictService.checkSysFlagOrSysNameByDeptId(sysFlag, sysName, deptIds); + CacheManager.addExcCount("noExc"); + if(null != dicts && !dicts.isEmpty()){ + if(StringUtils.isNoneBlank(sysFlag)){ + return Msg.fail("系统标识已存在!"); }else{ - return Msg.success(); + return Msg.fail("系统名称已存在!"); } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("验证失败,请联系系统管理员!"); + }else{ + return Msg.success(); } } } diff --git a/power-admin/src/main/java/com/manage/controller/RoleAndUserPowerController.java b/power-admin/src/main/java/com/manage/controller/RoleAndUserPowerController.java index b8658b3..17ecc0b 100644 --- a/power-admin/src/main/java/com/manage/controller/RoleAndUserPowerController.java +++ b/power-admin/src/main/java/com/manage/controller/RoleAndUserPowerController.java @@ -8,6 +8,7 @@ import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.PowerService; import com.manage.service.Power_UserService; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; import com.manage.vo.PowerTree; import com.manage.vo.Power_UserAndRoleTree; @@ -75,6 +76,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -98,7 +100,7 @@ public class RoleAndUserPowerController { */ @RequestMapping(value = "getMenuBySysIdAndRoleIdPowerTree",produces = {"text/json;charset=UTF-8"}) @ResponseBody - public String getMenuBySysIdAndRoleIdPowerTree(String sysFlag,Integer roleId,HttpServletRequest request){ + public String getMenuBySysIdAndRoleIdPowerTree(String sysFlag,Integer roleId){ try { List menus = powerService.getMenuBySysIdAndRoleIdPowerTree(sysFlag,roleId); ObjectMapper mapper = new ObjectMapper(); @@ -106,6 +108,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -134,6 +137,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -183,6 +187,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -205,19 +210,13 @@ public class RoleAndUserPowerController { @RequiresPermissions(value="/menuPower/addRoleMenu") @RequestMapping("/addRoleMenu") @ResponseBody - public Msg addRoleMenu(Integer roleId,String sysFlag,String menus){ - try { - //医院管理员不需要保存 - if(roleId != -100){ - powerService.addRoleMenu(roleId,sysFlag,menus); - } - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("保存失败,请联系系统管理员!"); + public Msg addRoleMenu(Integer roleId,String sysFlag,String menus) throws Exception{ + //医院管理员不需要保存 + if(roleId != -100){ + powerService.addRoleMenu(roleId,sysFlag,menus); } + CacheManager.addExcCount("noExc"); + return Msg.success(); } /**************************************用户菜单权限操作************************************************/ /** @@ -263,6 +262,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -291,6 +291,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -319,6 +320,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -341,20 +343,14 @@ public class RoleAndUserPowerController { @RequiresPermissions(value="/menuPower/addUserMenu") @RequestMapping("addUserMenu") @ResponseBody - public Msg addUserMenu(Integer userId, String sysFlag, String menus){ - try { - Power_UserVo user = userService.selectByPrimaryKey(userId); - //医院管理员不需要保存 - if(user.getRoleId() != -100){ - powerService.addUserMenu(userId,sysFlag,menus); - } - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch(Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("保存失败,请联系系统管理员!"); + public Msg addUserMenu(Integer userId, String sysFlag, String menus) throws Exception{ + Power_UserVo user = userService.selectByPrimaryKey(userId); + //医院管理员不需要保存 + if(user.getRoleId() != -100){ + powerService.addUserMenu(userId,sysFlag,menus); } + CacheManager.addExcCount("noExc"); + return Msg.success(); } /******************************************归属管理操作*********************************************************/ /** @@ -379,6 +375,7 @@ public class RoleAndUserPowerController { CacheManager.addExcCount("noExc"); return json; }catch(Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; diff --git a/power-admin/src/main/java/com/manage/controller/RoleController.java b/power-admin/src/main/java/com/manage/controller/RoleController.java index 98a9c54..feebcab 100644 --- a/power-admin/src/main/java/com/manage/controller/RoleController.java +++ b/power-admin/src/main/java/com/manage/controller/RoleController.java @@ -3,10 +3,10 @@ package com.manage.controller; import com.manage.annotation.OptionalLog; import com.manage.annotation.RequiresPermissions; import com.manage.entity.Power_Role; -import com.manage.entity.Power_User; import com.manage.service.cache.CacheManager; import com.manage.service.Power_RoleService; import com.manage.service.ImportExcel.ImportExcelUtil; +import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; import com.manage.util.PageHelper; import com.manage.vo.ImportExcelEntity; @@ -28,7 +28,6 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.OutputStream; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; @@ -66,6 +65,7 @@ public class RoleController { pageHelper.setRows(list); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -77,18 +77,6 @@ public class RoleController { * @Description 返回页面 * */ @OptionalLog(module = "查看",methods = "角色管理页面") - @RequiresPermissions(value="/role/pageUI") - @RequestMapping("/pageUI") - public String pageUI(){ - CacheManager.addExcCount("noExc"); - return "roleDir/role"; - } - /** - * @Date 2019-4-25 - * @Author ly - * @Description 返回页面 - * */ - @OptionalLog(module = "查看",methods = "角色管理页面") @RequiresPermissions(value="/role/pageUINotDown") @RequestMapping("/pageUINotDown") public String pageUINotDown(){ @@ -103,23 +91,16 @@ public class RoleController { * */ @RequestMapping("/checkRoleName") @ResponseBody - public Msg checkRoleName(String roleName){ - try { - Power_Role role = powerRoleService.checkRoleName(roleName); - CacheManager.addExcCount("noExc"); - if(null != role){ - return Msg.fail("角色名已存在!"); - }else{ - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("验证角色名出错了,请联系系统管理员!"); + public Msg checkRoleName(String roleName) throws Exception{ + Power_Role role = powerRoleService.checkRoleName(roleName); + CacheManager.addExcCount("noExc"); + if(null != role){ + return Msg.fail("角色名已存在!"); + }else{ + return Msg.success(); } } - /** * @Date 2019-4-25 * @Author ly @@ -129,20 +110,14 @@ public class RoleController { @RequiresPermissions(value="/role/add") @RequestMapping("/add") @ResponseBody - public Msg add(Power_Role powerRole){ - try { - Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); - if(null != role){ - return Msg.fail("角色名不能重复!"); - }else{ - powerRoleService.insertSelective(powerRole); - } - CacheManager.addExcCount("noExc"); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace();; - return Msg.fail("新增失败,请联系系统管理员!"); + public Msg add(Power_Role powerRole) throws Exception{ + Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); + if(null != role){ + return Msg.fail("角色名不能重复!"); + }else{ + powerRoleService.insertSelective(powerRole); } + CacheManager.addExcCount("noExc"); return Msg.success(); } @@ -155,20 +130,14 @@ public class RoleController { @RequiresPermissions(value="/role/update") @RequestMapping("/update") @ResponseBody - public Msg update(Power_Role powerRole,HttpServletRequest request){ - try { - Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); - if(null != role && !role.getRoleId().equals(powerRole.getRoleId())){ - return Msg.fail("角色名不能重复!"); - }else{ - powerRoleService.updateByPrimaryKeySelective(powerRole,request); - } - CacheManager.addExcCount("noExc"); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("更新失败,请联系系统管理员!"); + public Msg update(Power_Role powerRole,HttpServletRequest request) throws Exception{ + Power_Role role = powerRoleService.checkRoleName(powerRole.getRoleName()); + if(null != role && !role.getRoleId().equals(powerRole.getRoleId())){ + return Msg.fail("角色名不能重复!"); + }else{ + powerRoleService.updateByPrimaryKeySelective(powerRole,request); } + CacheManager.addExcCount("noExc"); return Msg.success(); } /** @@ -180,16 +149,10 @@ public class RoleController { @RequiresPermissions(value="/role/delete") @RequestMapping("/delete") @ResponseBody - public Msg delete(Integer roleId){ - try { - powerRoleService.deleteByPrimaryKey(roleId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg delete(Integer roleId) throws Exception{ + powerRoleService.deleteByPrimaryKey(roleId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } /** * @Date 2019-4-25 @@ -204,6 +167,7 @@ public class RoleController { CacheManager.addExcCount("noExc"); return powerRole; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; @@ -222,6 +186,7 @@ public class RoleController { powerRoleService.export(powerRole,response,request); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -239,6 +204,7 @@ public class RoleController { powerRoleService.exportNotDown(powerRole,response,request); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -252,78 +218,17 @@ public class RoleController { @ResponseBody public List selectList(HttpServletRequest request){ try { - List power_roles = powerRoleService.selectListByPower(request); + List powerRoles = powerRoleService.selectListByPower(request); CacheManager.addExcCount("noExc"); - return power_roles; + return powerRoles; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } - /** - * @Date 2019-10-11 - * @Author zengwh - * @Description 导入excel - * */ - @OptionalLog(module = "导入excel",methods = "角色管理") - @RequiresPermissions(value="/role/importExcel") - @RequestMapping(value="/importExcel",method = {RequestMethod.POST}) - @ResponseBody - public ResponseEntity importExcel(HttpServletRequest request){ - OutputStream os = null; - HttpHeaders responseHeaders = new HttpHeaders(); - responseHeaders.setContentType(new MediaType("text","html",Charset.forName("UTF-8"))); - try { - //读取文件 - MultipartResolver resolver = new CommonsMultipartResolver(request.getSession().getServletContext()); - MultipartHttpServletRequest multipartRequest = resolver.resolveMultipart(request); - MultipartFile multipartFile = multipartRequest.getFile("upfile"); - //属性名 - String[] fieldNames = {"roleName","remark","showRecord","downloadRecord","effective"}; - //判断集中类中的方法名 - String[] judgeMethods = {"judgeRoleName","judgeRemark","judgeShowRecord","judgeDownloadRecord","convertEffective"}; - //导入excel的操作 - Power_Role role = new Power_Role(); - SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - Power_UserVo user = (Power_UserVo)request.getSession().getAttribute("CURRENT_USER"); - role.setCreater(user.getUserName()); - role.setUpdater(user.getUserName()); - role.setCreateDate(fmt.format(new Date())); - role.setUpdateDate(fmt.format(new Date())); - //实例化 - ImportExcelUtil.newInstance("power_RoleMapper",role, Power_Role.class); - //导入excel的操作 - ImportExcelEntity excelEntity = ImportExcelUtil.fileImport(multipartFile,fieldNames, judgeMethods); - CacheManager.addExcCount("noExc"); - if(excelEntity.getSuccessCount() == 0 && excelEntity.getWrongCount() == 0){ - //无数据 - return new ResponseEntity("无数据!", responseHeaders, HttpStatus.OK); - } - if(excelEntity.getWrongCount() == 0){ - //成功 - return new ResponseEntity(null, responseHeaders, HttpStatus.OK); - }else{ - //有出错数据 - String msgStr = excelEntity.getWorkBookKey()+"@已成功导入"+excelEntity.getSuccessCount()+"条,失败"+excelEntity.getWrongCount()+"条,随后将导出错误记录!"; - return new ResponseEntity(msgStr, responseHeaders, HttpStatus.OK); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - //抛异常 - return new ResponseEntity(e.getMessage(), responseHeaders, HttpStatus.OK); - }finally { - if(os != null){ - try { - os.close(); - }catch (Exception e){ - e.printStackTrace(); - } - } - } - } - /** * @Date 2019-10-11 * @Author zengwh @@ -334,7 +239,6 @@ public class RoleController { @RequestMapping(value="/importExcelNotDown",method = {RequestMethod.POST}) @ResponseBody public ResponseEntity importExcelNotDown(HttpServletRequest request){ - OutputStream os = null; HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(new MediaType("text","html",Charset.forName("UTF-8"))); try { @@ -372,17 +276,10 @@ public class RoleController { return new ResponseEntity(msgStr, responseHeaders, HttpStatus.OK); } }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); //抛异常 return new ResponseEntity(e.getMessage(), responseHeaders, HttpStatus.OK); - }finally { - if(os != null){ - try { - os.close(); - }catch (Exception e){ - e.printStackTrace(); - } - } } } } diff --git a/power-admin/src/main/java/com/manage/controller/T_MenuController.java b/power-admin/src/main/java/com/manage/controller/T_MenuController.java index b82f38e..120027d 100644 --- a/power-admin/src/main/java/com/manage/controller/T_MenuController.java +++ b/power-admin/src/main/java/com/manage/controller/T_MenuController.java @@ -29,16 +29,9 @@ public class T_MenuController { */ @RequestMapping(value="/infoById/{id}",method=RequestMethod.GET) @ResponseBody - public Msg getinfoById(@PathVariable("id")Integer id){ - try { - T_Menu obj=new T_Menu(); - obj=t_menuService.getRole(); - CacheManager.addExcCount("noExc"); - return Msg.success().add("obj", obj); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return null; - } + public Msg getinfoById(@PathVariable("id")Integer id) throws Exception{ + T_Menu obj = t_menuService.getRole(); + CacheManager.addExcCount("noExc"); + return Msg.success().add("obj", obj); } } diff --git a/power-admin/src/main/java/com/manage/controller/UserController.java b/power-admin/src/main/java/com/manage/controller/UserController.java index b050041..33af36c 100644 --- a/power-admin/src/main/java/com/manage/controller/UserController.java +++ b/power-admin/src/main/java/com/manage/controller/UserController.java @@ -5,7 +5,6 @@ import com.manage.annotation.RequiresPermissions; import com.manage.dao.Power_User_DictMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; -import com.manage.entity.Power_Dept; import com.manage.entity.Power_User; import com.manage.service.Power_DeptService; import com.manage.service.cache.CacheManager; @@ -30,7 +29,6 @@ import org.springframework.web.multipart.commons.CommonsMultipartResolver; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.OutputStream; import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.Date; @@ -62,6 +60,7 @@ public class UserController { pageHelper.setRows(list); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -76,30 +75,20 @@ public class UserController { Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); //根据登陆者查询所属医院id。非系统管理员,查询所属医院id Integer dictId = null; - if(!user.getRoleId().equals(0)){ - Power_User_Dict power_user_dict = userDictMapper.selectDictIdByUserId(user.getUserId()); - dictId = power_user_dict.getDictId(); + List 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(); } - List depts = deptService.selectDeptByDictId(dictId,null); 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; - if(!user.getRoleId().equals(0)){ - Power_User_Dict power_user_dict = userDictMapper.selectDictIdByUserId(user.getUserId()); - dictId = power_user_dict.getDictId(); - } - List depts = deptService.selectDeptByDictId(dictId,null); - model.addAttribute("depts",depts); - return "userDir/user1"; - } @OptionalLog(module = "导出excel",methods = "用户管理") @RequiresPermissions(value="/user/export") @@ -109,18 +98,7 @@ public class UserController { powerUserService.export(powerUser,request,response); CacheManager.addExcCount("noExc"); }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - } - } - @OptionalLog(module = "导出excel",methods = "用户管理") - @RequiresPermissions(value="/user/export") - @RequestMapping("/export1") - public void download1(Power_UserVo powerUser,HttpServletRequest request,HttpServletResponse response){ - try { - powerUserService.export1(powerUser,request,response); - CacheManager.addExcCount("noExc"); - }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -128,19 +106,13 @@ public class UserController { @RequestMapping("/checkUserName") @ResponseBody - public Msg checkUserName(String userName){ - try { - List list = powerUserService.checkUserName(userName); - CacheManager.addExcCount("noExc"); - if(null != list && !list.isEmpty()){ - return Msg.fail("用户名已存在!"); - }else{ - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); + public Msg checkUserName(String userName) throws Exception{ + List list = powerUserService.checkUserName(userName); + CacheManager.addExcCount("noExc"); + if(null != list && !list.isEmpty()){ + return Msg.fail("用户名已存在!"); + }else{ + return Msg.success(); } } @@ -148,39 +120,25 @@ public class UserController { @RequiresPermissions(value="/user/add") @RequestMapping("/add") @ResponseBody - public Msg add(Power_User powerUser){ - try { - List user = powerUserService.checkUserName(powerUser.getUserName()); - CacheManager.addExcCount("noExc"); - if(null != user && !user.isEmpty()){ - return Msg.fail("用户已存在!"); - }else{ - powerUserService.insertSelective(powerUser); - return Msg.success(); - } - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); + public Msg add(Power_User powerUser) throws Exception{ + List user = powerUserService.checkUserName(powerUser.getUserName()); + CacheManager.addExcCount("noExc"); + if(null != user && !user.isEmpty()){ + return Msg.fail("用户已存在!"); + }else{ + powerUserService.insertSelective(powerUser); + return Msg.success(); } - - } @OptionalLog(module = "删除",methods = "用户管理",fieldName = "userName",tableName = "power_user") @RequiresPermissions(value="/user/delete") @RequestMapping("/delete") @ResponseBody - public Msg delete(Integer userId){ - try { - powerUserService.deleteByPrimaryKey(userId); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("删除失败,请联系系统管理员!"); - } + public Msg delete(Integer userId) throws Exception{ + powerUserService.deleteByPrimaryKey(userId); + CacheManager.addExcCount("noExc"); + return Msg.success(); } @@ -188,21 +146,14 @@ public class UserController { @RequiresPermissions(value="/user/update") @RequestMapping("/update") @ResponseBody - public Msg update(Power_User powerUser,HttpServletRequest request){ - try { - List user = powerUserService.checkUserName(powerUser.getUserName()); - if(null != user && !user.isEmpty() && !user.get(0).getUserId().equals(powerUser.getUserId())){ - return Msg.fail("用户名已存在!"); - }else{ - powerUserService.updateByPrimaryKeySelective(powerUser,request); - CacheManager.addExcCount("noExc"); - return Msg.success(); - } - - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail("更新失败,请联系系统管理员!"); + public Msg update(Power_User powerUser,HttpServletRequest request) throws Exception{ + List user = powerUserService.checkUserName(powerUser.getUserName()); + if(null != user && !user.isEmpty() && !user.get(0).getUserId().equals(powerUser.getUserId())){ + return Msg.fail("用户名已存在!"); + }else{ + powerUserService.updateByPrimaryKeySelective(powerUser,request); + CacheManager.addExcCount("noExc"); + return Msg.success(); } } @@ -210,20 +161,14 @@ public class UserController { @RequiresPermissions(value="/user/resetPassword") @RequestMapping("/resetPassword") @ResponseBody - public Msg update(Integer userId){ - try { - ServletRequestAttributes attr=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - HttpServletRequest request =attr.getRequest(); - Power_UserVo powerUser = powerUserService.selectByPrimaryKey(userId); - powerUser.setUserPwd(Base64.encode(MD5.KL("000000"))); - powerUserService.updateByPrimaryKeySelective(powerUser,request); - CacheManager.addExcCount("noExc"); - return Msg.success(); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg update(Integer userId) throws Exception{ + ServletRequestAttributes attr=(ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request =attr.getRequest(); + Power_UserVo powerUser = powerUserService.selectByPrimaryKey(userId); + powerUser.setUserPwd(Base64.encode(MD5.KL("000000"))); + powerUserService.updateByPrimaryKeySelective(powerUser,request); + CacheManager.addExcCount("noExc"); + return Msg.success(); } @RequestMapping("/selectUser") @ResponseBody @@ -233,11 +178,13 @@ public class UserController { CacheManager.addExcCount("noExc"); return powerUser; }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); return null; } } + @RequestMapping(value = "/toUpdatePassword") public String toUpdatePassword(HttpServletRequest request, Model model){ try { @@ -246,6 +193,7 @@ public class UserController { model.addAttribute("user",userVo); CacheManager.addExcCount("noExc"); }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); } @@ -255,16 +203,10 @@ public class UserController { @OptionalLog(module = "修改密码",methods = "用户管理") @RequestMapping(value = "/updatePassword") @ResponseBody - public Msg updatePassword(String userPwd){ - try { - boolean result = powerUserService.updatePassword(userPwd); - CacheManager.addExcCount("noExc"); - return Msg.success().add("result",result); - }catch (Exception e){ - CacheManager.addExcCount("exc"); - e.printStackTrace(); - return Msg.fail(); - } + public Msg updatePassword(String userPwd) throws Exception{ + boolean result = powerUserService.updatePassword(userPwd); + CacheManager.addExcCount("noExc"); + return Msg.success().add("result",result); } /** @@ -277,7 +219,6 @@ public class UserController { @RequestMapping(value="/importExcel",method = {RequestMethod.POST}) @ResponseBody public ResponseEntity importExcel(HttpServletRequest request){ - OutputStream os = null; HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(new MediaType("text","html", Charset.forName("UTF-8"))); try { @@ -314,17 +255,10 @@ public class UserController { return new ResponseEntity(msgStr, responseHeaders, HttpStatus.OK); } }catch (Exception e){ + ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); //抛异常 return new ResponseEntity(e.getMessage(), responseHeaders, HttpStatus.OK); - }finally { - if(os != null){ - try { - os.close(); - }catch (Exception e){ - e.printStackTrace(); - } - } } } } diff --git a/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java b/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java index d9c7f41..0d1de87 100644 --- a/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java +++ b/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java @@ -2,13 +2,15 @@ package com.manage.interceptor; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; -import com.manage.entity.Power_User; import com.manage.service.cache.Cache; import com.manage.service.cache.CacheManager; import com.manage.service.Power_UserService; import com.manage.util.Constant; +import com.manage.util.DateUtils; +import com.manage.vo.Power_UserVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.util.AntPathMatcher; import org.springframework.util.PathMatcher; import org.springframework.web.servlet.HandlerInterceptor; @@ -18,10 +20,12 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Properties; -public class LoginInterceptor implements HandlerInterceptor { +public class LoginInterceptor implements HandlerInterceptor { + @Value("${TOKEN_EXPIRE_TIME}") + private long TOKEN_EXPIRE_TIME; @Autowired Power_UserService powerUserService; - + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { String ctx = request.getServletContext().getContextPath(); String url = request.getRequestURI(); @@ -37,7 +41,7 @@ public class LoginInterceptor implements HandlerInterceptor { if(!"/getSessionRemainingTime".equals(parentUrl)){ request.getSession().setAttribute(request.getSession().getId(),System.currentTimeMillis()); } - if (excludes(parentUrl, Constant.RELEASE_REQUEST,request)) { + if (excludes(parentUrl, Constant.RELEASE_REQUEST)) { response.setHeader("Access-Control-Allow-Origin","*"); return true; }else{ @@ -46,6 +50,12 @@ public class LoginInterceptor implements HandlerInterceptor { token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if (cache != null) { + if(!"/getSessionRemainingTime".equals(parentUrl)) { + //更新过期时间 + Power_UserVo user = (Power_UserVo) cache.getValue(); + String date = String.valueOf(DateUtils.getDate()); + CacheManager.putCache(token, new Cache(date, user, TOKEN_EXPIRE_TIME)); + } return true; } } @@ -55,16 +65,16 @@ public class LoginInterceptor implements HandlerInterceptor { } @Override - public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView){ } @Override - public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e){ } - private boolean excludes(String url,String key,HttpServletRequest request){ + private boolean excludes(String url,String key){ Properties props = new Properties(); ClassLoader loader = Thread.currentThread().getContextClassLoader(); try { @@ -73,23 +83,20 @@ public class LoginInterceptor implements HandlerInterceptor { e.printStackTrace(); } String value = props.getProperty(key); - if(value != null && !"/".equals(value) && value.indexOf(",") != -1){ + if(value != null && !"/".equals(value) && value.contains(",")){ String[] values = value.split(","); PathMatcher matcher = new AntPathMatcher(); for(String v : values){ - if(matcher.match(v,url)) + if(matcher.match(v,url)) { return true; + } + } + }else { + assert value != null; + if(value.equals(url)){ + return true; } - }else if(value.equals(url)){ - return true; } return false; } - - private boolean isHasAuthority(String url,Power_User power_user){ - if(!powerUserService.validUserRoleMenu(url,power_user.getUserId())){ - return false; - } - return true; - } } diff --git a/power-admin/src/main/java/com/manage/interfaces/cache/Cache.java b/power-admin/src/main/java/com/manage/interfaces/cache/Cache.java deleted file mode 100644 index 0ebc1a0..0000000 --- a/power-admin/src/main/java/com/manage/interfaces/cache/Cache.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.manage.interfaces.cache; - -/** - * @Description 缓存DTO - * @Date 2019/7/2 11:41 - * @Created by ljx - */ -public class Cache { - private String key;//缓存ID - private Object value;//缓存数据 - private long timeOut;//更新时间 - private boolean expired; //是否终止 - public Cache() { - super(); - } - - public Cache(String key, Object value, long timeOut, boolean expired) { - this.key = key; - this.value = value; - this.timeOut = timeOut; - this.expired = expired; - } - - public Cache(String key, Object value, long timeOut) { - this.key = key; - this.value = value; - this.timeOut = timeOut; - } - public Cache(String key, Object value) { - this.key = key; - this.value = value; - } - - public String getKey() { - return key; - } - - public long getTimeOut() { - return timeOut; - } - - public Object getValue() { - return value; - } - - public void setKey(String string) { - key = string; - } - - public void setTimeOut(long l) { - timeOut = l; - } - - public void setValue(Object object) { - value = object; - } - - public boolean isExpired() { - return expired; - } - - public void setExpired(boolean b) { - expired = b; - } -} diff --git a/power-admin/src/main/java/com/manage/interfaces/cache/CacheManager.java b/power-admin/src/main/java/com/manage/interfaces/cache/CacheManager.java deleted file mode 100644 index db23b16..0000000 --- a/power-admin/src/main/java/com/manage/interfaces/cache/CacheManager.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.manage.interfaces.cache; - -import com.manage.vo.Power_UserVo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -public class CacheManager { - private static HashMap cacheMap = new HashMap(); - - private CacheManager() { - super(); - } - public static boolean getSimpleFlag(String key){ - try{ - return (Boolean) cacheMap.get(key); - }catch(NullPointerException e){ - return false; - } - } - public static long getServerStartdt(String key){ - try { - return (Long)cacheMap.get(key); - } catch (Exception ex) { - return 0; - } - } - public synchronized static boolean setSimpleFlag(String key,boolean flag){ - if (flag && getSimpleFlag(key)) { - return false; - }else{ - cacheMap.put(key, flag); - return true; - } - } - public synchronized static boolean setSimpleFlag(String key,long serverbegrundt){ - if (cacheMap.get(key) == null) { - cacheMap.put(key,serverbegrundt); - return true; - }else{ - return false; - } - } - - - private synchronized static Cache getCache(String key) { - return (Cache) cacheMap.get(key); - } - - private synchronized static boolean hasCache(String key) { - return cacheMap.containsKey(key); - } - - public synchronized static void clearAll() { - cacheMap.clear(); - } - - public synchronized static void clearAll(String type) { - Iterator i = cacheMap.entrySet().iterator(); - String key; - ArrayList arr = new ArrayList(); - try { - while (i.hasNext()) { - java.util.Map.Entry entry = (java.util.Map.Entry) i.next(); - key = (String) entry.getKey(); - if (key.startsWith(type)) { - arr.add(key); - } - } - for (int k = 0; k < arr.size(); k++) { - clearOnly(arr.get(k)); - } - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - public synchronized static void clearOnly(String key) { - cacheMap.remove(key); - } - - public synchronized static void putCache(String key, Cache obj) { - cacheMap.put(key, obj); - } - - public static Cache getCacheInfo(String key) { - - if (hasCache(key)) { - Cache cache = getCache(key); - if (cacheExpired(cache)) { - cache.setExpired(true); - } - return cache; - }else - return null; - } - - public static void putCacheInfo(String key, Cache obj, long dt,boolean expired) { - Cache cache = new Cache(); - cache.setKey(key); - cache.setTimeOut(dt + System.currentTimeMillis()); - cache.setValue(obj); - cache.setExpired(expired); - cacheMap.put(key, cache); - } - public static void putCacheInfo(String key,Cache obj,long dt){ - Cache cache = new Cache(); - cache.setKey(key); - cache.setTimeOut(dt+System.currentTimeMillis()); - cache.setValue(obj); - cache.setExpired(false); - cacheMap.put(key,cache); - } - - public static boolean cacheExpired(Cache cache) { - if (null == cache) { - return false; - } - long nowDt = System.currentTimeMillis(); - long cacheDt = cache.getTimeOut(); - if (cacheDt <= 0||cacheDt>nowDt) { - return false; - } else { - return true; - } - } - - public static int getCacheSize() { - return cacheMap.size(); - } - - public static int getCacheSize(String type) { - int k = 0; - Iterator i = cacheMap.entrySet().iterator(); - String key; - try { - while (i.hasNext()) { - java.util.Map.Entry entry = (java.util.Map.Entry) i.next(); - key = (String) entry.getKey(); - if (key.indexOf(type) != -1) { - k++; - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - - return k; - } - - public static ArrayList getCacheAllkey() { - ArrayList a = new ArrayList(); - try { - Iterator i = cacheMap.entrySet().iterator(); - while (i.hasNext()) { - java.util.Map.Entry entry = (java.util.Map.Entry) i.next(); - a.add((String) entry.getKey()); - } - } catch (Exception ex) {} finally { - return a; - } - } - - public static ArrayList getCacheListkey(String type) { - ArrayList a = new ArrayList(); - String key; - try { - Iterator i = cacheMap.entrySet().iterator(); - while (i.hasNext()) { - java.util.Map.Entry entry = (java.util.Map.Entry) i.next(); - key = (String) entry.getKey(); - if (key.indexOf(type) != -1) { - a.add(key); - } - } - } catch (Exception ex) {} finally { - return a; - } - } - - public synchronized static void removeCacheByObject(Power_UserVo obj) { - ArrayList a = new ArrayList(); - Object key; - ArrayList arr = new ArrayList(); - try { - Iterator i = cacheMap.entrySet().iterator(); - while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); - Cache cache = CacheManager.getCacheInfo((String)entry.getKey()); - Power_UserVo o = (Power_UserVo)cache.getValue(); - if (obj.getUserName().equals(o.getUserName())) { - arr.add((String)entry.getKey()); - } - } - if(null != arr && !arr.isEmpty()){ - for (int k = 0; k < arr.size(); k++) { - clearOnly(arr.get(k)); - } - } - } catch (Exception ex) {} - } - -} \ No newline at end of file diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java b/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java index c2de6fa..5703725 100644 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java +++ b/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java @@ -10,7 +10,4 @@ public interface PowerWebService { @WebMethod() String getInfosByUserId(@WebParam(name = "token") String token,String sysId); - - @WebMethod - String tempTest(); } diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/RoleAndUserTreeWebService.java b/power-admin/src/main/java/com/manage/interfaces/webservice/RoleAndUserTreeWebService.java deleted file mode 100644 index 202221b..0000000 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/RoleAndUserTreeWebService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.manage.interfaces.webservice; - - -import com.manage.vo.PowerTree; - -import javax.jws.WebMethod; -import javax.jws.WebService; -import java.util.List; - -@WebService -public interface RoleAndUserTreeWebService { - @WebMethod() - List getRolePowerTree(); -} diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java index 5d2b4f3..e35c81f 100644 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java +++ b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java @@ -4,13 +4,10 @@ import com.alibaba.fastjson.JSON; import com.manage.dao.Power_MenuMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; -import com.manage.entity.Power_Menu; -import com.manage.entity.Power_User; import com.manage.service.cache.Cache; 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.vo.Power_UserVo; import com.manage.vo.Power_UserWebServiceVo; import com.manage.vo.User_Dept_Menu; @@ -37,10 +34,6 @@ public class PowerWebServiceImpl implements PowerWebService { public String getInfosByUserId(String token,String sysFlag) { Power_UserWebServiceVo userWebServiceVo = new Power_UserWebServiceVo(); if(StringUtils.isNotBlank(token)){ - //归档系统的特殊登录token=1462903487866169011 - if("1462903487866169011".equals(token)){ - - } token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if(cache != null){ @@ -70,36 +63,4 @@ public class PowerWebServiceImpl implements PowerWebService { } return JSON.toJSONString(userWebServiceVo); } - - @Override - public String tempTest() { - return "aaaa~~~~~~~~~~~~~~~~~~~~~~~"; - } - - private List getPowerMenuMethods(Power_User powerUser, String sysId){ - // 根据用户ID以及系统Id查出所有的用户菜单 - List powerUserMenus = powerMenuMapper.selectUserMenuByUserIdAndDictId(powerUser.getUserId(), Integer.parseInt(sysId)); - // 根据用户ID以及系统Id查出所有的角色菜单 - List powerRoleMenus = powerMenuMapper.selectRoleMenuByUserIdAndDictId(powerUser.getUserId(), Integer.parseInt(sysId)); - // 当前用户的所有菜单集合 - List tempPowerMenus = new ArrayList<>(powerRoleMenus); - for (Power_Menu powerMenu:powerUserMenus) { - if(powerMenu.getFlag().equals(Constant.EFFECTIVE_YES)){ - tempPowerMenus.add(powerMenu); - }else if(powerMenu.getFlag().equals(Constant.EFFECTIVE_NO)){ - tempPowerMenus.remove(powerMenu); - } - } - - List powerMenus = new ArrayList<>(tempPowerMenus); - for (Power_Menu powerMenu:tempPowerMenus) { - for (int i = 0;i"); - String substring = buffer.substring(0, i); - String substring1 = substring.substring(substring.length() - 4, substring.length()); - Float f = Float.valueOf(substring1); - Math.round(f); - System.out.println(substring1); - return buffer.toString(); - } - - public String getBody(String val) { - String start = ""; - String end = ""; - int s = val.indexOf(start) + start.length(); - int e = val.indexOf(end); - return val.substring(s, e); - } -} diff --git a/power-admin/src/main/resources/log4j.properties b/power-admin/src/main/resources/log4j.properties new file mode 100644 index 0000000..817ab7b --- /dev/null +++ b/power-admin/src/main/resources/log4j.properties @@ -0,0 +1,18 @@ +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 + diff --git a/power-admin/src/main/test/com/manage/MapperTest.java b/power-admin/src/main/test/com/manage/MapperTest.java deleted file mode 100644 index 622663b..0000000 --- a/power-admin/src/main/test/com/manage/MapperTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.manage; - -import com.manage.dao.Power_MenuMapper; -import com.manage.dao.T_MenuMapper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.FileSystemXmlApplicationContext; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations={"classpath:config/applicationContext.xml"}) -public class MapperTest { - - @Autowired - T_MenuMapper t_menuMapper; - - /** - * 测试角色mapper - */ - @Test - public void testCRUD(){ - //1、创建SpringIOC容器 - ApplicationContext ioc=new FileSystemXmlApplicationContext("classpath:config/applicationContext.xml"); - T_MenuMapper menuMapper=ioc.getBean(T_MenuMapper.class); - System.out.println(menuMapper); - //Power_MenuMapper powerMenuMapper=ioc.getBean(Power_MenuMapper.class); - //System.out.println(powerMenuMapper); - - //menuMapper.selectByPrimaryKey(1); - - //ApplicationContext ioc=new ClassPathXmlApplicationContext("config/applicationContext.xml"); - //2、从容器中获取mapper - //T_RoleMapper bean=ioc.getBean(T_RoleMapper.class); - //System.out.println(t_roleMapper); - - //1、插入角色 - //t_roleMapper.insertSelective(new T_Role(null,"vip用户","注册的用户","1","admin","2018-03-03 18:18:00","admin","2018-03-03 18:18:00")); - //1、插入用户 - //t_userMapper.insertSelective(new T_User(null,"user6","user6",1,23,"1350167656","123484896@qq.com","福建省***","***","游客用户","1","admin","2018-03-03 18:18:00","admin","2018-03-03 18:18:00",3)); - //3、批量插入用户,使用可以执行批量操作的sqlSession - /*T_UserMapper mapper=sqlSession.getMapper(T_UserMapper.class); - for(int i=0;i<10;i++){ - String uuid=UUID.randomUUID().toString().substring(0,6)+""+i; - mapper.insertSelective(new T_User(null,uuid,uuid,1,23,"135016735"+i,uuid+"@qq.com","福建省***","***","游客用户","1","admin","2018-03-03 18:18:00","admin","2018-03-03 18:18:00",3,"")); - } - System.out.println("批量完成");*/ - //修改 - /*T_User user=new T_User(); - user.setUserId(1); - t_userMapper.updateByPrimaryKey(user);*/ - System.out.println(123); - } -} diff --git a/power-admin/src/main/test/com/manage/WebServiceTest.java b/power-admin/src/main/test/com/manage/WebServiceTest.java deleted file mode 100644 index 49b5cb6..0000000 --- a/power-admin/src/main/test/com/manage/WebServiceTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.manage; - -import com.manage.dao.Power_MenuMapper; -import com.manage.dao.T_MenuMapper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.FileSystemXmlApplicationContext; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - - -public class MapperTest { - /** - * 测试角色mapper - */ - public static void main(String[] arg){ - JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); - Client client = dcf.createClient("http://192.168.1.3:8081/WebService/PowerWebService?wsdl"); - Object[] objects = new Object[0]; - String error = null; - try { - // invoke("方法名",参数1,参数2,参数3....); - objects = client.invoke("getInfosByUserId",token,"0"); - Result result = JSON.parseObject(objects[0].toString() - , new TypeReference() {}); - String permStrs = ""; - if(null != result.getPowerMenuList() && !result.getPowerMenuList().isEmpty()){ - for (Power_Menu p: result.getPowerMenuList()) { - if(StringUtils.isNoneBlank(p.getMenuName())){ - permStrs+=p.getMenuName() + ","; - } - } - } - Power_User powerUser = result.getPowerUser(); - if(powerUser != null){ - Power_User admin = (Power_User)SecurityUtils.getSubject().getPrincipal(); - UserToken userToken = new UserToken(powerUser.getUserName(),powerUser.getUserPwd(),true,powerUser.getRoleId(),permStrs); - Subject subject = SecurityUtils.getSubject(); - subject.login(userToken); - } - String msg = ""; - if (error != null) {//出错了,返回登录页面 - return "redirect://http:192.168.1.3:8080/login"; - } - } -} diff --git a/power-admin/src/main/webapp/WEB-INF/views/deptDir/blood.jsp b/power-admin/src/main/webapp/WEB-INF/views/deptDir/blood.jsp deleted file mode 100644 index d7e727e..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/deptDir/blood.jsp +++ /dev/null @@ -1,225 +0,0 @@ -<%@ 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" %> - - - 部门管理 - - - - - - - -
- - - -
-
-

基本管理/部门管理

-
-
-
-
- - -
- -
- -
- -
-
-
-
- -
- -
-
-
- - -
-
- -
-
-
-
-
-
- - - - - - - - - -
-
-
-
-
- - - - - - - - -<%@ include file="/WEB-INF/jspf/importExcelJsp.jspf" %> - - \ No newline at end of file diff --git a/power-admin/src/main/webapp/WEB-INF/views/dictDir/dict1.jsp b/power-admin/src/main/webapp/WEB-INF/views/dictDir/dict1.jsp deleted file mode 100644 index f23aa4d..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/dictDir/dict1.jsp +++ /dev/null @@ -1,210 +0,0 @@ -<%-- - Created by IntelliJ IDEA. - User: HJL Date: 2019/4/6 - Time: 16:57 - To change this template use File | Settings | File Templates. ---%> -<%@ 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" %> - - - 归属管理(医院、系统) - - - - - - - - - - - -
-
-
-
-
-
基本管理/科室管理
-
-
-
- -
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
-
- -
- -
-
-
- -
- -
-
-
- - -
-
-
-
-
-
- - - 导出Excel - -
-
-
-
-
-
- - - - - - - - - - - - - - - \ No newline at end of file diff --git a/power-admin/src/main/webapp/WEB-INF/views/loginDir/login1.jsp b/power-admin/src/main/webapp/WEB-INF/views/loginDir/login1.jsp deleted file mode 100644 index 81d74ac..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/loginDir/login1.jsp +++ /dev/null @@ -1,82 +0,0 @@ -<%@ page import="java.net.URLDecoder" %> -<%@ page import="com.manage.encrypt.Base64" %> -<%@ page contentType="text/html;charset=UTF-8" language="java" %> -<%@ include file="/WEB-INF/jspf/common.jspf" %> -<% - String path = request.getContextPath(); - String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; - String password=""; - String userName=""; - String checked=""; - Cookie[] cookies = request.getCookies(); //取出cookie对象组 - for(int i = 0; cookies != null && i < cookies.length;i++){ - Cookie cookie = cookies[i]; // 取出其中的一个对象,含有name ,value - if(cookie != null && "name".equals(cookie.getName())){ //获取第一个cookie对象的name - userName = URLDecoder.decode(cookie.getValue(), "UTF-8");//进行解码 - checked = "checked"; - } - if(cookie != null && "password".equals(cookie.getName())){ - password = cookie.getValue(); - password = Base64.decodeBase64(password); - } - } -%> - - - 嘉时软件 - - - - - - - - - - - - - - diff --git a/power-admin/src/main/webapp/WEB-INF/views/loginDir/login174.jsp b/power-admin/src/main/webapp/WEB-INF/views/loginDir/login174.jsp deleted file mode 100644 index 1f75d0f..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/loginDir/login174.jsp +++ /dev/null @@ -1,83 +0,0 @@ -<%@ page import="java.net.URLDecoder" %> -<%@ page import="com.manage.encrypt.Base64" %> -<%@ page contentType="text/html;charset=UTF-8" language="java" %> -<%@ include file="/WEB-INF/jspf/common.jspf" %> -<% - String path = request.getContextPath(); - String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; - String password=""; - String userName=""; - String checked=""; - Cookie[] cookies = request.getCookies(); //取出cookie对象组 - for(int i = 0; cookies != null && i < cookies.length;i++){ - Cookie cookie = cookies[i]; // 取出其中的一个对象,含有name ,value - if(cookie != null && "name".equals(cookie.getName())){ //获取第一个cookie对象的name - userName = URLDecoder.decode(cookie.getValue(), "UTF-8");//进行解码 - checked = "checked"; - } - if(cookie != null && "password".equals(cookie.getName())){ - password = cookie.getValue(); - password = Base64.decodeBase64(password); - } - } -%> - - - 嘉时软件 - - - - - - - - - - - - - - diff --git a/power-admin/src/main/webapp/WEB-INF/views/otherManage/backupDatabase.jsp b/power-admin/src/main/webapp/WEB-INF/views/otherManage/backupDatabase.jsp index 3c3828d..101458a 100644 --- a/power-admin/src/main/webapp/WEB-INF/views/otherManage/backupDatabase.jsp +++ b/power-admin/src/main/webapp/WEB-INF/views/otherManage/backupDatabase.jsp @@ -78,6 +78,7 @@ height: 32px; text-align: right; padding-top: 5px; + padding-right: 22px; } /**表格div*/ @@ -98,7 +99,7 @@
- +
@@ -106,7 +107,7 @@
- +
@@ -114,7 +115,7 @@
- +
@@ -122,10 +123,10 @@
- +
- +
diff --git a/power-admin/src/main/webapp/WEB-INF/views/roleDir/role.jsp b/power-admin/src/main/webapp/WEB-INF/views/roleDir/role.jsp deleted file mode 100644 index b652e12..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/roleDir/role.jsp +++ /dev/null @@ -1,219 +0,0 @@ -<%@ 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" %> - - - 角色管理 - - - - - - - -
- - -
-
-

基本管理/角色管理

-
-
-
-
- - -
-
- -
- -
-
-
- - -
-
- -
-
-
-
-
-
- - - - - - - - - -
-
-
-
-
- - - - - - - - -<%@ include file="/WEB-INF/jspf/importExcelJsp.jspf" %> - - \ No newline at end of file diff --git a/power-admin/src/main/webapp/WEB-INF/views/userDir/user1.jsp b/power-admin/src/main/webapp/WEB-INF/views/userDir/user1.jsp deleted file mode 100644 index c82d334..0000000 --- a/power-admin/src/main/webapp/WEB-INF/views/userDir/user1.jsp +++ /dev/null @@ -1,316 +0,0 @@ -<%@ 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" %> - - - 用户管理 - - - - - - - - - -
- - -
-
-

基本管理/用户管理

-
-
-
-
- - -
-
- - -
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
-
-
-
-
-
- - - - - - - - - - - - -
-
-
-
-
- - - - - - - - -<%@ include file="/WEB-INF/jspf/importExcelJsp.jspf" %> - - \ No newline at end of file diff --git a/power-admin/src/main/webapp/WEB-INF/web.xml b/power-admin/src/main/webapp/WEB-INF/web.xml index a712bef..1a27d89 100644 --- a/power-admin/src/main/webapp/WEB-INF/web.xml +++ b/power-admin/src/main/webapp/WEB-INF/web.xml @@ -46,14 +46,14 @@ org.springframework.web.context.ContextLoaderListener - + + + webAppRootKey + power.root + + + org.springframework.web.util.WebAppRootListener + dispatcherServlet diff --git a/power-admin/src/main/webapp/doc/视图power_user_dict.sql b/power-admin/src/main/webapp/doc/视图power_user_dict.sql new file mode 100644 index 0000000..ce08b8f --- /dev/null +++ b/power-admin/src/main/webapp/doc/视图power_user_dict.sql @@ -0,0 +1,14 @@ +CREATE VIEW power_user_dict AS +SELECT +`power_user`.`user_id` AS `user_id`, +`power_dept`.`dict_id` AS `dict_id` +FROM + (( + `power_user` + JOIN `mysql`.`help_topic` `b` ON (( + `b`.`help_topic_id` < (( length( `power_user`.`dept_id` ) - length( REPLACE ( `power_user`.`dept_id`, _latin1 ',', _latin1 '' ))) + 1 )))) + LEFT JOIN `power_dept` ON (( + `power_dept`.`dept_id` = `power_user`.`dept_id` + ))) +GROUP BY + `power_user`.`user_id` \ No newline at end of file diff --git a/power-admin/src/main/webapp/static/js/blood.js b/power-admin/src/main/webapp/static/js/blood.js deleted file mode 100644 index 75f23ad..0000000 --- a/power-admin/src/main/webapp/static/js/blood.js +++ /dev/null @@ -1,407 +0,0 @@ -var form = '' -var pageNumber = 1; -$(function(){ - var columns = []; - columns.push({ - 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:'deptName', - }); - var roleId = $("#roleId").val(); - if(roleId == 0){ - columns.push({ - title:'所属医院', - field:'hospitalName', - }); - } - columns.push( - { - 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:'deptId', formatter: function(value,row,index){ - var editanddrop = ''; - if(row.isUpdate == 1){ - editanddrop += ''; - } - if(row.isDelete == 1){ - editanddrop += ''; - } - return editanddrop; - } - }); - $('#myModal').modal('hide'); - loadDict(); - //先销毁表格 - $('#bootstrapTable').bootstrapTable({ - //表格高度 - height: getHeight(), - method : 'get', - url :path+ "/dept/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, //当前页码 - deptName:$("#dept_name").val(), - dictId:$("#dict_id option:selected").val(), - effective:$("#effective option:selected").val(), - creater:$("#creater").val(), - }; - return temp; - }, - columns : columns, - 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(); - $("#checks").val(checks+=row.deptId + ","); - }, - //取消单个复选框 - onUncheck:function(row){ - var checks = $("#checks").val(); - checks = checks.replace(row.deptId + ",",""); - $("#checks").val(checks); - }, - //全选 - onCheckAll:function(rows){ - $("#checks").val(""); - var checks = ''; - for(var i=0;i' + comment['hospitalName'] - + ''; - }); - $('#dict_id').append(html); - $('#re_dictId').append(html); - } - } - }); -} -//验证部门名不能重复 -$("#re_deptName").blur(function(){ - var deptId = $("#re_deptId").val(); - var deptName = $("#re_deptName").val(); - if(deptId == '' && deptName != ''){ - var dictId = $("#re_dictId").val(); - $.ajax({ - type:'get', - url:path+'/dept/checkDeptName', - data:{deptName:deptName,dictId:dictId}, - dataType:'json', - success:function(data){ - if(data.code == 200){ - toastr.warning("部门名已存在"); - $("#re_deptName").val(""); - $("#re_deptName").focus(); - } - } - }) - } - -}) -//编辑框回显 -function edit(id){ - $("#myModalLabel").text("编辑"); - $.ajax({ - type: "post", - url: path+ "/dept/selectDept", - data:{ - deptId:id - }, - dataType:"json", - success: function(data){ - $("#re_deptId").val(data.deptId); - $("#re_deptName").val(data.deptName); - $("#re_dictId").find("option[value='"+data.dictId+"']").attr("selected",true); - $("#re_effective").find("option[value='"+data.effective+"']").attr("selected",true); - $("#re_remark").val(data.remark); - } - }); - $('#myModal').modal('show') -} -//删除 -function drop(id) { - Common.confirm({ - title: "提示", - message: "确定是否删除这条记录", - operate: function (reselt) { - if (reselt) { - $.ajax({ - type: "post", - url: path + "/dept/delete", - data: { - deptId: id - }, - async: false, - success: function (data) { - if ("success" == data.msg) { - toastr.success("删除成功!"); - $("#checks").val(""); - backToPage(); - } - }, - error: function () { - window.confirm("删除失败"); - } - }) - } - } - }) -} -//新增框 -function add() { - initable(); - $("#myModalLabel").text('增加'); - $('#myModal').modal('show'); - $("#re_dictId").empty(); - loadDict(); -} -//提交更改 -$('#btn_submit').click(function () { - var deptName = $("#re_deptName").val(); - var dictId = $("#re_dictId").val(); - if(deptName != ''){ - if(dictId != ''){ - var btype = $("#myModalLabel").text(); - if(btype=='编辑'){ - $.ajax({ - type: "post", - url: path+ "/dept/update", - data:$("#updateaddform").serialize(), - dataType:"json", - success: function(data){ - if("success"==data.msg){ - toastr.success("修改成功!"); - backToPage(); - $('#myModal').modal('hide'); - }else{ - toastr.warning(data.msg); - } - } - }) - }else if(btype =='增加'){ - $.ajax({ - type: "post", - url:path+ "/dept/add", - data:$("#updateaddform").serialize(), - dataType:"json", - success: function(data){ - if("success"==data.msg){ - toastr.success("添加成功!"); - setTimeout(function(){ - window.location.reload(); - },500) - $('#myModal').modal('hide'); - }else{ - toastr.warning(data.msg); - } - } - }) - } - }else{ - toastr.warning("所属医院不能为空!"); - } - }else{ - toastr.warning("部门名称不能为空!"); - } -}) -//初始化模态框 -function initable(){ - $("#re_deptId").val(""); - $("#updateaddform")[0].reset(); -} -//导出excel功能 -function exportExcel(){ - var roleId = $("#roleId").val(); - var url = ''; - var checks = $("#checks").val(); - if(checks != '') { - checks = checks.substring(0, checks.length - 1); - if(roleId == 0){ - url = path+"/dept/exportBlood?deptName="+$("#dept_name").val()+"&dictId="+$("#dict_id").val()+"&effective="+$("#effective").val()+"&creater="+$("#creater").val()+"&checks="+checks; - }else{ - url = path+"/dept/exportBlood?deptName="+$("#dept_name").val()+"&effective="+$("#effective").val()+"&creater="+$("#creater").val()+"&checks="+checks; - } - window.location.href = url; - }else{ - Common.confirm({ - title: "提示", - message: "没有选中,您确定要按搜索栏条件导出?", - operate: function (reselt) { - if (reselt) { - if (roleId == 0) { - url = path + "/dept/export?deptName=" + $("#dept_name").val() + "&dictId=" + $("#dict_id").val() + "&effective=" + $("#effective").val() + "&creater=" + $("#creater").val() + "&checks=" + checks; - } else { - url = path + "/dept/export?deptName=" + $("#dept_name").val() + "&effective=" + $("#effective").val() + "&creater=" + $("#creater").val() + "&checks=" + checks; - } - window.location.href = url; - } - } - }) - } -} -//搜索 -$('#queryBtn').click(function () { - $("#checks").val(""); - refresh(); -}) -//获取table的高度 -function getHeight() { - return $(window).height() * 0.8; -} -//刷新表格 -function refresh() { - $('#bootstrapTable').bootstrapTable('refresh',{ - url :path+ '/dept/pageList' - }) -} -//清空 -function clearForm(){ - $("#updateaddform")[0].reset(); -} -//监听关闭模态框刷新事件 -$('#myModal1').on('hide.bs.modal', function () { - window.location.reload(); -}); \ No newline at end of file diff --git a/power-admin/src/main/webapp/static/js/role.js b/power-admin/src/main/webapp/static/js/role.js deleted file mode 100644 index ed0d42f..0000000 --- a/power-admin/src/main/webapp/static/js/role.js +++ /dev/null @@ -1,357 +0,0 @@ -/** - * Created by ly on 2019/4/25. - */ -var pageNumber = 1; -var form = ''; -$(function(){ - $('#myModal').modal('hide'); - //先销毁表格 - $('#bootstrapTable').bootstrapTable({ - //表格高度 - height: getHeight(), - method : 'get', - url : path+ "/role/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, //当前页码 - roleId:$("#role_id").val(), - roleName:$("#role_name").val(), - effective : $("#effective option:selected").val(), - creater:$("#creater").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:'roleName', - }, - { - title:'备注', - field:'remark', - formatter:function (value,row,index) { - if(value ==null){ - return ""; - }else{ - return value; - } - } - }, - { - title:'是否可预览', - field:'showRecord', - formatter: function (value, row, index) { - if(value ==1){ - return '是' - }else if(value ==0){ - return '否' - } - } - }, - { - title:'是否可下载', - field:'downloadRecord', - formatter: function (value, row, index) { - if(value ==1){ - return '是' - }else if(value ==0){ - return '否' - } - } - }, - { - 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:'roleId', formatter: function(value,row,index){ - var editanddrop = ''; - if(row.isUpdate == 1){ - editanddrop += ''; - } - if(row.isDelete == 1){ - editanddrop += ''; - } - 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(); - $("#checks").val(checks+=row.roleId + ","); - }, - //取消单个复选框 - onUncheck:function(row){ - var checks = $("#checks").val(); - checks = checks.replace(row.roleId + ",",""); - $("#checks").val(checks); - }, - //全选 - onCheckAll:function(rows){ - $("#checks").val(""); - var checks = ''; - for(var i=0;i编辑'; - } - if(row.isDelete == 1){ - editanddrop += ''; - } - 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'+value+'

' - 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 += ''; - }); - $('#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 += ''; - } - $('#dept_id').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()+"&userEmail="+$("#user_email").val()+"&searchRoleId="+$("#roleId").val()+"&deptId="+$("#dept_id").val()+"&effective="+$("#effective").val()+"&checks="+checks; - 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(); -}); \ No newline at end of file diff --git a/power-admin/src/main/webapp/static/template/用户列表导入模板(脐血库).xls b/power-admin/src/main/webapp/static/template/用户列表导入模板(脐血库).xls deleted file mode 100644 index f4d6acead235921e28c375e3ee5be309c4be8366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 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 diff --git a/power-admin/src/main/webapp/static/template/角色列表导入模板.xls b/power-admin/src/main/webapp/static/template/角色列表导入模板.xls deleted file mode 100644 index e9afb1ceb07e718226394d303c33c22ecf19f898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19456 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 diff --git a/power-admin/target/classes/com/manage/controller/DeptController.class b/power-admin/target/classes/com/manage/controller/DeptController.class index eaffff7dad468422739bffd48fcb755fc90c3a1a..5c9ec7b22e36b11fff50bf31f18b55478b06c440 100644 GIT binary patch delta 5968 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 Ai2wiq literal 15328 zcmcIr33yc16+Y)BnKzkvNys3}AR=Mk!U!T_00jaHLINf%MQ!OMd4ZA1Oq`hj(bm?A z`-av9+yIqoZ3Wx{Ff^xR$FUZTf<@(Tf117O8;~3o0&Jsu-LCvc*|YRJ?nqY zy>EE#<0rpCL{p5VKDvPyn!LzI1}`k8>$%3ywY*qfm&nsO@>J*LdLJ+4WhO88k)Kz1 z`BQ#g$>)0cJU^e$pEmh3Uas`>D*mjO!(MKXsf|8vV%tl1$h}!EtEG93Tq1tHfY*9C zD$Olkj+q?yQH8M5>Z9Sj&_}26g)%51m!!!lAC2KQxvcZ^dfp(Hc0XUl7yJ2h{CT-t zV)7SE{-Td2$^1!tsh>{bFPVIqylj-0%T2yQUapkORYLh{S?C(MTr0G%lgsrc-{7NJ zLSz=-=%e|3yC;; z8*+cf%ir|zxA@y~`Hqjj%iojBvnGGv%ReaQAM$fPx`cn^;~(?$CcogL%RmYvUX-Vw zc=;u{|J2Jbd--Sb_=@<(&rN>S)|STfWcZcN1!?V)gHLTGkdD!x9Fu$w^EGb0jNww4Avu{4a;m;#I9jp69>a3Uh_PGezeO$5v5$j}&%r4sRI)J}v%fa=UE7AuTK zk}0O}7`M>t;x2iY$EPp4AiOTTLFpoDr$TE|sn*bZTtsDPsIxC@vy-XmW8E~`QjutA z2~;@Wj<(tfELD_(dZJ9c0BTnxLu$|>aDZ-xNd0tkG#pzUnzx}5%tD*!E6!MnX|Q{h zo}4n73C#`D=woD?$=90Uvj_d&QuNQ&dV6bH^AmfBG~-Boo(`d^+yidASUA;|fKtEk|F-Q>nav*z>+Ob6LnPMZjswS)AXh5_ zN1SF|INAmwibG-}aTTVid1EU-xnwKC(Vi1;Y6mfo&{zidTRG+!eIxHmZIMt7VloPc zm%s=qcdbuJs0+s}(#JI9$aBT(1XGp)VJ69F7wFi4l~lVEgE9bQhr0*3kYllmk#KZT zTo(6W@iqYm&%UiY_TP0a;-SS(t%)}Q69W4mxT$;R{rh)r-@oaKgWI1tc=x?b;}1ht z3;{e!F0m6Wkz`Up4dks*6Jk=CLeywxpBkd^c$2gR4qo=)!P_6qU8O|N%M9{{GLOEb z9km-%+Onq~t6h3SO-)kd_X>ZSmLGVPrR*#t_{VgzUPc>kK`dpjhKh4Y=2$=`fws2S zDp}!3_HsshWZZ%#roJvGNw39}=1xX4l{Bug8`sKnEm8&33^#+0XXPQ2!?HpUmliao zfNNUDMLkWCM#bAnx;F#EIg#932d7Ur`Ijh8P^>VOhI%mFU+Y_>SemfyIql-PqJinh zZq+>T#1TmyAUGKr*X^xo?3cx09yJD$R0O^g?YPg=cWXf`W+$qn;bhWA6gVkHYb)G3 zLX8s7ktH0@SrbpTMv$ujLy~wEQ|Sp9YD6HEw>6x=N+O@91#o32m?{-}&EaIqPHbq2 zhAsd^C*!eDQ#ch?NVmA*0{FV1n~Lee3(yN|=dPexavBx3q}`^sEhUePcTE=oa*UXx zBpE%`H5!Z@>oO+4Zt|~m>B=;~iLKtY_O>Q~K#ij50V#V!DkLIKZ(I{jB<ci(#t0LhJM$P&#FJKCf@zgT0ATB
    l}jt4H1Rl(9@D!4UK49#-r;5-cHF|(Ma9Z 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 diff --git a/power-admin/target/classes/com/manage/controller/FontController.class b/power-admin/target/classes/com/manage/controller/FontController.class index e0cb1f8b8d52eba782689eeabdd1ffec6acb98a3..256e79a98e0c4aaf1265f96809d14c8e2ce03124 100644 GIT binary patch literal 13775 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

    ikW)p!GmD(Tuf#139kY%4N`G#r zu`Viap+WNG>^RPP;|n6ddiL2~TUeMC>?Xmzh+YS~-auG+6G87c!1}kq_IEU&evc6N zM_Na3Q$78e($qms)TywZ3{z%Nkr}dv(Yf>*7%NV^+2-VCGu(M;qY7RICnb0p{gFm6 zue^I5ZNkoca(_-$h+OLL8=p{t>-Zl3s>#(iEtKg`ptzu1W#pCl#^p?0;K-*f#5G)A zD5-3M%2BN}@mZQw(MG4Y(c}{M_=7a%f{?oia2D^Usckf^1zo30SELHb5k{;#4OIlu zCy2J60=ECsU^qnyaw!&aX%W1-la9b8UZ$n=F1-hTdzBp#?d?;Ep`cVD- zgGPU|9RBYb{e$35i#{dS=QLNNkBm6b`xu0;)QT2x*fDQ>o6R-B}bhX=l}_ z#ycU0@lMDgL>NsTA;K*3c3D%42w=ffaNxKL{BgGh{61LQk z&(&s_^{HW2nB5`q)CjW(j0m%9AUj^-hmvbW$#v~i3upp4#d?1TZl^lNmy%`ny*s*- zhKBs1Kz~f7_HFg8lxU@f;AQw&-hzE)4=#)&+&eK zjoXwb?nIgU5tXVSuA`!uLH`4v%tLTqK>xvW0N%U=RmOj%P~*2O@5G(Cm&DysjBvry zXW)~cA-2uo`w{FVOfQGEQd@Xn<2A~kb7ARK%1<@eD<$0?`2BibrxJyaE3kd}oQ|RP zTtS;r&Fn$VApR`DUX4U`V~uRLM}9y)qd)4Nfb#Jb)H_cdk!uDaQWJN=n~uPn-lu{57aGMMP$7S)3>s?8VjEO!vT-1t3=ZxA8-+8nb2nNL zW|U!m%E?nJe6Z^ZW?L38Ez>yoVQ(|el}l4y z8ZC2q>0+0Uwz~qf!_}L1x^#NTl}9bEUi7%DkDarZp|}$t7dCI_Uhr(lp(gH)J2!l^ zQAH0Aw#jSMhAbE7hF<%)V7I+qySWcWh<3ZVFG|47dKn|z%uGFS|G49K^IP&bNASKRh3TGU^bA`~NS!+5oix literal 14235 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 JuA4mG&jG*Kz%Bp) delta 3589 zcmaJ@33yc175-0VGWX4UFWV#mo)D5?WXS?1gl&RBRz(OHf+7lH!~_yBU=n0gpC~Bc z28<#JfafcGFs_#Q(m;NbT}{Gxwf*-#O?0XLB9gdL+|v} z%S=PE^m*Ba^fTmq#w|IfTp<1RFo3zxjz`HrLk1a=Ye=59%x5N~K*?YeWP*~3 ztbo9rxMF_Q(#D!4bqz`;MY01sGkcxuwz0mZZo#-^)zww?B??b5>8)=B-jsx%Or63h zhDd~wmyG3BEfy)c#Fk5Ca-=*svDalXg(z&9DrL4zlj($E%jHrYIT&1;Q7bcSsgRk3 zWXlzDr7g4MDkZb^=GBoBGsnFKiv+#@Gr(@VHextx%N!|Vq_)hJYXvEu{<6lJ#X~Nw zY*<)Uxs;*WGEc5kQfbTeGM{nVa)VUaQY~eI)UOPvoHMbmv3{j33#2S^!c2D;YUnjm zD+ty!EEzd+*r()$<2Zu=b%3)k4l!? zvO;*yDm-b+YPrRhTje%E&#&o6UJe+k0-2|kTx~Hmb2e$wRhmm4|KF zrq6EDm2KA2b}c<3JHE`a*Qed(Ykk3PjFz+_7&P6u4rHafYh|{NXUdUB|a}DQs&TK%Ai@6%YnFT?7?h(jg3URoRqgDno zQOD8lRKOA}^`75E<2cVak87>>Z-%9MXTUj@(q*YZSk$lQzo7w*oR;BcvMF)+Hp7op zdKw+6=`r6;3!9D^MM?|IPAOHK;69kSPB8BX((+ zOUH31>6v3xP4*2>Nl)Qo4+@;5^pv7-s2!QJolxlfC~^qo0>KgV4~Lv&s)Z`nrbtW2 zE83lt{H3o3$2i2y%|s;&ld{yD_Zv#VpKtCVngnHIBKRfYq3UJ1`j=F$G&thV8UGj_G(2 zm*W?hf!9%i_vqyVT#1h{inupuqB8i8L#qE@m31d0dU@a1K(YrcCOY3kK zT#~I6;cl#Fx>6($8yJC)RqKm;=+KY;(gXM6J{~_vQgJ^XVA`hPLu|rk-j3yXpV4mQ zEj$zNB7z5bDR03OcnDhwdOLRGVM-RZG2vPC+XeipoFzUjHj{#^UW zmNRe*JD4^5|2yn-L2OU(@8`?(E$=ngZ`gkR`Gy@}+~g)M_=d5RKIRKpliP*?O$dYr z9?Fekkbf5p&bfM#H?P3~s}aC@!4Uf?~Za zY{CWk?I@zj&`@y{!@klP7RB&RO_P>UjF`37$2a0YeiS1Q5rxld`ck$8FrPKMfhn(M z`z+vBP_2tT?42CK&Zk--J8u{}WFl^23)fR>ByB8akFD@}vY25N^64QQ)~&%-*8S(x zq2k+Y7tmW3TJaPUk%PH-8d0{DuBroNvKomBM-4s*q zn2zZyqAI1(6?z%)6-9AnXclD_H*DoTg{vIpSTW4@k!^+4YM;b)j_nvRTpfpS0$q|~ zPm)%@+#}?0Vhf!S)-^gGM4|zWYeIInQrIO)pF~RchG$jaBr@6p9oU=#Z9i97$ZIu< zf*9t-p#`DNv{km_dd4>Y_+i#>C~w#u{4DHb*~dtwV0Regqg3)xAJStU?j*&oBURqT zHoTjcqq~8vb`Kxl$L;&cAe-1)o7oOq@EljC$SALpO4zOs zfSpo^T_n!katZcI1@_4`cucC%B8%|2ti*nCaah)&RW{*iX-13?qw*+@$X@p0ei!Xt zXP+R(S|V;InJGf*#~%L%kpZC}*>ODuDXDJy3xgX!F*Jf W(l0sxivK&kweTj3{{(jgf?oiAE#k=l diff --git a/power-admin/target/classes/com/manage/controller/LoginController.class b/power-admin/target/classes/com/manage/controller/LoginController.class index d52bb02a3117ff78e2cf71ad552c7d83a017d5b5..56be45d1d8d2eeae474440c7fb17eecea2543223 100644 GIT binary patch delta 3313 zcmaJ@33yc175@J>%bmQrNpJ!rkB|iw*$JDVgP?385+f=S77-&1ArO+73>aA)zz8VH zHbjl$hK8V`EWyc)QA%s;LaVJUwY7Uy1jW|Y+7_uo&z(WgkAD5WnS0MY+x^cu_n!Nj z#(g*@a`5C!`vDB$ejDXDl!m$ZrH!lct{=a`uYG9n<30Swhu_-x9e(e_AB@Hy{rD69 ztnj`KjYBp*z=t*t<0GSU#Kuv4Y~vFgv+*hZV&kv)%!fu}_cz1-yK(=y8UA4-@&*2> z@Gl#=IHd4z8+pdxaeQgyCydR1{P+rA8{SDno$?c;87x0tbeqAW=v7oUdK=?j^w~_K zZHtyR%XASi!}F#O&zHb?fsYsZ*xis98D#oBt)xNHB$2eT&h66{l%V=M34p zvbwyYYHUSqQIgQ8Lbc*enlpJbksCdrawZp7mn+WFyoF_gN%K~`p*fo~6z6D$I9Fhq z-9%}gW(DUfF3_yxe2saiFp`C4sM4%vjpA*ZwXBQo_YW8;QE7&`NOLi7*SHO}iURx& zF40_S*vq(F0@l2f5zQ4`DRFDAGK;&|5WPYdM7!#4L+-{KimNr(aINA!n)h;@=6%Ng zey-QtAilZL=uFbw#Lb#fZizmtb91o>i!~dK=mE_K`H*H4YcwC`BjP-_z!XYzs|oi} zJ|;!&tNFNDJz-LpA6=Q9Z)@DaCpEY6spv)NJtI%ES#vuZi1X%`EiNmnEUPLnnot!E zm4|ALYK!I$W9&WB)PDGtM$Ko;DsW`Wj*r&19p1J2$P+6+-qLh**DlRxjYJ=A+nZv1 zuwtWu@toLxuwv6kJD=33Ls)UA=JR}ka4oDWXY{S~f;kg4cd>=YI*UMRF0oWpOA&Ts zi71EaXKU`^Ud2|;eI}+C8I$91)}*+)s$8>;am9q@ON^T$wky7@`3lQhCuQU@E09!Q z6t1W&nh*}vmW8WpTNh-0;%a?0YaoaDDo*o=&OLh-pQ}5ZQ1i;_N<#Hvxh+-6sbkMp zcc(*)e$lbJ_LqmkrUoTt3q#R&I}eW*WWUQE(dz4jPF0vhvHk zK>n3=SSSKH&Zh-lnQKJBGUx0Zo}}^|o}7+zcyhDO@Jdn+J;IP%C*x9aUnDbS_VjK8 z_aygQCZpLM(tVf9s8b5K6A@VvE3i^fEseg{WnjeU2H=*lA2QG%IpQ!61Cn-ya0$Qg zw4I?=;V!Yy5Q_%fEj~;Fa)h&5=*k&j9oAs2%pu%^dxgIS>&#Aqt`-U%BpJ=U_rdOy zfZsyU(+;htwIMy|bv&=}?Pz1}@JK+#;bSnZ9l0Xv8noMyCq#bG?|5P;aK+(@q3~g3 zC6^txrq)f!7RTL~WF~OF3&FG&bTmA}x_}8>Xn1tenz6)5OQ1XPFlr2S5fRjmPM`~3JaB~!r7g($U&7Lc47QxwBfIJtM#V7NQSBHr z%~6g=cJADUv2lzGT$x%G#gQFHP7Ka@uA`N4bP0^#?Uoz|Ri79n_^X0G$M+iY9A69* z4&dtOJ9!0>G1H9DQEiwgt{ksf#Zc^c1J}e*BGa`oOme)Z0}fm#U>z01^?@6NN@AKU zNN#kz2~4rjFHjnon!q#{T96s^n9R%w+$5($bS#4<0k=6ljyoX21iaDed^?99T1(|= zJ#5vRSx&S$*`MRG=%)N0k;%fj5i>DGK0r$4hEBzLOq0~kK&xBk&)l4raSZ2E*yNQ;4)F#1#?>FDbMuyqx^Kq98x{TF&b56>=25cM?}A98mbah>s)t1gw+jrSJpM zzD delta 3447 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 Vz)xs2fS-=^g_HnvfsZj|??(~1B%J^N delta 2870 zcmZuy33yc175>kgncO#TUJ^3NBs^IHMuaR7h?L?0kruI_5GxTat!=pu`gW-$V`wTs}cr6_7`ErQlIwVR5T_}@1$vD%Mt-@W%N_niMf z=gbFFZkZZCcj2G5#sE#%@kZE{G(@w|m$ zctLypox))gzqc?FNA#mFhVT-OT6h_+n0Qrx|6t-ZZTv?Qe^Pi|`}?!PF$=}$)XN)s zIj+r4n0V8~TMB=%P=-z&`P(M`s_-`x{T8O+?+Wi&IDdpToPvLt_@~0ZEX>g78Thxt ze-z$LL?kLk**N!r6$!4WFP-01Q`<1jz08ON155Q@FjC9xluS_I?ly6#wmZ@BK zl7G4(a}(G4*GfKJK2I1F-XpdO?-MwMlL{Xwe8}7rM%qM4EL79PN~^D#S08H@WV_Yj zNV+f9yjiQkrh zr13>tl$aFETDV}r?25~)7FNz)pd@IEB_VfxDF2f8ZLuZYmJG>E24%|-$+9IZ*$mH? z94(AUu3*SD)hnw@8>$=YN-LX}*EiNF$+KmsIJTT6!vv1IA(Z1T^9ACz43`nMjFfz4 zGHAt^YnL_GH#IV++SQ9~8HKqvF2Wa-jJB~!MkqPkmI66Pkbi8`y>GVdIJRT&iO%-^ zN4A{U-F;%it;Z96C%SGrzU#ixwv53Y0x7ZOTp25XAUE}pyV}l78z+T=Ja?a&muX9p z6x&iF<89ndyxQz-z6nz57NyT~=3qdO;hC;zu5T#4u)4X{mWeXS-JV|JE0gow{pp*- zSt;M8a~qp$>uQ%LF3KrNw>)dEdnBu2h<{0SJ&Pj{Th>rd7RS2PW)7LW z*}c@rbB~ALiO*!S0S5n(Fa~`gPig$l_HGHqC+@V2lykk98m0U)R|JZ>A$vWOOSoz! zumk3CwUY{%j|!dym*R_jOdHSSDQ<9MhK(Nh!u~zn8_*6ce!<8Bj7mGn_0HyLC$zw2 zSU__f?HKq_N%`e5EW{NtT!}AHvM7cx<12c@CB|0;SK+Hv<;%uK_>oT2{yz7KoLTX$ zPFgQA1>eVwj@gAF(V#fNcC2)Qy~xtn4Za?Pqn18r3!)(>)QcQJ8;bNUB6t+JQQNV5 zkk^Ln@KDF@g42ee-!tnNcuqfX*8f;KDa&CqwW(uuVR*;D>rTK)>%s^Rkq%@<)57`0 zM&FH+Jx*W`^9bT7Ugd1^dr&Q5nLiU56K_BjTJUwasK(v+27ZWIJb)z}Zgre`SL111 zi^FK3?RB(Xir3JHV`#!#ScbQ;+=F==2WJb0;%oF}(^Ao2HFphIOpl96%N4jDHS`=r z9v-9jI&wXRbNcEy>ZyJK?!q;Eh~v>STS_ruPVv^yN2{5FzH8zmn&o~5P(@<&?m7nI zr}H-uLo?Z5!P`-kC7)fHdUh54Cbd>m>w0R%7eWnC-&RFR1a4p}GcZQ>c~`EwC9Bb`aTiqW1s`wgVHelZgJ9W!=u^*u}cr zjaAq~%e`2Khp+(&a^LBpUQR&M2~Qhq+)q!<90_+4e~a~cmsh*%5FaF^B}GaLJF)6C zC!-NKg>;1NdO&Vgt-X^wJCCs^Et3r^3h%xEw z%&R0Jk2B4K9218qeUc^q6yk+=7E|#8$ID?>_YpGjA`M@m=}TndD9i6567=^#S_l8bx+EQZ#M*4<(!A}8MbjD&1ja3T=Kcg{xz27O3XM{W3F*M&4lM0mPyOhM!jy5UuG#kVwpC? z<8PO1t7|KbdebtKRD&PkPIe_@;Xuc%V~+Xcby%p}WWjRFahp4iyWDeZr_+#HZM>DPWWtn_(WsdG3_Cy6 zq8GtBz4}yM7cc~Vj<`!vhj@oL5Nk!@ZbgG)BTkh+Vm4aoJwk6r_Ps*aHqcE$k)cNe z!dCHjaVTvu7k(o8N@~hX_b1Qo%(}z~->4faERa!IR)r<@>Fx)Zq^RrkwFdOGoBSJ) zVP2m78kA*L&V$;xs2+Zew$dl1BxMufZ%UR!mU3=0{gNV?2Iv~rGbh(!g-0rwrlt={ T3pm=sW37vL$8p8~T_^qm<-SIK delta 745 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 H;PEd2F4ZE^ delta 4115 zcmc&%X_OSz75;8jO;>ewjSLMlLovckv%_q_AYu!MfS`xv9K&LOkV7CQ1_BC7Br0}9 z1veI_*%yHT4ncvzA+s>DC@2b|A}&$m0x~e}8Y78H;YG;U*??ddbjSo@7?>p zd*6Fso#^#O@7TW6+jaoxA{}k?!zv4_gSZNR4q*+}T3Bb}QIy$OkH47MVBs+v79KaT z(MAZXOl-1|j#V}`qg+W_EIgswiV(KquWF*o5UNnEUTaKjvyrW=vr((mPf{Jjb{jje zQ$2RscnVLep51DaJr79ylCPj)xNAoA5_vS%JHEP zUd3w`UROikP>;W<$D1bJve89F(FJeY=-vf?xA2Y{_O6BZEWB^wu!SQkiVsxSN7dr! zx=v}1SvaoRdJ`X-_^6`0wAN)q#aN?M%#S_YCvh#XR5$Tye0kuYY^u1`Tq4asbMQI7 z5Ts4I@v3R#Onm9!ANb0|KOKCH6Y-*8R#2c{KW&_Yf5nFdFT3nh2mi)54!*@nfm1(s zdEM*7RES|tsYIpjnA=j zikqsJ9J$z$X5u;+gu$jXcO+Nx1aKrGEgWentsH4BZ3Nlz!ws`JPg`l{NPFc@FDfc_ zqyxT+8=>Vx?~!~*3Zzhwb!=hHv5EzC^JX8do?UbI^dsNY;wf7kru6}9SDyYl#^)yL<}tb2Gdt&4H8Vt?ocskkS7YMSK4zYRyF zP5hEZ{bI`@&{*kt9kxQRfguPl+MpLoa3yMU9CM&m0reXbIGF=?2>p6|M@ssgA*3P*S)K84No|uoPxB zE-tS|v+}_n)`dRSDkCk>mSMGID5~`_Z-XFvu7$%4G$g{g45%fB)8gl7hY`%gNW?l} zlm~tnq|q=36A8Y~Za+?4#pHwUNz-tPmyil-l`HxatYM01J-QG@nHDhl~v zUf~Z|pI1G-b$ACgZ?f1qS6R4^3V=swJ9)vF2}=%WwraJImglt*?NYDprteg(zRSo| zt&wH)@!Gz|WUrlK+^bric%&XOi8mZ@JBh^|ye6mfZo7-bV+L>XyD>1v19Avv@|>Q< z)BQf&iu-v9J%B}c5X&$dD=~+}eJ-|O9=4$rdl1J#%*UHpfFoEa0W6Xr7E3EEm9AJO zeXv{xV1*3DBQgyu<#w!+g;*miu~v5AQQ3ns*^BjZ02|~m9+TMDcw9@vMlFQRS`Ny! z2%gYdp+f77ty(u!Y5h>6U59PjXw+)s@uW5x+qDOk_Ep}@g@r+i5 zXSF@ptG$5dwAb*w_6_#&BHpiO-}+1pMY2NNjMbK@5k$UDc;bx z;7z>>Z|U3cw!RDR=&#~ky&mrw8F=5w!V#kG;H$flmqc zXT~giZajo9jCuG{-G-7u8gK-yi0v#g!l5Z?C3%RaBU^>Q)c zzlBvWUaGvy(!i~N+UBX3@SM5Nvc1dD25w=GJ=6OWm zHWOq7zO1MgfAK(WZf7#DgaM#6NtoD8`i--!$|a$x3e^^HR;GmE^yS% zc$j=nBcD^`qZBjPUeBE}KS4tlU?EKv(S49sid06t8>$9r9IRtmUyu*rM3DrjGc`q|B+k|Yxl8q!l62cw|1#v+uhExNDqOFp~6vL80CLk#7sL&Qv zZ0o~n&{~NFqzWAjhC!>Ps}!r&E_StcwVSP4yGcd;&wZ1D@b%+Ma_@cbo^$W{|MQ>o z^2%j*&WoRT=kcciOp~c0%)!A-ydPf)A%R0SmWS~u25cM-<1q||aRf;lM?-iVPuTdX zg(pLBaL~e27QPlj4i1KpjbkBv9pBJnz8S{1@NFHwqZ?0$aU9=OmlHZXW8r%tJR8Sz zHl7b5itp>KFNE*|{LsRWLijOW)Zr)k`lliM3_sW57dC#W^GhN83NP#MYaM=L0REt>S9JKJjl0$1Pa4RdZEV(;f6?Ku7G4b%p;1Fl;BPkes^{M=yk_C`fs5t( zzzAKwVc{RdYGA&}pxqaOC*4inG$j&tb?Q5Z#t62 zZON7#M{*@^=&aRkT`L;WI4y}dk}o3!{*I09jua?@^-^d_5sxpH5<#K+azSCKB~eF4 z$|y%h%NPe+gm20mDVGXIDy72h&Z#XZm$9VLkt%F(q*{j>3A+1orj6ew;~W_;6C7-p zS_eC&&XIbV=tzT1af~YHj5&28Va%;DPevN;!OcB(%SNrPRZMkb?jQd7b zv3rx1@t~dOZ>wnUUemCqt*dQCheuKx*yTN)UA;@ln;?6wuG2e$;&Dxe*5Opl9^Wd+ zF}90(+uBzx?rCf97|1O+F1g_q9lgy)395nxbx$F0Q_9kOgIc*ZQUUJb&){rQ3M5%jH9r8I11a3rIE}e zLXmKSratKT5jp~u$i!HbqKad+xvR`OE_D|V#zHik`)lw)Tu$$K^c%(b3jVcR5W^xY zj$sK}X|(hzNDLq1Y8kHNK@3rnyvU}@fhXWBJA$m{x-+9YhHN)cvN^8d)hA|IB~}t6 zBcu3KVhv)nBzRUG`ly>I&(XjaFm&*pje5SDNC*vln#{&9g`7@h9MiEHGjI!LVh3iy z#cbTe9PMJ3?qh~_Ge>&~;$h}T$!+0D_r;NitMFl18fY5(0W$p&gZ+SE!AH|QxEj|G zT9gMbM;n8x#I5)!+L@m^+>C3v%0LItQ6@e6k8$N$tw>v~pw)G>s)YYtw8mjs=(MoX z!YT`^Ev&K7#b2OysfBK=rKJz+4EIs4TKVUZy$n5u^cZ?+BUq0O+*57z^U24#LZvZ? zF-=ATwMmpFnmBqa*Lozg{eToi(kxdnbdU&}d}on{2ql+K5{f8>Q4~TMrJ(G2AVavG zu-SI_Sy3AGw2BmsN`(s8hFWdpN?}vp?2X++fZ}H$TAxC+DTU|;+~`RO`^mPdwlVM| z%9inkwjG@Qk_JNir;TEG{z))DGI37QfhT< zoN^t{(CeA+$;_)lo4~tD34Aj?PB-3~)Tk%N`nZ#ST2-2mW2^nYbY&UrLB!j4I)(7F7}rn5QO1^)y$PK}_5=%%Qj>V7B7vy|WK+(uWyVl}v`|(dd=p zbxiC^3S$+!$Qm-(#X{_6@vURA^{~S%Bx80r@7LU_ovD4HwjUN^{0wb^)v$ZDa<7I{0)bTqi@0X+2>5cwp0?f zvwZz=Q!xvfC9Rme6!i^fLiXBbHlYKzQO&orE_Rrx3q7ZFgn8V*ov9x#fd+bBL3}MS zy0K&4fzQOqz~^F=(4FxZ+sSExY){3u6L--|i&;xRc_vvKR=f~h zW@RVK@vgL%>6{L+1fMq{>O1Z4aUacda5vNBH_b~c)_Zdg-wa1GT+BODvGysCCf4Pg zm8B?S&F8mhst*f?n2b#0H_8NiCZG4l5oUAF#TQJp+EnPCjy9SiG|UjS8hz&ss4o=| z|J9(Sk~cuwGdNd!o9&MBg^P!F50Z%ojRkAAuba$Hhvjse3h;~)SnS?(|0S{2Xhf@M({N@5h6TQE5KPSy9g&_W#E*G%l28W_{)$B7LxRW!l*w-ZvwV3NT(3 znN<)-V)ig4du{q@hI5>smJ=9_XPAm-QH$p=3D29@wPo7;*{~79O&&|Dtm$s^38MG11E6!zM9G#v^<_osI+V0lxrN%K!iX literal 9702 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 diff --git a/power-admin/target/classes/com/manage/controller/Power_Sys_DictController.class b/power-admin/target/classes/com/manage/controller/Power_Sys_DictController.class index 12c44d534ba3b3feabd8fc4323b4ee36bd5978ff..465fed3865a914a2abb148b580c52d2ffe0acbb4 100644 GIT binary patch literal 10682 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 Kj_0((e(}GYVKfW? literal 11564 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 literal 12943 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 diff --git a/power-admin/target/classes/com/manage/controller/T_MenuController.class b/power-admin/target/classes/com/manage/controller/T_MenuController.class index 913ec4ac271724deeabf169de69f175d9623b07f..6563d432e3e5bff96476e359996fd1f1a5cfcf8a 100644 GIT binary patch delta 473 zcmX|7%T5A85UgGn7M2Bc0YyL_qNs>2Dk{ETF`oPa4~7_GGzLsC#v6BUW`6{NQS`tE z_$hvbv350P(p@v%RW&`+4Lupv&+m^RfGUo4=vW9KfN~IvSn|WtQNgl~6|DM^bg-&n zO~ZQcv?lgYQg%lQVg2OsvT=8R-D z*fX$?0|SRR5)|!}6zz~2k410l4|VId-n_E@ZTmSjAsys7na)XtL2F`&J0CGjREWHl zd6XxM=R67HB2k@C% z`4#>yy9yk~u*=MIuqj?&aGi6%>OW`tAi)rFB1j@dWtvKrl}YyrX;w0f>^Y>39P-2l k{R)^SZ-!wA%KRlNvTd3vm}ODHoGUlEo98*>v|WqR57)3Wr2qf` delta 612 zcmZvYOHUJF6o#K~hIYzyYGtt4Dj-l>wSrZwiZ{F>DvTT17*}I6F;!9;Xb5q`(!`B1 z{SEF*Fj6(~2k@he?~E+Xmvi28ea|`HC$FDdKK%3ZH_+gPOP+a$t1cGv!yKcL#B z+;CaorpqmEXPAibj>Fvyi!NF2Iox-6u-8~Hy^p3`GLfOM`YzlK>+50rZGCB{8Fjj? zjdrhPCP#8FyJ7Qv5O&tWH|vpD_6O#RNuQu#DE2;^;)=&{MjRe`JmRq-)!q<;!;;4n zmK~mYJma~?3af_E|BNx%(N5DNpwQd47xxeCF|%vPcQ#w?ZZdssGi*jo>%hDYHxf-0 z`m)l(QK2Q&Qqp7c>cY4#RXf1!CFzsWaWN_=N_+nbC~-=j;WXpeN%L3iU70ZV3+vSZ zc2N7q&<|3Ez)ufw24wu<+3&dh!1v_K%$a_|H>EYRYL2JPkU7$2t$J3min3M3&*`1# zA{UZPY7D8e!~~N%V@CaFJ}@Oy8yu|{ThmGz%8KfY&=FyL|G4TZlIm;BR!l35L|hX+ g%u2lYE9NBCEpb>}Qq0m1#ofNF%fd>WP8hEI1v8&frT_o{ diff --git a/power-admin/target/classes/com/manage/controller/UserController.class b/power-admin/target/classes/com/manage/controller/UserController.class index 98f62aebc2aefcdf65abaa5223ea5b939dc1755d..9c472502104e01f0be34a43d53251bde6103e415 100644 GIT binary patch delta 5184 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 I$1tP+0X4A_Y5)KL literal 14464 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 Gxa40@BeT5# diff --git a/power-admin/target/classes/com/manage/interfaces/cache/Cache.class b/power-admin/target/classes/com/manage/interfaces/cache/Cache.class deleted file mode 100644 index 51f65ec52f262b62fa68d54f8875544225ad6712..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1737 zcma)6T~8B16ur}KTd1prvPCH0qOx6(MX6$fK@*}6mB<5xMBcW`S{D0Z+AYyHe~>1c z*qHd>5Aa7B&z)VSAC$<;ot>F`&pCVU-Tm|T*KZ;!(pH*Mv@uFaddT4shfNN}6g^JS z6G8F!-X}rXy)))ZLj}wzkKGo0WMR4U-S0cfgn-B&inYm zZ+a)#9Scf6^Xq=F18}o&BuLwBoB$@X=hwYA?ONGu9y;Z!1a7!a^~h=ZypImG;M8vk zTHbRTHM{22or-7s^}uVsb6l@wyN-M6*}EK}qF`PY-g6SEEgiEA^Ln|Qx^k^l&P-Ok z;59pFn1vo<opidX(=EyfTKaDn1&wuQFVsg%n9vjkSfd!D;wi?!as{?r0gqKD)YCX(7Q0QX z0&BwhN#eUqn?OvXoS;WTiGe3BLK5X@5-S7TMr44`6bCg?o&l`Y4#ljs4#lmd4rx{{ z(V;{aH7_&AftrQH3E&%uIhqD4vlPJqq=uC-};T%Mx&~SF<#yiesu+`#Mm( zGPHOeO2bC?GRFs*SBDlaVl2br9q8olCFO*4O$q1BMn5(r!ep4G%t+E5IRW^)(OrcV zmzE{11f6=!y?wZ2{})6<8)dF2*X56=C%nl=w2>?)FfF eR%z{$keR+uCN$_dguJ*y$OC)?EM#3W+W!D?WA-=z diff --git a/power-admin/target/classes/com/manage/interfaces/cache/CacheManager.class b/power-admin/target/classes/com/manage/interfaces/cache/CacheManager.class deleted file mode 100644 index c4831d6f99252f7d032321919a5340e0420c0595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6204 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 diff --git a/power-admin/target/classes/com/manage/interfaces/webservice/RoleAndUserTreeWebService.class b/power-admin/target/classes/com/manage/interfaces/webservice/RoleAndUserTreeWebService.class deleted file mode 100644 index 2902af63567688aa5ced7f59493d83f484b4a909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381 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 - - - - power - com.manage - 1.0-SNAPSHOT - - 4.0.0 - - power-api - - - - UTF-8 - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - - 1.8 - 1.8 - UTF-8 - true - true - true - - 1.3 - 128m - 512m - - - - - power-api - - diff --git a/power-foundaton/pom.xml b/power-foundaton/pom.xml index af50070..d9f60ae 100644 --- a/power-foundaton/pom.xml +++ b/power-foundaton/pom.xml @@ -46,23 +46,11 @@ bcprov-jdk14 compile - - - net.java.dev.jna - jna - 4.5.0 + org.slf4j + slf4j-log4j12 - - net.java.dev.jna - jna-platform - 4.5.0 - --> - @@ -76,7 +64,6 @@ 1.8 UTF-8 - diff --git a/power-foundaton/src/main/java/com/manage/util/ExceptionPrintUtil.java b/power-foundaton/src/main/java/com/manage/util/ExceptionPrintUtil.java new file mode 100644 index 0000000..cffbf13 --- /dev/null +++ b/power-foundaton/src/main/java/com/manage/util/ExceptionPrintUtil.java @@ -0,0 +1,36 @@ +package com.manage.util; + +import org.apache.log4j.Logger; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; + +/** + * @ProjectName: + * @Description: + * @Param 传输参数 + * @Return + * @Author: 曾文和 + * @CreateDate: 2020/8/4 14:18 + * @UpdateUser: 曾文和 + * @UpdateDate: 2020/8/4 14:18 + * @UpdateRemark: 更新说明 + * @Version: 1.0 + */ +public class ExceptionPrintUtil { + private static Logger log = Logger.getLogger("errorMsg"); + public static void printException(Exception e){ + //方法名 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + e.printStackTrace(new PrintStream(baos)); + String exception = baos.toString(); + log.error(exception); + try { + baos.flush(); + baos.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } +} diff --git a/power-service/src/main/java/com/manage/App.java b/power-service/src/main/java/com/manage/App.java deleted file mode 100644 index 9939a1f..0000000 --- a/power-service/src/main/java/com/manage/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.manage; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelJudgeMethod.java b/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelJudgeMethod.java index 38f4aa0..9f8ea2e 100644 --- a/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelJudgeMethod.java +++ b/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelJudgeMethod.java @@ -308,23 +308,23 @@ public class ImportExcelJudgeMethod { Power_User powerUser1 =(Power_User) session.getAttribute("CURRENT_USER"); //获取医院ID Power_User_Dict userDict = userDictMapper.selectDictIdByUserId(powerUser1.getUserId()); - String deptIds = ""; + StringBuilder deptIds = new StringBuilder(); if(value.contains("@")){ String[] values = value.split("@"); - for (int i = 0; i < values.length; i++) { - if(StringUtils.isNotBlank(values[i])){ - List power_dept = deptMapper.checkDeptName(values[i], userDict.getDictId()); - if(power_dept != null && !power_dept.isEmpty()){ - deptIds += power_dept.get(0).getDeptId()+","; - }else{ - return "\""+head+"\"其中有不存在,"; + for (String value1 : values) { + if (StringUtils.isNotBlank(value1)) { + List powerDept = deptMapper.checkDeptName(value1, userDict.getDictId()); + if (powerDept != null && !powerDept.isEmpty()) { + deptIds.append(powerDept.get(0).getDeptId()).append(","); + } else { + return "\"" + head + "\"其中有不存在,"; } } } }else{ - List power_dept = deptMapper.checkDeptName(value, userDict.getDictId()); - if(power_dept != null && !power_dept.isEmpty()){ - deptIds += power_dept.get(0).getDeptId()+","; + List powerDept = deptMapper.checkDeptName(value, userDict.getDictId()); + if(powerDept != null && !powerDept.isEmpty()){ + deptIds.append(powerDept.get(0).getDeptId()).append(","); }else{ return "\""+head+"\"不存在,"; } @@ -435,8 +435,8 @@ public class ImportExcelJudgeMethod { Power_User powerUser1 =(Power_User) session.getAttribute("CURRENT_USER"); //获取医院ID Power_User_Dict userDict = userDictMapper.selectDictIdByUserId(powerUser1.getUserId()); - List power_dept = deptMapper.checkDeptName(value, userDict.getDictId()); - if(power_dept != null && !power_dept.isEmpty()){ + List powerDept = deptMapper.checkDeptName(value, userDict.getDictId()); + if(powerDept != null && !powerDept.isEmpty()){ return "\""+head+"\"已存在,"; }else{ f.set(object,value); diff --git a/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelUtil.java b/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelUtil.java index 0d462ad..38ad23c 100644 --- a/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelUtil.java +++ b/power-service/src/main/java/com/manage/service/ImportExcel/ImportExcelUtil.java @@ -76,13 +76,13 @@ public class ImportExcelUtil { boolean flag = isRowEmpty(row); if(!flag){ if(row.getPhysicalNumberOfCells() !=0){ - String wrongStr = ""; + StringBuilder wrongStr = new StringBuilder(); for (int k = 0; k < fieldNames.length; k++) { //对象赋值后返回错误对象 - wrongStr += getValueByField(object, fieldNames[k], getCellValue(row.getCell(k)), getCellValue(head.getCell(k)),judgeMethods[k]); + wrongStr.append(getValueByField(object, fieldNames[k], getCellValue(row.getCell(k)), getCellValue(head.getCell(k)), judgeMethods[k])); } //有错误信息在行尾创建cell,并标红提示文字 - if(StringUtils.isNotBlank(wrongStr)){ + if(StringUtils.isNotBlank(wrongStr.toString())){ //设置错误信息字体为红色加粗 Font font = workbook.createFont(); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); @@ -92,8 +92,8 @@ public class ImportExcelUtil { Cell cell = row.createCell( fieldNames.length); cell.setCellStyle(cellStyle); cell.setCellType(HSSFCell.CELL_TYPE_STRING); - wrongStr = wrongStr.substring(0,wrongStr.length()-1); - cell.setCellValue(wrongStr); + wrongStr = new StringBuilder(wrongStr.substring(0, wrongStr.length() - 1)); + cell.setCellValue(wrongStr.toString()); wrongCount++; }else{ successCount++; @@ -110,7 +110,7 @@ public class ImportExcelUtil { //批量新增成功记录 SimpleInsert(list); //删除正确行 - if(null != workbook && null != wrongRowIndex && !wrongRowIndex.isEmpty()){ + if(!wrongRowIndex.isEmpty()){ //定义删除次数,对应后方下角标都要减去删除次数 int deleteCount = 0; //递归删除 @@ -154,7 +154,7 @@ public class ImportExcelUtil { } //判断空行 - public static boolean isRowEmpty(Row row) { + private static boolean isRowEmpty(Row row) { for (int c = row.getFirstCellNum(); c < row.getLastCellNum(); c++) { Cell cell = row.getCell(c); if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) { @@ -171,7 +171,7 @@ public class ImportExcelUtil { //删除此行 removeRow(sheet,index); deleteCount++; - if(null != wrongRowIndex && !wrongRowIndex.isEmpty()){ + if(!wrongRowIndex.isEmpty()){ removeSheet(sheet,deleteCount,wrongRowIndex); } } @@ -182,7 +182,7 @@ public class ImportExcelUtil { * object:赋值对象,fieldName:属性名,value:excel表格值,head:表格头名称(中文名),judgeMethod:判断方法 * */ private static String getValueByField(Object object,String fieldName,String value,String head,String judgeMethod){ - String wrongStr = ""; + StringBuilder wrongStr = new StringBuilder(); try { Class clazz = object.getClass(); for (; clazz != Object.class; clazz = clazz.getSuperclass()) { @@ -200,7 +200,7 @@ public class ImportExcelUtil { //执行方法 String returnWrongStr = (String)method.invoke(importExcelJudgeMethod, fieldName, value, f, object, head); if(StringUtils.isNotBlank(returnWrongStr)){ - wrongStr+=returnWrongStr; + wrongStr.append(returnWrongStr); } }else{ if(StringUtils.isNotBlank(value)){ @@ -219,15 +219,15 @@ public class ImportExcelUtil { } }catch (Exception e){ e.printStackTrace(); - wrongStr+="\""+head+"\"格式不正确,"; + wrongStr.append("\"").append(head).append("\"格式不正确,"); } - return wrongStr; + return wrongStr.toString(); } /** * 删除行 * */ - public static void removeRow(Sheet sheet, int rowIndex) { + private static void removeRow(Sheet sheet, int rowIndex) { int lastRowNum=sheet.getLastRowNum(); if(rowIndex>=0&&rowIndex workBookMap = new HashMap<>(); //通过key获取工作簿 public static Workbook getWorkBookMapByKey(String workBookKey){ - Workbook workbook = workBookMap.get(workBookKey); - return workbook; - } - - //移除缓存的工作簿 - public static void removeWorkBookMapByKey(String workBookKey){ - workBookMap.remove(workBookKey); + return workBookMap.get(workBookKey); } public static void copy(Object source, Object dest) throws Exception { diff --git a/power-service/src/main/java/com/manage/service/Power_Sys_DictService.java b/power-service/src/main/java/com/manage/service/Power_Sys_DictService.java index 2c5d986..f671446 100644 --- a/power-service/src/main/java/com/manage/service/Power_Sys_DictService.java +++ b/power-service/src/main/java/com/manage/service/Power_Sys_DictService.java @@ -40,13 +40,6 @@ public interface Power_Sys_DictService { * */ ListselectSysType(); - /** - * @Date 2019-4-25 - * @Author ly - * @Description 导出Excel表 - * */ - void export(HttpServletResponse response)throws Exception; - /**@Date 2019-04-28 * @Author zengwh * 查询全部 diff --git a/power-service/src/main/java/com/manage/service/cache/CacheManager.java b/power-service/src/main/java/com/manage/service/cache/CacheManager.java index 883ea40..7c54bac 100644 --- a/power-service/src/main/java/com/manage/service/cache/CacheManager.java +++ b/power-service/src/main/java/com/manage/service/cache/CacheManager.java @@ -9,108 +9,27 @@ import java.util.Map; public class CacheManager { private static HashMap cacheMap = new HashMap(); - private static HashMap cacheExceptionMap = new HashMap(); - private static HashMap> loginUserCacheMap = new HashMap(); - //无异常数量 - private static Integer noExcCount = 0; - //异常数量 - private static Integer excCount = 0; - - //添加用户登录缓存 - public synchronized static void addloginUserCount(String date,String userName){ - //取出当天数据 - HashMap map = loginUserCacheMap.get(date); - if(null == map){ - map = new HashMap<>(); - //首次登录 - map.put(userName,1); - }else{ - //取出该用户当天登录数 - Integer count = (Integer)map.get(userName); - if(null == count){ - count = 0; - } - //加1 - count++; - //重置 - map.put(userName,count); - } - //重置 - loginUserCacheMap.put(date,map); - } - - //获取当天用户集合 - public static HashMap getCurrentDayCount(String date){ - //取出当天数据 - HashMap map = loginUserCacheMap.get(date); - return map; - } - //添加异常数量 - public synchronized static void addExcCount(String type){ + public static void addExcCount(String type){ if("noExc".equals(type)){ - noExcCount++; - cacheExceptionMap.put(type,noExcCount); } if("exc".equals(type)){ - excCount++; - cacheExceptionMap.put(type,excCount); } } - //取异常数量 - public synchronized static Integer getExcCount(String type){ - return (Integer)cacheExceptionMap.get(type); - } - - private CacheManager() { - super(); - } - public static boolean getSimpleFlag(String key){ - try{ - return (Boolean) cacheMap.get(key); - }catch(NullPointerException e){ - return false; - } - } - public static long getServerStartdt(String key){ - try { - return (Long)cacheMap.get(key); - } catch (Exception ex) { - return 0; - } - } - public synchronized static boolean setSimpleFlag(String key,boolean flag){ - if (flag && getSimpleFlag(key)) { - return false; - }else{ - cacheMap.put(key, flag); - return true; - } - } - public synchronized static boolean setSimpleFlag(String key,long serverbegrundt){ - if (cacheMap.get(key) == null) { - cacheMap.put(key,serverbegrundt); - return true; - }else{ - return false; - } - } - - - private synchronized static Cache getCache(String key) { + private static Cache getCache(String key) { return (Cache) cacheMap.get(key); } - private synchronized static boolean hasCache(String key) { + private static boolean hasCache(String key) { return cacheMap.containsKey(key); } - public synchronized static void clearAll() { + public static void clearAll() { cacheMap.clear(); } - public synchronized static void clearAll(String type) { + public static void clearAll(String type) { Iterator i = cacheMap.entrySet().iterator(); String key; ArrayList arr = new ArrayList(); @@ -122,24 +41,23 @@ public class CacheManager { arr.add(key); } } - for (int k = 0; k < arr.size(); k++) { - clearOnly(arr.get(k)); + for (String s : arr) { + clearOnly(s); } } catch (Exception ex) { ex.printStackTrace(); } } - public synchronized static void clearOnly(String key) { + public static void clearOnly(String key) { cacheMap.remove(key); } - public synchronized static void putCache(String key, Cache obj) { + public static void putCache(String key, Cache obj) { cacheMap.put(key, obj); } public static Cache getCacheInfo(String key) { - if (hasCache(key)) { Cache cache = getCache(key); if (cacheExpired(cache)) { @@ -150,24 +68,7 @@ public class CacheManager { return null; } - public static void putCacheInfo(String key, Cache obj, long dt, boolean expired) { - Cache cache = new Cache(); - cache.setKey(key); - cache.setTimeOut(dt + System.currentTimeMillis()); - cache.setValue(obj); - cache.setExpired(expired); - cacheMap.put(key, cache); - } - public static void putCacheInfo(String key, Cache obj, long dt){ - Cache cache = new Cache(); - cache.setKey(key); - cache.setTimeOut(dt+System.currentTimeMillis()); - cache.setValue(obj); - cache.setExpired(false); - cacheMap.put(key,cache); - } - - public static boolean cacheExpired(Cache cache) { + private static boolean cacheExpired(Cache cache) { if (null == cache) { return false; } @@ -180,62 +81,8 @@ public class CacheManager { } } - public static int getCacheSize() { - return cacheMap.size(); - } - - public static int getCacheSize(String type) { - int k = 0; - Iterator i = cacheMap.entrySet().iterator(); - String key; - try { - while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); - key = (String) entry.getKey(); - if (key.indexOf(type) != -1) { - k++; - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - - return k; - } - - public static ArrayList getCacheAllkey() { - ArrayList a = new ArrayList(); - try { - Iterator i = cacheMap.entrySet().iterator(); - while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); - a.add((String) entry.getKey()); - } - } catch (Exception ex) {} finally { - return a; - } - } - - public static ArrayList getCacheListkey(String type) { - ArrayList a = new ArrayList(); - String key; - try { - Iterator i = cacheMap.entrySet().iterator(); - while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); - key = (String) entry.getKey(); - if (key.indexOf(type) != -1) { - a.add(key); - } - } - } catch (Exception ex) {} finally { - return a; - } - } //根据用户信息删除缓存 public synchronized static void removeCacheByObject(Power_UserVo obj) { - ArrayList a = new ArrayList(); - Object key; ArrayList arr = new ArrayList(); try { Iterator i = cacheMap.entrySet().iterator(); @@ -247,12 +94,11 @@ public class CacheManager { arr.add((String)entry.getKey()); } } - if(null != arr && !arr.isEmpty()){ - for (int k = 0; k < arr.size(); k++) { - clearOnly(arr.get(k)); + if(!arr.isEmpty()){ + for (String s : arr) { + clearOnly(s); } } - } catch (Exception ex) {} + } catch (Exception ignored) {} } - } \ No newline at end of file diff --git a/power-service/src/main/java/com/manage/service/ipml/LogServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/LogServiceImpl.java index 0d00150..1d2330a 100644 --- a/power-service/src/main/java/com/manage/service/ipml/LogServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/LogServiceImpl.java @@ -3,6 +3,7 @@ package com.manage.service.ipml; import com.manage.dao.Power_LogMapper; import com.manage.entity.Power_Log; import com.manage.service.LogService; +import com.manage.util.ExceptionPrintUtil; import com.manage.vo.Power_UserVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -93,12 +94,13 @@ public class LogServiceImpl implements LogService { } if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { ipAddress = request.getRemoteAddr(); - if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){ + if("127.0.0.1".equals(ipAddress) || "0:0:0:0:0:0:0:1".equals(ipAddress)){ //根据网卡取本机配置的IP InetAddress inet=null; try { inet = InetAddress.getLocalHost(); } catch (UnknownHostException e) { + ExceptionPrintUtil.printException(e); e.printStackTrace(); } ipAddress= inet.getHostAddress(); diff --git a/power-service/src/main/java/com/manage/service/ipml/PageServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/PageServiceImpl.java index ee88811..f3d0d66 100644 --- a/power-service/src/main/java/com/manage/service/ipml/PageServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/PageServiceImpl.java @@ -37,14 +37,14 @@ public class PageServiceImpl { private int TEMPERATUREROWNUM; @Autowired private Power_UserMapper userMapper; - private static int byteToMb = 1024 * 1024; + private int byteToMb = 1024 * 1024; public Integer selectEffectiveCount(){ return userMapper.selectEffectiveCount(); } public Map getEcharts2(){ Map returnMap = new HashMap(); - List dateList = getDayListOfMonth(); + /*List dateList = getDayListOfMonth(); //日期集合 List dayList = new ArrayList<>(); //意向客户集合 @@ -120,13 +120,13 @@ public class PageServiceImpl { //添加长期客户 returnMap.put("longTermList",longTermList); //添加流失客户 - returnMap.put("lossList",lossList); + returnMap.put("lossList",lossList);*/ return returnMap; } public Map getEcharts3(){ Map returnMap = new HashMap(); - List dateList = getDayListOfMonth(); + /*List dateList = getDayListOfMonth(); //日期集合 List dayList = new ArrayList<>(); //登录次数集合 @@ -167,13 +167,12 @@ public class PageServiceImpl { //添加日期集合 returnMap.put("dayList",dayList); //日期对应登录数 - returnMap.put("dataList",dataList); + returnMap.put("dataList",dataList);*/ return returnMap; } public int getEcharts4() throws Exception{ - SigarUtils s = new SigarUtils(); - s.initSigar(); + SigarUtils.initSigar(); int cpuCount = cpu(); return cpuCount; } @@ -185,7 +184,6 @@ public class PageServiceImpl { cpuList = sigar.getCpuPercList(); double combined = 0; for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用 - CpuInfo info = infos[i]; combined += cpuList[i].getCombined()*100.0D; } return (int)combined/6; @@ -201,10 +199,11 @@ public class PageServiceImpl { } catch (FileNotFoundException e) { e.printStackTrace(); } - StringBuffer buffer = new StringBuffer(); + StringBuilder buffer = new StringBuilder(); byte[] bytes = new byte[1024]; try { - for(int n ; (n = input.read(bytes))!=-1 ; ){ + assert input != null; + for(int n; (n = input.read(bytes))!=-1 ; ){ buffer.append(new String(bytes,0,n,"GBK")); } } catch (IOException e) { @@ -213,7 +212,7 @@ public class PageServiceImpl { int i = buffer.toString().lastIndexOf(""); String substring = buffer.substring(0, i); String substring1 = substring.substring(substring.length() - 4, substring.length()); - Float f = Float.valueOf(substring1); + float f = Float.valueOf(substring1); temperature = Math.round(f); }catch (Exception e){ e.printStackTrace(); @@ -223,9 +222,8 @@ public class PageServiceImpl { public List getEcharts6() throws Exception{ List list = new ArrayList<>(); - SigarUtils s = new SigarUtils(); //初始化 - s.initSigar(); + SigarUtils.initSigar(); Sigar sigar = new Sigar(); //获取内存对象 Mem mem = sigar.getMem(); @@ -253,7 +251,7 @@ public class PageServiceImpl { int month = aCalendar.get(Calendar.MONTH) + 1;//月份 int day = aCalendar.getActualMaximum(Calendar.DATE); for (int i = 1; i <= day; i++) { - String aDate = String.valueOf(year)+"-"+month+"-"+i; + String aDate = year+"-"+month+"-"+i; list.add(aDate); } return list; diff --git a/power-service/src/main/java/com/manage/service/ipml/PowerServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/PowerServiceImpl.java index 279f40d..25f5088 100644 --- a/power-service/src/main/java/com/manage/service/ipml/PowerServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/PowerServiceImpl.java @@ -6,7 +6,6 @@ import com.manage.service.PowerService; import com.manage.vo.PowerTree; import com.manage.vo.Power_Sys_DictVo; import com.manage.vo.Power_UserAndRoleTree; -import com.manage.vo.Power_UserVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -110,7 +109,7 @@ public class PowerServiceImpl implements PowerService { } } } - if(null != hosList && !hosList.isEmpty()){ + if(!hosList.isEmpty()){ //组织树 int id = 1; int oneLevelId = 0; @@ -126,7 +125,7 @@ public class PowerServiceImpl implements PowerService { id++; //获取该医院不重复角色 Map roleListByHosId = new HashMap<>(); - if(null != roleList && !roleList.isEmpty()) { + if(!roleList.isEmpty()) { //属于该医院的权限系统下有有该角色 for (Power_UserAndRoleTree powerRole : roleList) { if (null != powerRole.getParentId() && powerRole.getParentId().equals(hos.getSelfId())) { @@ -135,7 +134,7 @@ public class PowerServiceImpl implements PowerService { } } //第二级权限系统 - if(null != powerList && !powerList.isEmpty()){ + if(!powerList.isEmpty()){ for(Power_UserAndRoleTree powerSys : powerList){ if(powerSys.getParentId().equals(hos.getSelfId())){ Power_UserAndRoleTree tree2 = new Power_UserAndRoleTree(); @@ -147,7 +146,7 @@ public class PowerServiceImpl implements PowerService { treeList.add(tree2); id++; //第三级角色 - if(null != roleListByHosId && !roleListByHosId.isEmpty()){ + if(!roleListByHosId.isEmpty()){ //属于该医院的权限系统下有有该角色 for (Map.Entry entry : roleListByHosId.entrySet()) { if(entry.getValue().getParentId().equals(hos.getSelfId())){ @@ -167,12 +166,12 @@ public class PowerServiceImpl implements PowerService { //取系统和角色 Map sysListByHosDeptId = new HashMap<>(); List tempRoleList = new ArrayList<>(); - if(null != deptList && !deptList.isEmpty()) { + if(!deptList.isEmpty()) { for (Power_UserAndRoleTree dept : deptList) { if (dept.getParentId().equals(hos.getSelfId())) { Set sysFlagSet = new TreeSet<>(); //获取该科室不重复系统 - if (null != sysList && !sysList.isEmpty()) { + if (!sysList.isEmpty()) { for (Power_UserAndRoleTree sys : sysList) { if (null != sys.getParentId() && sys.getDeptId().equals(dept.getDeptId())) { sysListByHosDeptId.put(sys.getSysFlag(),sys); @@ -181,23 +180,23 @@ public class PowerServiceImpl implements PowerService { } } //给角色设置系统权限 - if (null != roleList && !roleList.isEmpty()) { + if (!roleList.isEmpty()) { for (Power_UserAndRoleTree role : roleList) { - String sysFlagStr = ""; + StringBuilder sysFlagStr = new StringBuilder(); String deptId = role.getDeptId(); if(StringUtils.isNotBlank(deptId)){ //单一科室 if (!deptId.contains(",")) { if (deptId.equals(dept.getDeptId())) { - if(null != sysFlagSet && !sysFlagSet.isEmpty()){ + if(!sysFlagSet.isEmpty()){ for(String sysFlag:sysFlagSet){ - sysFlagStr += sysFlag + ","; + sysFlagStr.append(sysFlag).append(","); } } - if(StringUtils.isNotBlank(sysFlagStr)){ + if(StringUtils.isNotBlank(sysFlagStr.toString())){ Power_UserAndRoleTree tempRole = new Power_UserAndRoleTree(); BeanUtils.copyProperties(role,tempRole); - tempRole.setSysFlag(sysFlagStr); + tempRole.setSysFlag(sysFlagStr.toString()); tempRoleList.add(tempRole); } } @@ -206,15 +205,15 @@ public class PowerServiceImpl implements PowerService { String[] deptIds = deptId.split(","); for (String deptStr : deptIds) { if (StringUtils.isNotBlank(deptStr) && deptStr.equals(dept.getDeptId())) { - if(null != sysFlagSet && !sysFlagSet.isEmpty()){ + if(!sysFlagSet.isEmpty()){ for(String sysFlag:sysFlagSet){ - sysFlagStr += sysFlag + ","; + sysFlagStr.append(sysFlag).append(","); } } - if(StringUtils.isNotBlank(sysFlagStr)){ + if(StringUtils.isNotBlank(sysFlagStr.toString())){ Power_UserAndRoleTree tempRole = new Power_UserAndRoleTree(); BeanUtils.copyProperties(role,tempRole); - tempRole.setSysFlag(sysFlagStr); + tempRole.setSysFlag(sysFlagStr.toString()); tempRoleList.add(tempRole); } } @@ -226,7 +225,7 @@ public class PowerServiceImpl implements PowerService { } } //第三级系统 - if (null != sysListByHosDeptId && !sysListByHosDeptId.isEmpty()) { + if (!sysListByHosDeptId.isEmpty()) { for (Map.Entry sys : sysListByHosDeptId.entrySet()) { if(sys.getValue().getParentId().equals(hos.getSelfId())){ Power_UserAndRoleTree tree5 = new Power_UserAndRoleTree(); @@ -239,7 +238,7 @@ public class PowerServiceImpl implements PowerService { id++; //第四级角色 Map roleListBySys = new HashMap<>(); - if (null != roleList && !roleList.isEmpty()) { + if (!roleList.isEmpty()) { for (Power_UserAndRoleTree role : tempRoleList) { String sysFlag = role.getSysFlag(); if(StringUtils.isNotBlank(sysFlag)){ @@ -248,13 +247,12 @@ public class PowerServiceImpl implements PowerService { for (String sysFlagStr : sysFlags) { if (StringUtils.isNotBlank(sysFlagStr) && sysFlagStr.equals(sys.getValue().getSysFlag())) { roleListBySys.put(role.getSelfId(),role); - continue; } } } } } - if(null != roleListBySys && !roleListBySys.isEmpty()){ + if(!roleListBySys.isEmpty()){ for (Map.Entry roleBySys:roleListBySys.entrySet()) { Power_UserAndRoleTree tree6 = new Power_UserAndRoleTree(); BeanUtils.copyProperties(roleBySys.getValue(), tree6); @@ -299,10 +297,10 @@ public class PowerServiceImpl implements PowerService { //否则按角色菜单表该角色的权限选中 List roleMenus = roleMenuMapper.selectRoleMenuByRoleId(roleId); if(null != menus && !menus.isEmpty() && null != roleMenus && !roleMenus.isEmpty()){ - for (int i = 0; i < menus.size(); i++) { - for (int j = 0; j < roleMenus.size(); j++) { - if(menus.get(i).getMenuId().equals(roleMenus.get(j).getMenuId())){ - menus.get(i).setChecked("true"); + for (Power_Menu menu : menus) { + for (Power_Role_Menu roleMenu : roleMenus) { + if (menu.getMenuId().equals(roleMenu.getMenuId())) { + menu.setChecked("true"); break; } } @@ -404,7 +402,7 @@ public class PowerServiceImpl implements PowerService { } } } - if(null != hosList && !hosList.isEmpty()){ + if(!hosList.isEmpty()){ //组织树 int id = 1; int oneLevelId = 0; @@ -420,7 +418,7 @@ public class PowerServiceImpl implements PowerService { treeList.add(tree1); id++; //第二级权限系统 - if(null != powerList && !powerList.isEmpty()){ + if(!powerList.isEmpty()){ for(Power_UserAndRoleTree powerSys : powerList){ if(powerSys.getParentId().equals(hos.getSelfId())){ Power_UserAndRoleTree tree2 = new Power_UserAndRoleTree(); @@ -429,10 +427,10 @@ public class PowerServiceImpl implements PowerService { twoLevelId = id; tree2.setParentId(oneLevelId); tree2.setSysFlag(powerSys.getSysFlag()); - Boolean isParent = false; + boolean isParent = false; id++; //第三级用户 - if(null != userList && !userList.isEmpty()){ + if(!userList.isEmpty()){ //属于该医院的权限系统下有有该用户 for(Power_UserAndRoleTree powerUser : userList){ if(null != powerUser.getParentId() && powerUser.getParentId().equals(hos.getSelfId())){ @@ -462,7 +460,7 @@ public class PowerServiceImpl implements PowerService { } } //第二级科室 - if(null != deptList && !deptList.isEmpty()){ + if(!deptList.isEmpty()){ for(Power_UserAndRoleTree dept : deptList){ if(dept.getParentId().equals(hos.getSelfId())){ Power_UserAndRoleTree tree4 = new Power_UserAndRoleTree(); @@ -475,7 +473,7 @@ public class PowerServiceImpl implements PowerService { id++; } //第三级系统 - if(null != sysList && !sysList.isEmpty()){ + if(!sysList.isEmpty()){ for(Power_UserAndRoleTree sys : sysList) { if (null != sys.getParentId() && sys.getDeptId().equals(dept.getDeptId()) && sys.getParentId().equals(hos.getSelfId())) { Power_UserAndRoleTree tree5 = new Power_UserAndRoleTree(); @@ -485,9 +483,9 @@ public class PowerServiceImpl implements PowerService { tree5.setSysFlag(sys.getSysFlag()); threeLevelId = id; id++; - Boolean isParent = false; + boolean isParent = false; //第四级用户 - if(null != userList && !userList.isEmpty()) { + if(!userList.isEmpty()) { for (Power_UserAndRoleTree users : userList) { String deptId = users.getDeptId(); if(StringUtils.isNotBlank(deptId)){ @@ -617,8 +615,8 @@ public class PowerServiceImpl implements PowerService { //roleId为-100医院管理员,菜单功能全选中 if(null != user.getRoleId() && user.getRoleId() == -100){ if(null != menus && !menus.isEmpty()){ - for (int i = 0; i < menus.size(); i++) { - menus.get(i).setChecked("true"); + for (Power_Menu menu : menus) { + menu.setChecked("true"); } } }else{ @@ -626,10 +624,10 @@ public class PowerServiceImpl implements PowerService { List userMenus = userMenuMapper.selectUserAndRoleMenuPower(sysFlag, userId); if(null != menus && !menus.isEmpty() && null != userMenus && !userMenus.isEmpty()){ //有符合权限则checked设为true - for (int i = 0; i < menus.size(); i++) { - for (int j = 0; j < userMenus.size(); j++) { - if(menus.get(i).getMenuId().equals(userMenus.get(j).getMenuId())){ - menus.get(i).setChecked("true"); + for (Power_Menu menu : menus) { + for (Power_User_Menu userMenu : userMenus) { + if (menu.getMenuId().equals(userMenu.getMenuId())) { + menu.setChecked("true"); break; } } @@ -658,36 +656,30 @@ public class PowerServiceImpl implements PowerService { String userName = user.getUserName(); //查询该用户对应系统在用户菜单表中已有的权限,先删除后新增 userMenuMapper.deleteUserMenuByUserIdAndSysFlag(sysFlag, userId); - /* List userPowers = userMenuMapper.selectUserMenuPower(sysFlag,userId); - if(null != userPowers && !userPowers.isEmpty()){ - for (int i = 0; i < userPowers.size(); i++) { - userMenuMapper.deleteByPrimaryKey(userPowers.get(i).getUserMenuId()); - } - }*/ - Power_User power_user = userMapper.selectByPrimaryKey(userId); + Power_User powerUser = userMapper.selectByPrimaryKey(userId); //查询该用户对应的角色菜单权限 - List rolePowers = roleMenuMapper.selectRoleMenuPower(sysFlag, power_user.getRoleId()); + List rolePowers = roleMenuMapper.selectRoleMenuPower(sysFlag, powerUser.getRoleId()); if(null != rolePowers && !rolePowers.isEmpty()){ if(StringUtils.isBlank(menus)){ //全取消 List list = new ArrayList<>(); - for (int i = 0; i < rolePowers.size(); i++) { - list.add(addUserFunction(userName, userId, rolePowers.get(i).getMenuId().toString(), 0)); + for (Power_Role_Menu rolePower : rolePowers) { + list.add(addUserFunction(userName, userId, rolePower.getMenuId().toString(), 0)); } userMenuMapper.simpleInsertUserMenu(list); }else{ //计算新增和删除 List roles = new ArrayList<>(); List users = new ArrayList<>(); - for (int i = 0; i < rolePowers.size(); i++) { - roles.add(rolePowers.get(i).getMenuId().toString()); + for (Power_Role_Menu rolePower : rolePowers) { + roles.add(rolePower.getMenuId().toString()); } String[] menu = menus.split(","); users = Arrays.asList(menu); //新增部分 Collection inserts=new ArrayList(users); inserts.removeAll(roles); - if(null != inserts && !inserts.isEmpty()){ + if(!inserts.isEmpty()){ //新增flag为1 List list = new ArrayList<>(); for (String insertMenu : inserts) { @@ -700,7 +692,7 @@ public class PowerServiceImpl implements PowerService { //删除部分 Collection deletes=new ArrayList(roles); deletes.removeAll(users); - if(null != deletes && !deletes.isEmpty()){ + if(!deletes.isEmpty()){ List list = new ArrayList<>(); for(String deleteMenu : deletes){ if(StringUtils.isNotBlank(deleteMenu)){ @@ -772,17 +764,17 @@ public class PowerServiceImpl implements PowerService { int twoLevel = 0; Map hospitalNameSet = new HashMap<>(); if(null != dicts && !dicts.isEmpty()){ - for (int i = 0; i < dicts.size(); i++) { - if(StringUtils.isNotBlank(dicts.get(i).getHospitalName())){ - hospitalNameSet.put(dicts.get(i).getDictId(),dicts.get(i).getHospitalName()); + for (Power_Sys_DictVo dict : dicts) { + if (StringUtils.isNotBlank(dict.getHospitalName())) { + hospitalNameSet.put(dict.getDictId(), dict.getHospitalName()); } //用户集合 - if(null == dicts.get(i).getDictId()){ - userList.add(dicts.get(i)); + if (null == dict.getDictId()) { + userList.add(dict); } } } - if(null != hospitalNameSet && !hospitalNameSet.isEmpty()){ + if(!hospitalNameSet.isEmpty()){ for(Integer hosKey : hospitalNameSet.keySet()){ Map deptNameSet = new HashMap<>(); Map poweSysNameSet = new HashMap<>(); @@ -794,23 +786,22 @@ public class PowerServiceImpl implements PowerService { tree1.setId(id); tree1.setName(hospitalNameSet.get(hosKey)); treeList.add(tree1); - for (int i = 0; i < dicts.size(); i++) { + for (Power_Sys_DictVo dict : dicts) { //查询病案系统的科室 - if(StringUtils.isNotBlank(dicts.get(i).getSysFlag()) && dicts.get(i).getSysFlag().equals(sysFlag) && dicts.get(i).getParentId().equals(hosKey) && null != dicts.get(i).getDictDeptId()){ - deptIds.add(dicts.get(i).getDictDeptId()); + if (StringUtils.isNotBlank(dict.getSysFlag()) && dict.getSysFlag().equals(sysFlag) && dict.getParentId().equals(hosKey) && null != dict.getDictDeptId()) { + deptIds.add(dict.getDictDeptId()); } } - if(null != deptIds && !deptIds.isEmpty()){ + if(!deptIds.isEmpty()){ for(Integer deptId : deptIds){ - for (int i = 0; i < dicts.size(); i++) { - if(StringUtils.isNotBlank(dicts.get(i).getDeptIds()) && dicts.get(i).getDeptIds().equals(deptId.toString()) && StringUtils.isNotBlank(dicts.get(i).getDeptName())){ - deptNameSet.put(dicts.get(i).getDeptIds(),dicts.get(i).getDeptName()); + for (Power_Sys_DictVo dict : dicts) { + if (StringUtils.isNotBlank(dict.getDeptIds()) && dict.getDeptIds().equals(deptId.toString()) && StringUtils.isNotBlank(dict.getDeptName())) { + deptNameSet.put(dict.getDeptIds(), dict.getDeptName()); } } } - if(null != deptNameSet && !deptNameSet.isEmpty()){ + if(!deptNameSet.isEmpty()){ for (String key : deptNameSet.keySet()) { - Map sysNameSet = new HashMap<>(); //科室层 id++; twoLevel = id; @@ -820,20 +811,20 @@ public class PowerServiceImpl implements PowerService { tree2.setName(deptNameSet.get(key)); treeList.add(tree2); Map roleMap = new HashMap<>(); - if (null != userList && !userList.isEmpty()) { - for (int j = 0; j < userList.size(); j++) { - if(StringUtils.isNoneBlank(userList.get(j).getSysType())){ - String deptIdss = userList.get(j).getDeptIds(); - if(StringUtils.isNotBlank(deptIdss)){ - if(!deptIdss.contains(",")){ - if(deptIdss.equals(key)){ - roleMap.put(userList.get(j).getParentId(),userList.get(j).getSysType()); + if (!userList.isEmpty()) { + for (Power_Sys_DictVo dictVo : userList) { + if (StringUtils.isNoneBlank(dictVo.getSysType())) { + String deptIdss = dictVo.getDeptIds(); + if (StringUtils.isNotBlank(deptIdss)) { + if (!deptIdss.contains(",")) { + if (deptIdss.equals(key)) { + roleMap.put(dictVo.getParentId(), dictVo.getSysType()); } - }else{ + } else { String[] deptIdsss = deptIdss.split(","); - for(String deptId:deptIdsss){ - if(StringUtils.isNotBlank(deptId) && deptId.equals(key)){ - roleMap.put(userList.get(j).getParentId(),userList.get(j).getSysType()); + for (String deptId : deptIdsss) { + if (StringUtils.isNotBlank(deptId) && deptId.equals(key)) { + roleMap.put(dictVo.getParentId(), dictVo.getSysType()); } } } @@ -890,20 +881,19 @@ public class PowerServiceImpl implements PowerService { int twoLevel = 0; Map hospitalNameSet = new HashMap<>(); if(null != dicts && !dicts.isEmpty()){ - for (int i = 0; i < dicts.size(); i++) { - if(StringUtils.isNotBlank(dicts.get(i).getHospitalName())){ - hospitalNameSet.put(dicts.get(i).getDictId(),dicts.get(i).getHospitalName()); + for (Power_Sys_DictVo dict : dicts) { + if (StringUtils.isNotBlank(dict.getHospitalName())) { + hospitalNameSet.put(dict.getDictId(), dict.getHospitalName()); } //用户集合 - if(null == dicts.get(i).getDictId()){ - userList.add(dicts.get(i)); + if (null == dict.getDictId()) { + userList.add(dict); } } } - if(null != hospitalNameSet && !hospitalNameSet.isEmpty()){ + if(!hospitalNameSet.isEmpty()){ for(Integer hosKey : hospitalNameSet.keySet()){ Map deptNameSet = new HashMap<>(); - Map poweSysNameSet = new HashMap<>(); Set deptIds = new TreeSet<>(); //医院层 id++; @@ -912,21 +902,21 @@ public class PowerServiceImpl implements PowerService { tree1.setId(id); tree1.setName(hospitalNameSet.get(hosKey)); treeList.add(tree1); - for (int i = 0; i < dicts.size(); i++) { + for (Power_Sys_DictVo dict : dicts) { //查询病案系统的科室 - if(StringUtils.isNotBlank(dicts.get(i).getSysFlag()) && dicts.get(i).getSysFlag().equals(sysFlag) && dicts.get(i).getParentId().equals(hosKey)){ - deptIds.add(dicts.get(i).getDictDeptId()); + if (StringUtils.isNotBlank(dict.getSysFlag()) && dict.getSysFlag().equals(sysFlag) && dict.getParentId().equals(hosKey)) { + deptIds.add(dict.getDictDeptId()); } } - if(null != deptIds && !deptIds.isEmpty()){ + if(!deptIds.isEmpty()){ for(Integer deptId : deptIds){ - for (int i = 0; i < dicts.size(); i++) { - if(StringUtils.isNotBlank(dicts.get(i).getDeptIds()) && dicts.get(i).getDeptIds().equals(deptId.toString()) && StringUtils.isNotBlank(dicts.get(i).getDeptName())){ - deptNameSet.put(dicts.get(i).getDeptIds(),dicts.get(i).getDeptName()); + for (Power_Sys_DictVo dict : dicts) { + if (StringUtils.isNotBlank(dict.getDeptIds()) && dict.getDeptIds().equals(deptId.toString()) && StringUtils.isNotBlank(dict.getDeptName())) { + deptNameSet.put(dict.getDeptIds(), dict.getDeptName()); } } } - if(null != deptNameSet && !deptNameSet.isEmpty()){ + if(!deptNameSet.isEmpty()){ for (String key : deptNameSet.keySet()) { //科室层 id++; @@ -938,20 +928,20 @@ public class PowerServiceImpl implements PowerService { treeList.add(tree2); Map roleMap = new HashMap<>(); //sysName 用户id,hospitalTel 手机号,dictArea用户名,parentId角色id,sysType角色名 - if (null != userList && !userList.isEmpty()) { - for (int j = 0; j < userList.size(); j++) { - if(StringUtils.isNoneBlank(userList.get(j).getDictArea())){ - String deptIdss = userList.get(j).getDeptIds(); - if(StringUtils.isNotBlank(deptIdss)){ - if(!deptIdss.contains(",")){ - if(deptIdss.equals(key)){ - roleMap.put(Integer.valueOf(userList.get(j).getSysName()),userList.get(j)); + if (!userList.isEmpty()) { + for (Power_Sys_DictVo dictVo : userList) { + if (StringUtils.isNoneBlank(dictVo.getDictArea())) { + String deptIdss = dictVo.getDeptIds(); + if (StringUtils.isNotBlank(deptIdss)) { + if (!deptIdss.contains(",")) { + if (deptIdss.equals(key)) { + roleMap.put(Integer.valueOf(dictVo.getSysName()), dictVo); } - }else{ + } else { String[] deptIdsss = deptIdss.split(","); - for(String deptId:deptIdsss){ - if(StringUtils.isNotBlank(deptId) && deptId.equals(key)){ - roleMap.put(Integer.valueOf(userList.get(j).getSysName()),userList.get(j)); + for (String deptId : deptIdsss) { + if (StringUtils.isNotBlank(deptId) && deptId.equals(key)) { + roleMap.put(Integer.valueOf(dictVo.getSysName()), dictVo); } } } @@ -1007,13 +997,13 @@ public class PowerServiceImpl implements PowerService { int twoLevel = 0; Map hospitalNameSet = new HashMap<>(); if(null != dicts && !dicts.isEmpty()){ - for (int i = 0; i < dicts.size(); i++) { - if(StringUtils.isNotBlank(dicts.get(i).getHospitalName())){ - hospitalNameSet.put(dicts.get(i).getDictId(),dicts.get(i).getHospitalName()); + for (Power_Sys_DictVo dict : dicts) { + if (StringUtils.isNotBlank(dict.getHospitalName())) { + hospitalNameSet.put(dict.getDictId(), dict.getHospitalName()); } } } - if(null != hospitalNameSet && !hospitalNameSet.isEmpty()){ + if(!hospitalNameSet.isEmpty()){ for(Integer hosKey : hospitalNameSet.keySet()){ Map deptNameSet = new HashMap<>(); Map poweSysNameSet = new HashMap<>(); @@ -1026,20 +1016,20 @@ public class PowerServiceImpl implements PowerService { tree1.setSelfId(hosKey); tree1.setName(hospitalNameSet.get(hosKey)); treeList.add(tree1); - for (int i = 0; i < dicts.size(); i++) { - if(dicts.get(i).getParentId().equals(hosKey)){ - String deptName = dicts.get(i).getDeptName(); - if(StringUtils.isNoneBlank(deptName)){ - deptNameSet.put(dicts.get(i).getDeptId(),dicts.get(i).getDeptName()); + for (Power_Sys_DictVo dict : dicts) { + if (dict.getParentId().equals(hosKey)) { + String deptName = dict.getDeptName(); + if (StringUtils.isNoneBlank(deptName)) { + deptNameSet.put(dict.getDeptId(), dict.getDeptName()); } } //添加权限系统 - if(dicts.get(i).getParentId() != null && StringUtils.isNotBlank(dicts.get(i).getSysFlag()) && dicts.get(i).getParentId().equals(hosKey) && "权限系统".equals(dicts.get(i).getSysType())){ - poweSysNameSet.put(dicts.get(i).getDictId(),dicts.get(i)); + if (dict.getParentId() != null && StringUtils.isNotBlank(dict.getSysFlag()) && dict.getParentId().equals(hosKey) && "权限系统".equals(dict.getSysType())) { + poweSysNameSet.put(dict.getDictId(), dict); } } //添加权限系统 - if(null != poweSysNameSet && !poweSysNameSet.isEmpty()){ + if(!poweSysNameSet.isEmpty()){ for (Integer key : poweSysNameSet.keySet()) { id++; twoLevel = id; @@ -1053,7 +1043,7 @@ public class PowerServiceImpl implements PowerService { treeList.add(tree20); } } - if(null != deptNameSet && !deptNameSet.isEmpty()){ + if(!deptNameSet.isEmpty()){ for (Integer key : deptNameSet.keySet()) { Map sysNameSet = new HashMap<>(); //科室层 @@ -1065,16 +1055,16 @@ public class PowerServiceImpl implements PowerService { tree2.setName(deptNameSet.get(key)); tree2.setSelfId(0-key); treeList.add(tree2); - for (int i = 0; i < dicts.size(); i++) { - if(dicts.get(i).getDictDeptId() != null && dicts.get(i).getDictDeptId().equals(key) - && dicts.get(i).getParentId() != null && dicts.get(i).getParentId().equals(hosKey)){ - String sysName = dicts.get(i).getSysName(); - if(StringUtils.isNoneBlank(sysName)){ - sysNameSet.put(dicts.get(i).getDictId(),sysName); + for (Power_Sys_DictVo dict : dicts) { + if (dict.getDictDeptId() != null && dict.getDictDeptId().equals(key) + && dict.getParentId() != null && dict.getParentId().equals(hosKey)) { + String sysName = dict.getSysName(); + if (StringUtils.isNoneBlank(sysName)) { + sysNameSet.put(dict.getDictId(), sysName); } } } - if(null != sysNameSet && !sysNameSet.isEmpty()){ + if(!sysNameSet.isEmpty()){ for (Integer dictId : sysNameSet.keySet()) { //系统层 id++; diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_DeptServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_DeptServiceImpl.java index 9445fd1..799a8aa 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_DeptServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_DeptServiceImpl.java @@ -91,25 +91,25 @@ public class Power_DeptServiceImpl implements Power_DeptService { //查询归属医院 powerDept.setDictId(powerUser1.getDictId()); } - List power_depts = powerDeptDao.findSomeByMore(powerDept); + List powerDeptList = powerDeptDao.findSomeByMore(powerDept); Set perms = powerUser1.getMenus(); - if(null != power_depts && !power_depts.isEmpty()){ - for (int i = 0; i < power_depts.size(); i++) { - Integer isUpdate = 0; - Integer isDelete = 0; - for(String menu : perms){ - if("/dept/update".equals(menu)){ + if(null != powerDeptList && !powerDeptList.isEmpty()){ + for (Power_DeptVo powerDeptTemp : powerDeptList) { + int isUpdate = 0; + int isDelete = 0; + for (String menu : perms) { + if ("/dept/update".equals(menu)) { isUpdate = 1; } - if("/dept/delete".equals(menu)){ + if ("/dept/delete".equals(menu)) { isDelete = 1; } } - power_depts.get(i).setIsUpdate(isUpdate); - power_depts.get(i).setIsDelete(isDelete); + powerDeptTemp.setIsUpdate(isUpdate); + powerDeptTemp.setIsDelete(isDelete); } } - return power_depts; + return powerDeptList; } @Override @@ -127,9 +127,9 @@ public class Power_DeptServiceImpl implements Power_DeptService { @Override public List selectByPrimaryKeys(String dept_ids) { - String[] dept_id = dept_ids.split(","); + String[] deptIdArr = dept_ids.split(","); Map map = new HashMap<>(); - map.put("list",dept_id); + map.put("list",deptIdArr); return powerDeptDao.selectByPrimaryKeys(map); } @@ -145,11 +145,11 @@ public class Power_DeptServiceImpl implements Power_DeptService { public void export(Power_DeptVo powerDept,HttpServletRequest request,HttpServletResponse response) throws Exception { List depts = this.findSomeByMore(powerDept,request); if(null != depts && !depts.isEmpty()){ - for (int i = 0; i < depts.size(); i++) { - if(depts.get(i).getEffective() == 1){ - depts.get(i).setEffectiveCn("是"); - }else{ - depts.get(i).setEffectiveCn("否"); + for (Power_DeptVo dept : depts) { + if (dept.getEffective() == 1) { + dept.setEffectiveCn("是"); + } else { + dept.setEffectiveCn("否"); } } } @@ -173,11 +173,11 @@ public class Power_DeptServiceImpl implements Power_DeptService { public void exportBlood(Power_DeptVo powerDept,HttpServletRequest request,HttpServletResponse response) throws Exception { List depts = this.findSomeByMore(powerDept,request); if(null != depts && !depts.isEmpty()){ - for (int i = 0; i < depts.size(); i++) { - if(depts.get(i).getEffective() == 1){ - depts.get(i).setEffectiveCn("是"); - }else{ - depts.get(i).setEffectiveCn("否"); + for (Power_DeptVo dept : depts) { + if (dept.getEffective() == 1) { + dept.setEffectiveCn("是"); + } else { + dept.setEffectiveCn("否"); } } } diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_MenuServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_MenuServiceImpl.java index 9dd2a7e..aafa9ec 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_MenuServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_MenuServiceImpl.java @@ -28,8 +28,7 @@ public class Power_MenuServiceImpl implements Power_MenuService{ private Power_Sys_DictMapper sysDictMapper; @Override public List queryAllPowerMenu(String sysFlag,Integer roleId) { - List power_menus = powerMenuMapper.queryAllPowerMenu(sysFlag,roleId); - return power_menus; + return powerMenuMapper.queryAllPowerMenu(sysFlag,roleId); } /** diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_NoticeServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_NoticeServiceImpl.java index d488d75..a9c7d50 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_NoticeServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_NoticeServiceImpl.java @@ -1,11 +1,9 @@ package com.manage.service.ipml; import com.manage.dao.Power_NoticeMapper; -import com.manage.dao.Power_Sys_DictMapper; import com.manage.dao.Power_UserMapper; import com.manage.dao.Power_User_DictMapper; import com.manage.entity.Power_Notice; -import com.manage.entity.Power_Sys_Dict; import com.manage.entity.Power_User; import com.manage.service.webSocket.WsPool; import com.manage.vo.PowerTree; @@ -49,23 +47,6 @@ public class Power_NoticeServiceImpl{ @Autowired private Power_User_DictMapper userDictMapper; - /** - * @MethodName getNoticeTypeTree - * @Description: 获取通知类别树 - * @Param 无 - * @Returnt Msg - * @Author: 曾文和 - * @CreateDate: 2019-08-26 - * @UpdateUser: 曾文和 - * @UpdateDate: 2019-08-26 - * @UpdateRemark: 更新说明 - * @Version: 1.0 - */ - public List selectNoticeTypeList(Power_NoticeVo powerNotice){ - List power_notices = noticeMapper.selectNoticeTypeList(powerNotice); - return power_notices; - } - /** * @MethodName getNoticeTypeTree * @Description: 获取通知类别树 @@ -113,8 +94,7 @@ public class Power_NoticeServiceImpl{ * @Version: 1.0 */ public Power_Notice checkTypeSysFlagOrTypeSysName(String noticeTypeFlag,String noticeTypeName){ - Power_Notice powerNotice = noticeMapper.checkTypeSysFlagOrTypeSysName(noticeTypeFlag, noticeTypeName); - return powerNotice; + return noticeMapper.checkTypeSysFlagOrTypeSysName(noticeTypeFlag, noticeTypeName); } /** @@ -172,8 +152,8 @@ public class Power_NoticeServiceImpl{ if(StringUtils.isNotBlank(powerNotice.getNoticeReceive())){ String receice = powerNotice.getNoticeReceive(); Integer parentId = powerNotice.getParentId(); - Power_Notice power_notice = noticeMapper.selectByPrimaryKey(parentId); - String sysFlag = power_notice.getNoticeTypeFlag(); + Power_Notice powerNoticeTemp = noticeMapper.selectByPrimaryKey(parentId); + String sysFlag = powerNoticeTemp.getNoticeTypeFlag(); if(!"all".equals(receice)){ WsPool.sendMessageToAll(sysFlag+"_"+receice,title+STR_SPLIT+content+STR_SPLIT+powerNotice.getNoticeId()); }else{ @@ -270,8 +250,8 @@ public class Power_NoticeServiceImpl{ List userList = new ArrayList<>(); Power_NoticeVo noticeVo = new Power_NoticeVo(); noticeVo.setNoticeId(noticeTypeId); - List power_notices = noticeMapper.selectNoticeTypeList(noticeVo); - String noticeTypeFlag = power_notices.get(0).getNoticeTypeFlag(); + List powerNotices = noticeMapper.selectNoticeTypeList(noticeVo); + String noticeTypeFlag = powerNotices.get(0).getNoticeTypeFlag(); //系统管理员,全查 if(user.getRoleId() == 0){ //权限系统,全查 @@ -283,13 +263,13 @@ public class Power_NoticeServiceImpl{ } }else{ - Power_User_Dict power_user_dict = userDictMapper.selectDictIdByUserId(user.getUserId()); + Power_User_Dict powerUserDict = userDictMapper.selectDictIdByUserId(user.getUserId()); if("power".equals(noticeTypeFlag)){ //权限系统,全查该医院 - userList = userMapper.selectAllBySysId(power_user_dict.getDictId(),user.getUserName()); + userList = userMapper.selectAllBySysId(powerUserDict.getDictId(),user.getUserName()); }else{ //非权限系统,查该医院该系统用户 - userList = userMapper.selectUserListByNoticeTypeId(noticeTypeId,power_user_dict.getDictId()); + userList = userMapper.selectUserListByNoticeTypeId(noticeTypeId,powerUserDict.getDictId()); } } return userList; @@ -298,21 +278,21 @@ public class Power_NoticeServiceImpl{ public void export(Power_NoticeVo notice, String noticeIds,HttpServletResponse response,HttpServletRequest request) throws Exception { List noticeVos = new ArrayList<>(); Power_User user = (Power_User)request.getSession().getAttribute("CURRENT_USER"); - Listpower_notices = new ArrayList(); + List powerNotices = new ArrayList(); if(StringUtils.isNotBlank(noticeIds)){ //按选中id集合查 - power_notices = noticeMapper.selectAllByIds(noticeIds); + powerNotices = noticeMapper.selectAllByIds(noticeIds); }else{ //按搜索条件查 if(user.getRoleId() == 0){ - power_notices = this.noticeMapper.selectALlByPowerWithExport(null,null,notice); + powerNotices = this.noticeMapper.selectALlByPowerWithExport(null,null,notice); }else{ - power_notices = this.noticeMapper.selectALlByPowerWithExport(user.getRoleId(),user.getUserId(),notice); + powerNotices = this.noticeMapper.selectALlByPowerWithExport(user.getRoleId(),user.getUserId(),notice); } } - if(null != power_notices && !power_notices.isEmpty()){ - for (Power_NoticeVo powerNotice:power_notices){ + if(null != powerNotices && ! powerNotices.isEmpty()){ + for (Power_NoticeVo powerNotice: powerNotices){ Power_NoticeVo noticeVo1 = new Power_NoticeVo(); if(null != powerNotice.getEffective()){ BeanUtils.copyProperties(powerNotice,noticeVo1); @@ -374,9 +354,8 @@ public class Power_NoticeServiceImpl{ * @UpdateRemark: 更新说明 * @Version: 1.2.2 */ - public int getUnReadCount(Integer userId){ + public int getUnReadCount(){ //获取登陆者信息 - int unReadCount = noticeMapper.getUnReadCount(null); - return unReadCount; + return noticeMapper.getUnReadCount(null); } } diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_RoleServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_RoleServiceImpl.java index 5cb2acd..8d66da5 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_RoleServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_RoleServiceImpl.java @@ -32,7 +32,6 @@ public class Power_RoleServiceImpl implements Power_RoleService { @Override public int deleteByPrimaryKey(Integer roleId) { //将关联用户的角色id置空 - return powerRoleMapper.deleteByPrimaryKey(roleId); } @@ -82,25 +81,25 @@ public class Power_RoleServiceImpl implements Power_RoleService { @Override public List findSomeByMore(Power_RoleVo powerRole, HttpServletRequest request) { Power_UserVo powerUser1 =(Power_UserVo) request.getSession().getAttribute("CURRENT_USER"); - List power_roles = powerRoleMapper.findSomeByMore(powerRole, powerUser1.getRoleId(),powerUser1.getUserId()); + List powerRoleList = powerRoleMapper.findSomeByMore(powerRole, powerUser1.getRoleId(),powerUser1.getUserId()); Set perms = powerUser1.getMenus(); - if(null != power_roles && !power_roles.isEmpty()){ - for (int i = 0; i < power_roles.size(); i++) { - Integer isUpdate = 0; - Integer isDelete = 0; - for(String menu : perms){ - if("/role/update".equals(menu)){ + if(null != powerRoleList && !powerRoleList.isEmpty()){ + for (Power_RoleVo powerRoleTemp : powerRoleList) { + int isUpdate = 0; + int isDelete = 0; + for (String menu : perms) { + if ("/role/update".equals(menu)) { isUpdate = 1; } - if("/role/delete".equals(menu)){ + if ("/role/delete".equals(menu)) { isDelete = 1; } } - power_roles.get(i).setIsUpdate(isUpdate); - power_roles.get(i).setIsDelete(isDelete); + powerRoleTemp.setIsUpdate(isUpdate); + powerRoleTemp.setIsDelete(isDelete); } } - return power_roles; + return powerRoleList; } @Override @@ -114,22 +113,22 @@ public class Power_RoleServiceImpl implements Power_RoleService { Power_User powerUser1 =(Power_User) request.getSession().getAttribute("CURRENT_USER"); List roleList = powerRoleMapper.findSomeByMore(powerRole, powerUser1.getRoleId(),powerUser1.getUserId()); if(null != roleList && !roleList.isEmpty()){ - for (int i = 0; i < roleList.size(); i++) { - if(roleList.get(i).getEffective() != null){ - if(roleList.get(i).getEffective() == 1){ - roleList.get(i).setEffectiveCn("是"); - }else{ - roleList.get(i).setEffectiveCn("否"); + for (Power_RoleVo power_roleVo : roleList) { + if (power_roleVo.getEffective() != null) { + if (power_roleVo.getEffective() == 1) { + power_roleVo.setEffectiveCn("是"); + } else { + power_roleVo.setEffectiveCn("否"); } - if(roleList.get(i).getShowRecord() == 1){ - roleList.get(i).setShowRecordCn("是"); - }else{ - roleList.get(i).setShowRecordCn("否"); + if (power_roleVo.getShowRecord() == 1) { + power_roleVo.setShowRecordCn("是"); + } else { + power_roleVo.setShowRecordCn("否"); } - if(roleList.get(i).getDownloadRecord() == 1){ - roleList.get(i).setDownloadRecordCn("是"); - }else{ - roleList.get(i).setDownloadRecordCn("否"); + if (power_roleVo.getDownloadRecord() == 1) { + power_roleVo.setDownloadRecordCn("是"); + } else { + power_roleVo.setDownloadRecordCn("否"); } } } @@ -148,12 +147,12 @@ public class Power_RoleServiceImpl implements Power_RoleService { Power_User powerUser1 =(Power_User) request.getSession().getAttribute("CURRENT_USER"); List roleList = powerRoleMapper.findSomeByMore(powerRole, powerUser1.getRoleId(),powerUser1.getUserId()); if(null != roleList && !roleList.isEmpty()){ - for (int i = 0; i < roleList.size(); i++) { - if(roleList.get(i).getEffective() != null){ - if(roleList.get(i).getEffective() == 1){ - roleList.get(i).setEffectiveCn("是"); - }else{ - roleList.get(i).setEffectiveCn("否"); + for (Power_RoleVo power_roleVo : roleList) { + if (power_roleVo.getEffective() != null) { + if (power_roleVo.getEffective() == 1) { + power_roleVo.setEffectiveCn("是"); + } else { + power_roleVo.setEffectiveCn("否"); } } } @@ -176,8 +175,7 @@ public class Power_RoleServiceImpl implements Power_RoleService { @Override public List selectListByPower(HttpServletRequest request) { Power_User user =(Power_User) request.getSession().getAttribute("CURRENT_USER"); - List power_roles = powerRoleMapper.selectListByPower(user.getRoleId(),user.getUserId()); - return power_roles; + return powerRoleMapper.selectListByPower(user.getRoleId(),user.getUserId()); } @Override diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_Sys_DictServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_Sys_DictServiceImpl.java index 0e9a76b..a7767c2 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_Sys_DictServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_Sys_DictServiceImpl.java @@ -1,7 +1,6 @@ package com.manage.service.ipml; import com.manage.dao.Power_Sys_DictMapper; -import com.manage.entity.Power_Dept; import com.manage.entity.Power_Sys_Dict; import com.manage.entity.Power_User; import com.manage.service.Power_DeptService; @@ -14,7 +13,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -97,15 +95,6 @@ public class Power_Sys_DictServiceImpl implements Power_Sys_DictService { return powerSysDictMapper.selectSysType(); } - @Override - public void export(HttpServletResponse response) throws Exception { - List powerSysDicts = this.selectList(); - String[] columnNames = { "归属ID", "科室ID","医院名称", "系统标识","系统名称","地区","医院电话","父级ID","系统分类","排序","状态","是否可编辑","创建时间", - "创建人","修改时间","修改人","备注" }; - String fileName = "dicts"; - /*ExportExcelWrapper exportExcelWrapper = new ExportExcelWrapper(); - exportExcelWrapper.exportExcel(fileName, fileName, columnNames, powerSysDicts, response, com.emr.util.ExportExcelUtil.EXCEL_FILE_2003);*/ - } @Override public List selectAll(String key) { @@ -147,28 +136,28 @@ public class Power_Sys_DictServiceImpl implements Power_Sys_DictService { List resultList = new ArrayList<>(depts.length); Collections.addAll(resultList,depts); List deptList = new ArrayList<>(); - for (int i = 0; i < deptBySysFlagList.size(); i++) { - Integer deptStr = deptBySysFlagList.get(i).getDeptId(); - if(null != deptStr){ + for (Power_Sys_Dict powerSysDictTemp : deptBySysFlagList) { + Integer deptStr = powerSysDictTemp.getDeptId(); + if (null != deptStr) { deptList.add(deptStr.toString()); } } resultList.removeAll(deptList); - if(null != resultList && !resultList.isEmpty()){ - for (int i = 0; i < resultList.size(); i++) { + if(!resultList.isEmpty()){ + for (String s : resultList) { Power_Sys_Dict dict = new Power_Sys_Dict(); - powerSysDict.setDeptId(Integer.valueOf(resultList.get(i))); - BeanUtils.copyProperties(powerSysDict,dict); + powerSysDict.setDeptId(Integer.valueOf(s)); + BeanUtils.copyProperties(powerSysDict, dict); list.add(dict); } } }else{ String[] depts = deptIds.split(","); - for (int i = 0; i < depts.length; i++) { - if(StringUtils.isNoneBlank(depts[i])){ + for (String dept : depts) { + if (StringUtils.isNoneBlank(dept)) { Power_Sys_Dict dict = new Power_Sys_Dict(); - powerSysDict.setDeptId(Integer.valueOf(depts[i])); - BeanUtils.copyProperties(powerSysDict,dict); + powerSysDict.setDeptId(Integer.valueOf(dept)); + BeanUtils.copyProperties(powerSysDict, dict); list.add(dict); } } diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java index 8064666..836554d 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java @@ -84,18 +84,18 @@ public class Power_UserServiceImpl implements Power_UserService { @Override public Power_UserVo selectByPrimaryKey(Integer userId) { - String power_depts = ""; + StringBuilder powerDepts = new StringBuilder(); Power_UserVo power_user = powerUserMapper.selectByPrimaryKey(userId); power_user.setUserPwd(MD5.JM(Base64.decode(power_user.getUserPwd()))); List power_depts1 = power_deptService.selectByPrimaryKeys(power_user.getDeptId()); for(int j=0;j menus = userDeptMenuMapper.validUserRoleMenu(userId,url); - if(null != menus && !menus.isEmpty()){ - return true; - }else{ - return false; - } + return null != menus && !menus.isEmpty(); } //登录的是角色0才显示所有用户信息,如果是角色-100则只显示该用户所在医院的所有用户信息, //如果是其它的则只显示该登录用户自己的用户信息 @@ -144,28 +139,25 @@ public class Power_UserServiceImpl implements Power_UserService { HttpSession session= request.getSession(); Power_UserVo powerUser1 =(Power_UserVo) session.getAttribute("CURRENT_USER"); Set perms = powerUser1.getMenus(); - if(null != powerUser1 && powerUser1.getRoleId()!=0){ + if(powerUser1.getRoleId()!=0){ powerUser.setUserId(powerUser1.getUserId()); powerUser.setRoleId(powerUser1.getRoleId()); } List someByMore = powerUserMapper.findSomeByMore(powerUser); - for(int i=0;i powerUsers = this.findSomeByMore(powerUser,request); if(null != powerUsers && !powerUsers.isEmpty()){ - for (int i = 0; i < powerUsers.size(); i++) { - if(null != powerUsers.get(i).getUserSex()){ - if(powerUsers.get(i).getUserSex() == 1){ - powerUsers.get(i).setSex("女"); - }else{ - powerUsers.get(i).setSex("男"); + for (Power_UserVo powerUser1 : powerUsers) { + if (null != powerUser1.getUserSex()) { + if (powerUser1.getUserSex() == 1) { + powerUser1.setSex("女"); + } else { + powerUser1.setSex("男"); } } - if(powerUsers.get(i).getEffective() == 1){ - powerUsers.get(i).setEffectiveCn("是"); - }else{ - powerUsers.get(i).setEffectiveCn("否"); + if (powerUser1.getEffective() == 1) { + powerUser1.setEffectiveCn("是"); + } else { + powerUser1.setEffectiveCn("否"); } } } @@ -219,18 +211,18 @@ public class Power_UserServiceImpl implements Power_UserService { public void export1(Power_UserVo powerUser,HttpServletRequest request,HttpServletResponse response) throws Exception { List powerUsers = this.findSomeByMore(powerUser,request); if(null != powerUsers && !powerUsers.isEmpty()){ - for (int i = 0; i < powerUsers.size(); i++) { - if(null != powerUsers.get(i).getUserSex()){ - if(powerUsers.get(i).getUserSex() == 1){ - powerUsers.get(i).setSex("女"); - }else{ - powerUsers.get(i).setSex("男"); + for (Power_UserVo powerUser1 : powerUsers) { + if (null != powerUser1.getUserSex()) { + if (powerUser1.getUserSex() == 1) { + powerUser1.setSex("女"); + } else { + powerUser1.setSex("男"); } } - if(powerUsers.get(i).getEffective() == 1){ - powerUsers.get(i).setEffectiveCn("是"); - }else{ - powerUsers.get(i).setEffectiveCn("否"); + if (powerUser1.getEffective() == 1) { + powerUser1.setEffectiveCn("是"); + } else { + powerUser1.setEffectiveCn("否"); } } } @@ -264,5 +256,4 @@ public class Power_UserServiceImpl implements Power_UserService { public Power_UserVo findPowerUserByUserNameAndRemark(Power_User powerUser) { return powerUserMapper.findPowerUserByUserNameAndRemark(powerUser); } - } diff --git a/power-service/src/main/java/com/manage/service/ipml/T_MenuServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/T_MenuServiceImpl.java index 58aa529..ee4d1bb 100644 --- a/power-service/src/main/java/com/manage/service/ipml/T_MenuServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/T_MenuServiceImpl.java @@ -17,7 +17,7 @@ public class T_MenuServiceImpl implements T_MenuService { @Autowired private T_MenuMapper t_menuMapper; - + @Override public T_Menu getRole() { return t_menuMapper.selectByPrimaryKey(1); } diff --git a/power-service/src/main/java/com/manage/service/webSocket/WebServer.java b/power-service/src/main/java/com/manage/service/webSocket/WebServer.java index e344f6b..f527bc0 100644 --- a/power-service/src/main/java/com/manage/service/webSocket/WebServer.java +++ b/power-service/src/main/java/com/manage/service/webSocket/WebServer.java @@ -14,17 +14,10 @@ public class WebServer extends WebSocketServer { super(new InetSocketAddress(port)); } - public WebServer(InetSocketAddress address) { - super(address); - } - @Override public void onOpen(WebSocket conn, ClientHandshake handshake) { // ws连接的时候触发的代码,onOpen中我们不做任何操作 } - public void sendMessage(String message) throws IOException { - this.session.getBasicRemote().sendText("2"); - } @Override public void onClose(WebSocket conn, int code, String reason, boolean remote) { @@ -62,19 +55,6 @@ public class WebServer extends WebSocketServer { WsPool.addUser(userName, conn); } -// public void start() { -// if( selectorthread != null ) -// throw new IllegalStateException( getClass().getName() + " can only be started once." ); -// new Thread( this ).start();; -// } - -// public static void main(String args[]){ -// WebSocketImpl.DEBUG = false; -// int port = 8887; // 端口 -// WsServer s = new WsServer(port); -// s.start(); -// } - @Override public void onStart() { } diff --git a/power-service/src/main/java/com/manage/service/webSocket/WsPool.java b/power-service/src/main/java/com/manage/service/webSocket/WsPool.java index 1d5222c..87b5395 100644 --- a/power-service/src/main/java/com/manage/service/webSocket/WsPool.java +++ b/power-service/src/main/java/com/manage/service/webSocket/WsPool.java @@ -8,16 +8,6 @@ import java.util.*; public class WsPool { private static final Map wsUserMap = new HashMap(); - /** - * 通过websocket连接获取其对应的用户 - * - * @param conn - * @return - */ - public static String getUserByWs(WebSocket conn) { - return wsUserMap.get(conn); - } - /** * 根据userName获取WebSocket,这是一个list,此处取第一个 * 因为有可能多个websocket对应一个userName(但一般是只有一个,因为在close方法中,我们将失效的websocket连接去除了) @@ -44,20 +34,6 @@ public class WsPool { wsUserMap.put(conn, userName); // 添加连接 } - /** - * 获取所有连接池中的用户,因为set是不允许重复的,所以可以得到无重复的user数组 - * - * @return - */ - public static Collection getOnlineUser() { - List setUsers = new ArrayList(); - Collection setUser = wsUserMap.values(); - for (String u : setUser) { - setUsers.add(u); - } - return setUsers; - } - /** * 移除连接池中的连接 * diff --git a/power-service/target/classes/com/manage/App.class b/power-service/target/classes/com/manage/App.class deleted file mode 100644 index a8ec112ba39efeff486953e50ab4cbfc7ae5eeca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 535 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 Vtpxnpo%Xu>bz+IaU*!1>;A;uTDGvYu delta 4261 zcmcInd3;pW75=_VGVjfsn{6P`NeB=EM3M;s0s+}XlqCp311JcBLlVXS5=_`NL==O# zfj-5s1`!P^R9oyAw79jkHFnYNcGFrwYqhPlt(8X7^JXSD1GK;PAAi4O-g)OP-*=XK z&VBC(4+I?I z$pn)wlZhsiJV>J3OM|8tCOsxClU|d`WU|Q=lc^@tOs1Rk$!6?fvZu)mOBQ9Cyujpz zj_5a;dhG}x8!H0#VdK0!3qnDIm_g1M>*%{etwb25A1#J z0$y#u?k?iT_Gj+7{jVXsOIKHgsxPlzxvH#+uvXTtt*%>CC9ec)I+VQzYYkqfxR8qsUauJBV#P|z?j!6i zt`T;Dcfgg^TtcKR4Xz0mFAuH=70+C}w7PPY!I0t&4s3e&P}z!A)uHM-#id+Ec&e8y zk(o7XstsPPxSTgCuHZ7e#oO0i%aufLdz{M2y;$)k))}ls0g8ifbs$<|?k^ zdfTP$Ok0AG!3~Nx^A^PhZnSr+y{+RKxNj%6mREd`*^b7bBAIRw-6KTPuSBwlCJE|xs5|PabJLx#v(oaS!(r zrejWd@WyJ1c>N8vYb&ZNYwILH9BOc%j^$}bXnS3PosDp#0^p{ z-14lEXM*F_^K@eIc{=gZc{*WvjxGyzs2AO;$lh*bVRiR=3aZdU1|?19cb#3Em6^Xj zMg|y!4I(QU0g`YtZjmR^fQ@j;+{0NjBy~<_Wj8vrrb;CP#>QqjQX_7StQ?C?0+@hA zjKXcWUDhU}7@Kj2XnNuzG+~SEJ`kC>6I;a%cga4PGC#V<-Lgk?);%)oUeP9sW-;y) zDFNF=-tNZzBCfM{Ww#2UiM>jy975w|D`1Bvv;z-B>~?f^gpeaWh=+ubBkhO~a-@f4 zGzrb3HINkOmErft;SxJzaBugTB5=7m*}-nOQVmzC;Yu}JsfH`naHVl@iAV^z&%)Xj z!`hp3&@rudiT3p+7>?cIVaG^YquLtP)~L2dwKb|8Lv?)Z#5cOz9@)(?I~DGd4rCkH z>p2a7LcIANVqc8Y7rpNjPWSXFtn9YGK{IL4Od2$k2F;{FGiivk-;KnQex7(Zq9ulw z)%O`ed!z42?E%PGG$$RYE4VEhtwp1?Xtb6XTB7)Fzl1qzuR>A>MjCh|BO@p4EdL*f zqD$I)B~6?RueUelIwkXTZlPu}N;3OV9E`-GUURC~oa!~Fdd;a`bE=Q?fP!mS2l5O& zCXPRg$>Uv2a6*_kQ4iV&`z;YB-n{(9-4O_C{Gi4UYW$$a4{H2i9DWj9C23~^x5fhS zU|yYo8U4RhutPDh?fo}6mJR6kaW53%2|O9Gyhhttqiw9wHr8kxYqX6uaW*C+u>-{h zo;o+TiNjq^cJ&pYR0(_fdf%ABFj9ANWuOfg?Bq=QwE?A#zTTs~0pH{>rtHK65n<|R z*b7UX1x1jU^m|n>ZFt z9EXQE9xrhM-WL5kyd3Xw578jdzfO!^4Kv-r9k#fvx;VLS&DrOZPcj=_V; z?1AU;g50vFF%{pC1MZa=uJ1}0kz!>+q*xCSDb@o-iuC}IqCKFi6-9|Q9v7xjR>y^( zQz?V+bPD+t120PXi2S`|;N^($ih)-ReAB?U417DHc}*H=2d(kQIWxn{kt4cO?nJ>Do7TDBf zzUaDJpqv)z1%;90a!zUft|l`mR+3!JzS;Kuh2yj5wBhP7vRYB@%MLil2kAxrMBg={ zwmY*Y3fqqgqHLpWx><8<)*PEP$7ap3S#xZT

  1. MoXm6D^y}xbYxd2J9A#`1N@-~x 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 delta 5250 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 G9clnFL?D;| diff --git a/power-service/target/classes/com/manage/service/cache/CacheManager.class b/power-service/target/classes/com/manage/service/cache/CacheManager.class index 8cd842e88e7bfa7f809b4552bb0ec25c22e5695f..3b4e1c7970489fe181edc309f6182c332ac393f5 100644 GIT binary patch literal 3639 zcmai0`*&Pb75+|UCU@q}ZJReuY1+oL&8uM$TY;nvG$BCCB&nvPw1DMia+};{9^uZN zH1Snb5QPGwD5N63iI1wFYlT$Sa`k6_^>1+bH;732_PKW^lQi0um2=NMXYcRq^X>iZ zJAeP=uYUt@7=JR+jZ7TVCK}+xaUp>&%$PWcSp%*-FUl|{LpF&V@&*bfEM$_H$Fnkc z2K*%IP%^L}D3@e=QHH!puq6XuHgN~OA`oAd;cK$|br~+p@SF()-!Sn_d`o7}%i0Sv z`?i4>O?2Qpg7sYkFNt%;z{>`%D8w^%X4VQTEm%f$hO+M{mX z^#>IqUEPxk(c!|hqp&0G=AE%pZp!ga+f!MtG^7g|J3DE6uDpkfQGeDgDs-kZgZNv`*ynjyIgOi$#ZoG*?m0Q1@#q9;LWf<1AJT^wr3RGw-{FycoC&O;ye( ze8;o>f>0N+J+I=ZlX%?o?4`6@^ts!zF+JojSR>R^A5(47|dsWqGm`6%zWg z^%YK?ezNnu+!ggzZ1E5O35c#SkUGVMXH zh40~Yg+2dYSQfsI*DU-1eHPxp4-Ndt!kc)D7hIQmCF#tsg=Ji|@MFAf;3pfbDphLX z9lWhjw^@1?eu|?OekSLQ<8aw|V+C9IxrFiyyl&x__?3kL@wpH8TR4L!Ec_bp8d$OL z8~oP7?_@YFd%u?xcU4_=6Rj4m;SU!6h^ypr{bpekQ#erN`oG)HhD()m-mnf=)*5@F z^K8k^ijJ$RJ#ZP2s*12k6%KB-Tcxbffn6_C$osaNFFq!nCZ?6eO3^)JLXhgas%6S0 zDtg;`WZEX~hP{Ad-(X&jn?44c*qF0OM0Rt=8O`gLrn0@xRwb;e6PSKpo43*tnnmCC z{NfqcpCuAoHa`gS?9RUKy{A1p!-B32G(-b-2Zj5#Amdgp!fS4f!z?;}Mb^=-bJ8!W z>u;&(J2{e+DR~|_JMHG2Q8$~FFAuLtVVewGR>vg}`5;W%*%Cucaw_T_vvYjg$U^wJ zA!lxJBscFbp`BmUZhr2GCko`u;+z`gco*MNd@4R;Js&{5&q)oJfLgt1;%?5xfd=?2 z?%^|m&+)fI;5<%i*=ua5=~+c&8Igu)I1#9bhT6_2u$_)|{Dsg^1=)xr_&oRS<$n}4 zi8y1VtU~Z3A$ao73~m**H(TdVxzp??C$ zD&%zN+W`jsSCNoADSaoCz(5;m+QWMtD-)s$T(9L$Q9GE|kyJ>32P#%;3f$Tm&5}27%^^tgtj3A zW3?ooZJVf4%J+uZP6XL*J+ofULB5V4&XCtjI#EgaDSROW8De0PTT?)KSF!6Bl>2#T zzeZ^ZEJGCf;ER|bPC`BaAzq0#g15V84RBi_rr?dg3_Nm&P4*`=%J z7_T}=vK~Mq9>h)(y^91(+;XBtEj_N!A!>NGP?mm`;>qK+VpJq$o{A7j=eH%T&Ihfy9k#)3bkL)k}L zV(L)j@MfIFIi6U@zb82h@|!@!_%E8GQN@CL3Qq?isTtlwbaExsM!HHbqlZGBjBpa@ zWUQ~Ok~Opk_5PU~=;)Weu)mek+^@S&eQ(7skkA?vc;G7b^U*9AT1PFMgfgOXw2c0> zg6OCSD2^BL(k1~-a`g$8?O6)w9Od&Qi~K3(=4q1gCC;8=pJw!keK07sGQTn&h`#dSW%zu$mlxGyRY@}YUu$IpA87HC$NL2(BteoVEWW5c- zFQvge{RfY*1d^Qn8+VF6#9h=K=%YgyB6Ia24zeM2{spo1jute0))4O^O?HZvClxIT JE#iUN#HZjn2n7HD literal 7470 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 Dl^TUo diff --git a/power-service/target/classes/com/manage/service/ipml/LogServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/LogServiceImpl.class index 64b5053b7ce937c2f4885f5a8eced76fc37a9065..b44a18287321b789db156b2a148d4b3362289fe5 100644 GIT binary patch delta 1689 zcmZ9M`&U#|6vsdJGI%a`j^PrP3oS}4NnijW-=bDRr3o4@wKSYyKoDn$P&Cc4hdoTo zx|L~WRvKDHk~V^s*~`kZ_iOc2KeYNAdbp~6E;^};#op)cv-fv@_v6g(Ij6_OPyKW3 zI52^qT}o+pSxHn8b4j7Y&*3f#XSxiT!s=?Y;+lB zFotrkxxCM%g!>&HFdv(YcrZ;Y4+VLcM~v7UY!>;bIc_mxtHWa^)#EPPc*5aHqdkYG z9G*7zXB@U0)3XjcTz2xDVwcPF>~_iL1!LLc@S^c}$%vN~dlmZ>uk`);r)BjV{>9F; z-Tl7xfP{K~1hxjJFjeuY<~0s_+fpkgzD}>=4b36?6mMz{b41ajd5eUFo?Ta6T~Srr zP*+n?tvIUbXTV~Vr|nU$<`{jNw^`y94JnOJVTr{hZQ<47;#FO(?ZxHcu88Ix-qjpu ziRN}1EK)mS-H}esd&Y9YhzU$oysw$X2bvH0NK;LXW)X`uw;9OvHHFQw&hBt$Q>4k9 zG#_(Pv0w8EpIWF@(G}5HcQjS=8K=D8hU8^_PM<|uN$KRG@$y%q`GV74j>=3sp!t%o zEV8}cK=zf2uQlKBt>!zXYQ8s7R!H-MN&O=~S>$@XR_@_l>hi$+F^#d6#VfBl}nN`gRTK>}}!UK%$br4kBx0+ug(9wL)M#!@7*M3|IvgRrX$qN?kHDWzZBDZ(m*lRDutMT(i7MhoZW6yrvY5kMp>#8nO3FM#p<q6-Hz z=RB(Cqt!~Z8Jwn0PB!&^+(NO*-iw@u~~ z@Nwp_gKVp+pS-Fb(x(MR2Kp%&8AuQ+Oi)-EI!TT=jUJZ1m#on6q6EdeNe`tA9uthO z3>}hWovdc9%ss{5_$o4l+9J}VQQ1;xu9PV4S}GMbu#jcKFiZ!H5*CrbRtarp9W88R zIh$x>Gf}n^V~=!kc;5*v`nEbb5lGu_@~S9|?UmLC@O`TJ{|{bd~P w8M0LwO-_cBk@c_ab3hT1eO5FnNo^@wf`1XnkpV2109z=TXKr?`P4o)*5BMA&v;Y7A delta 1532 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 diff --git a/power-service/target/classes/com/manage/service/ipml/PowerServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/PowerServiceImpl.class index 109cae475ca3157f26305b34ca147857b4af3734..61073aa518fd8ddcce33606c072e7e5f581e57bf 100644 GIT binary patch literal 27721 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 literal 28294 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 L4_`vh1ylbI!~srE diff --git a/power-service/target/classes/com/manage/service/ipml/Power_DeptServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_DeptServiceImpl.class index f0dcde3dd63f7d745d15c0c10b6ed256f6c9e17c..05435cd523df002abf60adbb593a9efab55f8997 100644 GIT binary patch delta 3875 zcmb_eX?RrS6@Jfb-<>-*37I6o1Y&>$4GAG2B*6h>Nq__)VhCF$rIADdfrJo55FA=- z6>MwuqJq^Hu@t(p#14cgOR2TmB6NYaw$!fD9VlIt0`dLsOa`9j$q%g0lbn0L?R@9H z?>XU&&S>*T1Ao%bKkLwc(dMs#2<_jr z`*(%2CbDqO#CiNfdl&THf9kb=>EXWv_z&LI=Dh$e;=kHlQn(zz6}+d=VF*m*ix}c! z2yvUp6OT4th7g}NN*luvzussn37CkK;J6`HK$0X`ucm0z!^A8})n|i-r0Hk6AsL4B zG^Ce)xpRi})*(WMWGd-nVzLg>mruzug zlMe`W6_H8h9wOx4T7Ym##If?{_$G^tI3VGwh+s zzSL3Iu1{UGqQ!3X?FyY$QlMn8l0qd6Jw!LHY208 zz&}E~9zAWZHMganCW;g9U%=s_#$_v%47G~_3zd>#g4ucYJT<5FLck~e>Ts8Zx%h~Z zn=LHFA`45fRLO8lMo6(>oPEMdw+oYo3@DLOreMiPxkX@=&8)7TSXDEB=8TEeO2U?m zlF{~wv_AIcq@gu+GDeWRxbD8XqLnR+mK2rOwKQ0AtBkc|oQ&tYSTaGzSW>1nQlC@J7 zSlFY@L-?d6^->{lzq5IlB@HsBHJp+qp7DZg`;wV$uj$d0Tw&p;EVJ-Eye=rTPrC~3 zfvL4=!K)}#wlp-?wKO&prvCQcU|xEfv$mve**!%GqU`mlJ?$f@=k2$G@3x*#>mhbQ z#!}nJ$Z3sc6uTm`*x7X8oS9n z(}msf%!@ifEAJ-tP8`fGOyrGpa6B^HaVWTp40idxIWIwS7$!l z$=8EyJXkQv`JSbNT<{BR&x5DG*w zcnf@<5+hi6b>QF8aU!HLjQtoAMG-x}<0TE<(XlDy(eQgvZ?EW^!&AK46jgV^n2gUugwNx_b|B*@bnCP3Xiag7GpXdrRQg? zS=_PF;pcFIpTh}$4#)XPjbImPd5oo1geUN6e1?e?bNpF6&eHl^9OT&A6N$Aaxn^^% z7U~jm6gFK!zQR)qPb)mrfm{R>HY;pVc$SNa6@|}>a0hS+0~DUS2rF_Ct_~9E>w19k zpXa{|UtnQS?z$nkC)FT|zr8qV*8v}wLHQ8-cBZU8W#D!mjPoJ?BLu^ zd?kLtMjrEUPi{eQL=?r-+EFrhA4;nVgClv{EpE)#Hy5@c9BXhlE9}q>y_`m^&&C{eHJ$m{-KDcPkH z_VVPUnColDWD->otc+qxdj!_p;BEVm+>R8^_J|^t)4{1UQA`UP?Wp4P?O}h2;uG?P zJRzenis||*N6Da_gjCum+3q%aV-rg86v`+W)36ye6t>xTj-S})F`s?2oTa{&#r_Dk z@x*o<#EuAFBZnu+zgCha>PIPS;9JxRAIGN>6>^G)H##+WDy|iJHHv+#2Lo?nzatfQ z^1IVU>b$&e6*X!dqbz6Sc7B-@uj`GMIcMG_U#+Qkm>>B;ske^|NQ;!R z1Iw_NWWPkRqa=Gj$!;V12Z;O2B>NSTeUM}yp*>36UnSSy{jj)>TqoHd64yuZomiXO zujlm7E!&PDdpy>12E7?oap9}Esx-;DeXbF{;zU^&JH;&Qp8 delta 3800 zcmdT`d3aRS75|;t?#r7;mLVgVEKQU|AP~Y9mcg({!X^X>fq;c#fDsY{q!L85GD2xf zQM&M4NEbyc#kMG5=)e#Ktd_Q^)NZzPwbqtc?P5z8OIiHgH{*b$`M%n(|MdHk^X@(O zo^yZq{LVRd&P?l?7VW%nDo5K zkWBr}G9+L~Z$q;64c{;%s9juTNFOCRCZ=j9A$}#-kUT^3^{_z6`%KKzk(nihh7=ic zHLc|ueMDbBtQVwMNr{qcmGo=hERTD#jm9-qk>*HiL?Dg)pC-t+-}D9Tdwgk@zh(8h z$Zd<4MOs?d*bn*kWxlSYzmfq;N|g*`5ZV{3E@`h#n=YcQ^6f{>U0J6XiRwF+(x`Fu zsx?Xm*>(OE?Z^B}q+kh_TDS@CS5ju75lt3WVwIA?mXym7dt9&TlA$t8$#6?XNQJhSrEBVHs=5 zbyBHhoF(IBj3pDan5f0|+5(nL;shVWDhpBEV_~BneHg3kiRp!ttE8GYv}CeOv1F=L zTa3zd3!CKzOJ>MS#=w#qnPth1dc$lXv;mgPkvay&lDT?ip48j%^s#i;$Ii5TAxjq0 zg)Gv3KBv$6JRY{N6OY=xG6omy7KY^sEjHsLmMoKMf&281eU?OIO#A$d0`XJ|3hk@? zh4zljmh@^1$AnIv!}EeN`;@E9o|Lu74g|98oms)`-cCT88&)kZPw`+E2hK=|{ff85 z4)#7vwpvtvd#~((cs*+x?~K@6gC%xhaAlr*d8Abk>_2V5j7wf-Eoq7@ZEfEh9PNtM zvv36q;AS0@NsbqClL0V+E(8vxib!kLPw5zy8vLa1D&Z?ZRG8FZVIP@o`mR8xk&PfLqZ_C!(`Z zJF}1FD|DAc>@A^D4H{`J49cd|DNVS|*{^urHE1OUi$Pk8 z+Zn=a%)>g|0S~TWMX$%5@S+TrxCiqcm&=28PTS2DKs0;}`|X-ZeM&Tag1$HgyJ%1z zQZWokC~}h;BZi@yeX{4`#*k+}!Fdp|7w7kl)-h*qB8@i_dXy>pabEM2%*Qrn<0DL_ zT}-ETCe!oG_fC?ogMAC1g(!;fQ4(p=x(OfSF6H>x!jVBbHqp~o63#HBNI97zRw78z&ZdJFwXfi9uXl3eyHO)+?lD@$!y_flKi1NDg_5Z(9^)MEs_ z>H;@)-NrFopksY`*{*kdB}(7K@~Bh#31E-VlIhI1rRpnGB_gnw$|tTs_#Xhgt~=aD)=f^B+EQekTHylq0lp8C;D8j4vdds z!X9M5OE;0a&0f}SEO33;8<=F*6y-##Xx@fU$Q!5*^oe0|*c^5kpPb=)f$hZ`7?PL?0nf$S8|pwtlnNBq%2%i*h^5 z+C~oUXCXa+$|xShY!>PgDps(bnpp)ctb4-8*vOJ&!zg4XMaH3-1Ml*(;pC4)!E{cfm9KKl<864HsBwOU%R0pzi zi}RwF8e&B%y(^rg7S>X+ldCTD<}ajY8A-R3kABE`lqz)a?Mk-8uQC1jdpL=w+k-H# o`-AY36ZG-jUj+RQ=!eN7Hyh|M(Qi+1^bKlV_-5)S@3(-r0WH(JcmMzZ diff --git a/power-service/target/classes/com/manage/service/ipml/Power_MenuServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_MenuServiceImpl.class index 649a7e8462e419a646419d7e6ae6d583ca79d080..47aa728c60cda06a2433036496b0864766d4db36 100644 GIT binary patch delta 1285 zcmYk6`%{!<6vsa=%lhKGPXz{OYbE}`IJwYT<5V*in6N6!irlOuqYXA#gWYvmG{jmJ zQPW84ZOckix|kIeh*nyWCEcvF`)#J58fN?}n9j2ctGhGb+4G$9J?DJSIkQR6$%Tmv zlV`_(#r$Kji0DkbY;qB!OGDhG+hQ|YEFPyPhppP^&0(9ipU}pWnvig@ogFTA(x+jU zNxwxNyLG@Gi@iK$vd^M`{VtwnActpM9N?hIvsMB(&*?Z@!}BJ|9A2=vnHNnCSduz3>bO2)f)qw1K#dWVM1k7u8@FJ;|eEVgSLw~Y2X3mu6Q zigK1JR`9k#VT#ZZ2)B7F+5@rr;HK_ixFu-vj^bU0Ox{zx&j$uGCiWe@-1nJcm=Uoq zA2>WQkW`#xRB?(S#U0#fa$4~r0h5muA9F@=mQM_dq(^UOARK55dV^tmEZgO-@9Ao; z47J1+pCUQO*kJOx;v8StouLx;o#QhUUh4U!BP}if{SO;6{5S zdro0vS1_iypd0v}5ycO>JGWitbT=DVJ@P5_`%7C}6?bXRwO8g-8HfiJKXOrVNi%=a z@H4+Ce&sjC@4Bx)H2le5iodnvVFHR)gcf4s=vr&SS-c8|d_gTdMV6=J3=W4(2(nlr zI0Hj)o?Tlo+dh(SU0*?^czh}Ua`CNTr9GTmVl1-%&7HlVO1wJ$8djy^^e@eDOfgoA zw;I1aH}Aj1GP%tPxjP?4RB@Xyma>{P;%}x#+FMI6wd|sf0qQwK11D&dovh%3%3(h^B^KTaMHk`h8X z-FgXYk{2fqx3f&1A7q0)G|RJ~4HxaH+J%x+Q>H5_9!hC9qLEX(@pDfV3dm*IRblqzQ@>~+3F*y8Kt+{A`x;SvekV1V*VWCU~03EW;UCS)thY- q*7RoEg(W9t7Z-Spq|RIV*c3x??^W45WNw`@xh%r+ZcJ+nFd7w delta 1383 zcmZ{k`%{!<6vsdBF3Y>T`yix54ikw#G!>wWj#D#T#01O>Y;g1J2EXHCB}%=k7$Eo4eLzSTRg}Hi;eVn*`$rlULMkRLL0q0VT+Hg^!a$0 zM>K3R*=}(OJ9NOK7CU*&WS7OI^!s?6-CmyXv4m%`+NUXai z)X@=%8_cc_x3?Xh7%>WcjxX3I&Q62e>NTNtA%AyQwAEi7?X>^RC^X9KQTP1hu&dv& z0~twUftc4MD?Rz{#OsQ37AaQnhC#lQ*&2#9`zu;P@%qTx?no>gF?mz*7Q-fQD@HhM zkU75d!1=zDiX$Y&I=_4Wc>jRnDDNoVWms`7*O|PhI7ZmyxZ(uwD?Z?)L6LOrZwtjj z%@KbjX8-B-71VF&3|2C%#N<=OXMAp;DjMtRssatc z#`>x{lP?r!_|o8V`>cDW-J6w}{gp2NHA%%cByBruZa_Mmc3~uyp{|JHTfS4A)luJT z_<8T7u~_H8h+!P;&<)1kFer?niUVwn#{4rJ&9J_WXRr4D?W;=r1Us$H-R}L za^vO(K?|4QEEGlDD5v67G&iwOEXm_$7GpT43MwU9$*+nfl7EZbD)FUmmdedCxpA>v z?p9DOr|a$7+^fsyUBsN7X3nNY_%w4i0f$+ibd4#VTg7`Dwf3>xzY-O)=asUfu%r~Xn*$(bclx_1~$cQPhf4NfOx zlDAm;j#&QtlLoCoMchcbA0SErcH21)hb%a}Pm#+4PdDTJQ;z zo@%~u>RC-qRdKJQ-5@0T_Dvs6Y!rPxqHPm%*({shD|NR>v8}A8k9JX(U>gH$=O8=M zdWtU6Gn8f@O6wV#)T1?|^sEx~qDSPkGyj5|LgyhX`M>vq|#np fX-?Z@mU6bxHMw6gnP$7p(?y5;pF*bOu7&>qsPqm2 diff --git a/power-service/target/classes/com/manage/service/ipml/Power_NoticeServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_NoticeServiceImpl.class index 6bfe6c140e26dbd18ee85fa913d8010501ccf5fb..234db60b3309f7de8c778ffa22b83ebe3fbdb82d 100644 GIT binary patch delta 3796 zcmZWs2Y6LQ8a?N=`|{pRF$p9gAp}Ao4G^SAP(TQxG^w(PECdWiNDQBef0 zB?wqhKv4mS1|kTG9cYbc*?(jR7kRy4?9m~jkQ44ZS?4Dlf*Ffqua5YJ(m%mz-Aq+p8l+kd+^gJ|u1A8H*Z#1#&USJ!L~ z{Y*}F*4l+$uPiue*E!F}w+m0QIfYYgPQ%U>32E&rSZT4`=5$usxE6CP&afHbOq;WK zjm_D-R{q$WV-|CH9g*!s1KB-n&f|QWQ7*9gFIL*T9y@I=G|NR=Vii`)Pn$RJMj6_3 z*xZ?_t;#;)i%~~4UyENq9QUQQdL&j zzdSOr;;I>m0p6R$`w}hQpTq}juH}O^AL2Tj>$$<^!$$2RIP5G>%(-GCAGP@y7bxZ} z4{hJ^_1fw~yEh%Vqt52zG7MW$V{?qXAjY-w-Z4tPdvgSX!f_%!?b7kjrOPz$R#IarIh zqT)J)JQ!a1B*LtN?d)mNwyVon637T-_-m0Y-WZi4{XaWT4~H%8$SjK`&@RL7iyzH+4>ZbN_EjRCkHm*GJS za^35SfcQ#qGj0(zN|Kh~R=F#;&bS=J8r@tf*OPE3ZWo_NS|U*_)20{8#oAC?F}4+A z)1l5Bo!z0cOn6Sq9>0YbV-%0QLxHhuYLr)0nC7x?!^|D zZ=uG3xPUS&D%6w{V?1N1iPakEHViiI73C3qAMSS+G|g+OfHY>2z+R79P1z;B4BvJ% zS$Q^m&Pz>4FyQ1g%T6%iS`^0(r>l((PQPZE3_BB>^^Q*016YL&6rieFq~@f2$1UM_}Vn_RJUV}LM>DCHnDV})s`GmeTf?s?qPI`Nrox)x6x zX!2YS{or5HN9@2(jV9|##cyu7S?A>BrFH#Kh=1f-WYXIJRj%|ES{q30LA5RNyz6|GR67DOV{uYswrqrY7U(;8{E;LxW1tJ#J+-!Wb6_pQMgZ z!qv*e`iRH4&eUkS@b;cUH@7ks>KC$-<<*OL$ywSWw~5=^N_;!eN6oEoi9f@y@)_hh z;WzEdv$N?Zm4t)KH-6v-eSXwO2uHq|(?YPko5yDyLq<>vFK8+VmUR45$yz za@&D*wnfD*yr~N@E=OD@;fvrqt%M7@iTr|_@Nc~}{spTrYrW8v-N0xH(B-Vs3W z;yvN587#;=CLJKGhZJd1=z$w zJjEhB$71YbYrM_2_?YeRCC|f8?0{oDpB{FmpI!7{!Uc?HSFO6UhkgdKryGr>NKkJX zh4%$$D5?q_ugZE|RVn}K10!mQ_DowDgafK9Rfwn$@S&+TQ6^YEnSP0C$h4^}DK}La zkQ>Erge=DCjr!QsvC^RwpNNWMXT4^hiVCp@67dtfH1ARpQrw1QT1WGG z*hIxzhq2lV=E{;oIIK}=gbuRAlycZ8RKKY7;IVwIJ+4Cc<>LfbLF}U>921-5G2bvw zd~s|4EehQdr+aZ)Z-cdwm58s@Gd=SAYgf`YdbeV)=(jTe6VV}%AMrDOtbA>zwPedK KFPk%uE&dDY5Ee=R delta 4074 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 L#_%$a`7HP^h`UW@ diff --git a/power-service/target/classes/com/manage/service/ipml/Power_RoleServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_RoleServiceImpl.class index 22563b60d7a74fa1332005bade6dd083fc748585..c4fabcd76b767b45821a0430bbe7c3da5674b4d5 100644 GIT binary patch delta 3474 zcmb_edwdkt75>h??(FO&n1Nt6A_S6PfP?^n1U5W^B)p{5hVZmJQdkiR1d;$+TDKJy zEEXT50-^{~2)0td;KCZPTB~iL4{KX%Yi&zg?UUBlmR3rM-<{1a;RpGzf6TdO=AL`* zIp_QCnY(5D)~eX4i!ZzgV7OG7n1+Kv+=Q=%a0rLBIAY>Cv??4m5y0~y#Bt2P@emSt zL7`3Ign^SLEWD`jbraoiP`|unB7~Psd;_m&@l7pW)#5en@>^PbTZ`{#5j&-D+QfDE zt`^_ZpT4iPAB6BaeyGJ8A^ZqG*5W4$Z-($wyrJ-xfuEV^kDnWO+r%&Mj)?;NQj1^d z-RUfpboOig?Tj}0je+0lm){w9SC8+R_&xq`i&p=r#hFU?F_*3|5r@gM3*M{g=zWQi2ol|YFw z_ts|uwUS}Ejutl3)2s&PL$xcbO<>mCzBszNd0E4%CMBNM1I9_otHlfp)A4a7UJG+E z&%%5xP~x-1F9AW7GuT^ogC$A~Ze>YOOo26FW^HZF^ty#JXVlax30Y!Eh7R_Ox0hpt zil@~|rXX{9{kr`lvdX_M=j|l*I1Gzwvz6a^pH$TvbE@`#kCZu#{vrtSZ!gA z)|#+Dkn8LT_NbWI6m6W>6d&dNUqKG zvNFzFp@PMQ(x0K1>XMW$aqF#wnH9+ZO9sjyONuG*fRtD=SZ`A*Lj>OUwjZ)&sLsdx z?t}X+875^)hFda1$}OqTp^ua@OGasn+0M?4T*tAFdm~cmOwY*kjuzWllTqLuBV(QI z87nh(V~>TsGR{H^4mft^^Q~`Z=6jvN_DVa;E!T?rRZB~!tZI%fjW#+#yU$h@3vm1d$4rjIld_I)r5v@Lf8a655h@iZowz%MKqDR@aA*9 zUFNK)3ugm3T}S8Kugz2955jN!QMC6Y5Q0VBb&-y$5R02NSvBB&IN# zt!0YqZL(`KDV@Nijs!qE9kz$_Rc_cifigF2A3YW6u-yc5-KaGQc)axf+;g1MJ11w% zrO2mu5qS!WW~}8-T>I+NIEr>4;43%m0heBaE$y#|Rkm>)1LGJ( zE$C{o;+FPD!oI_d$LCUgBC@E@psYh7zYJntm8{)7f;^w3SVS#Gy52{^-p^`0hJ_5Y z9#62U`$>qyq(m#Ls*lR8Fln2Mb;LZx)ibajx06nbNRvCL1u-v1!_Q!Y3sF1`QJl^; zu+S`02Si!eM_@injuqk|d=7Uq+(Fnv_n#+3U!bKvQ^~oz(sLU*cQ@yjBG68TD200z z?p4^Nuvy_gg)c5rbb@yNs6tmxa*pQu4?&v?=%;Z1d06M+Y3FW%EA6?{m-u+Fm9am7 z2Q^ik`MHI$l9D(ECs69s4T1BTHYP`qVp$}aF4jOs4aSk|D_Tp{pdej??k+jK^!pGV z=6X%1Fb|f=M&vI^z!2EM1WXSZ6N>oUJ{0!FV<@525%l&U;+L?0AGT^DhRil}m-dlM zhp>^nyO(#e%{WP-zfAbg64`V7(fNp~Mr$<*J)54KBzMK1!i`!7Zqy#ZqZ;KH)ntRT z@j*v_DZ)EEJ9m13;S}a@gy%Z&$>A#FEeIGX36ID zG#Bs1mpfcV*>b&HoA2!DlM^f95n~&f;_c)w*~pHtkv-@7%uCv*tCjCoMmTS?!prG5 txzB#?!y6st)h7 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 F_z(y@aM=I= diff --git a/power-service/target/classes/com/manage/service/ipml/Power_Sys_DictServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_Sys_DictServiceImpl.class index 1216f1bf3b2a694b5a5b8e525ec7b072ee18d7e7..c00d998d56d7f5070c1a6af02b91d72a1231ad18 100644 GIT binary patch delta 3263 zcmai033yc175>jGxijzGnGi@~9t05(5=bBtUhgSRaF7E^v_-v8dl+jz%_KPVhEKF3VxKbmiUGUCq)e=)BKdJyj# z?XMQz!*PTBH-*0|{6pcNZR=#RKijO1D*Q{~{ba@H+xAAFP=feCaHYFHINE(LT;M(v zRPNG@acxJ`Vc(J-P0MenZ?0M0GO^*B*4gz-n*@P{R0Yx^2rjH|YUQ)nyeZe!t*k3) ztXsCIq^7mGVcDWF0;{>cWkqA_l!g|X_eff-Xl-aLF>m-iWW1AK1619E))coE2!{qg)Isnx?}8ll~XZI<04$F@E?uYn4@tyYMGVBNBCHvC(M~OYtppY z3+B{Jn#D{tK0%it-yNTk=Qafb?lHUAnM(GEdW=0j6YE;*wTSrK;kr-UF99V%Eg7N& z8E@a+act`@Eg^xz2U@~nX|Y9Xi5L-;fR;?gl^#Z98PSsh^HHmDJ(@LIjMj=3T6#&g zmK@2|at<}Dl01!@`2lgP)A&5rYkUD28#M03UGBk1zsnubEba-S20w3 znCSV^mnG72uJmJG#ahmj{u)zdfRce)&X+-221^0!r=?K(X&E9z-4W427Ze$UVuLVD zhHEL25!|KIx6veAs-;Y{l95`btYrq!=v#{`ynkL*JCcxFypWiMMUoXAlim<%5$ z1ABn_CDbzbyp&JivzT()yC~Oe8OrHyJUh2wM#>(@!%XU$Uw|NHp@vT}9p%}+key$8 z!nVI>o9o53Q?`JO%P^PLVp`Di3g?{cHTW!ES74s!H6K@cUYF(E6F0Fc5TPt$pA{n; z!_W`IDMxTFlydr&F}IQAH;P^rxCWJI#Ar10$eTParWe>u$vlj9l^4Zm3-CEIS6GQU zTn#_58|c3f0YCNm;Z)PgJEZUo-{KOgMB^4lAftOQ|OnCrVgy}>n=Zc%|9zG|lpb!j1)oB@h(! z%t%1_Z~#MM!FZ9hW2h78fUez(NIRmjj3Ou4j-qzt6*(F0aMH`(-m*^zifK74ro39T zV>m5KSdtL|#6sePcH^)UN}yD*4f~6GmbGJKENq;daOYl>$1KNk!uv34t_Kt+l5OlO z1TpRC1S$nvQEar)LXK6jh(lVjSX7+oZuD?$C)$oN30&aA+&x{d63tHFLM|LD74;&c zor+i9jaMCubfAhEjEzN$oJf2h#u+iE|%iA|D+&C(waNCCD;DISz~Ikrh9w#!)TkXk$>i}A2rk4Iz; zcFHmY4VMEwLQn^rs6`oK05-EFBP8}L9w4nS>FvgY z+*6ALH?b+U!e)e&N1Q=RvE8_k!pxKlyEfhT)Ka$wHPh`J71YfA;V002*ulFZfW8vP zLwJ}YaD+6bE{(Y|36C%wZwuzSlUfLmvcl$MB}wf)>Ax{GT1$lW;fB*mh literal 7957 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 diff --git a/power-service/target/classes/com/manage/service/ipml/Power_UserServiceImpl.class b/power-service/target/classes/com/manage/service/ipml/Power_UserServiceImpl.class index 09674578f12d4b1e3f2f923c8ed1b06d08d5f30a..bc0182ab6b69a12ac41b7b02243e5696c8208fa4 100644 GIT binary patch delta 3283 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 RwOMiEww_5!v<_w^{{v-Q%(wsm diff --git a/power-service/target/classes/com/manage/service/webSocket/WebServer.class b/power-service/target/classes/com/manage/service/webSocket/WebServer.class index 2a599394d65436d2ee51e5199e9d3b4844f8a72a..31b928ea042ab2042d6ba4a682efc5d985d50aee 100644 GIT binary patch delta 969 zcmZXS%Tg0T6o&tvB-6>*17?^+K@A~Za>bwqK|$~?8bl>Zyo4&VNTslFQU=SNm1od- z0?TsY#u67`xlq==ksHg?J(EkxVtRV|Kl7b){?nghAEM>oe}DW0P{KOLtO14#28MCb zz!2ubm^W|<3-V(zg3GuP##IB?aNWQS+%#|tOLDo*afhS)ZvCTMW_#{)ZFR(2eo=o@ zFK*VIX0h_Rz2P+H+^<@V^OudSt$Ndq1pZVkj0jj*7C3{m40_Ai+;AEkcLi2(Pv9J~ z9QOqtV3i@On)q7YS$0jY@WLQcSkfU>xQsn#;cCQq>SBi~1sTvB3#-!JiIPK@JkRW|C zzaeZzb~-R9|ABtTLrP84oH8_z?0}hr^XQssqKGLXYVvCN85ZcRe8_)?sP@U8mqlu6 zN>SC6JJd^e%w01zc_V$;l3%V~Ae#9#hW9QBXvWahoS@4ol$oBikCKmP_WgMAZASqOZQ#W0rpkjK4# ze2M!Rl=|@iUuAhx&R`{rRjjGadLO>V!wf1}Y~WEAkMSgnZ}3z-HcfnM;+cRM$RKb$ zSKw6ng}rYd6n~Oifmhv?VX+dK<^_yfj_ZUA0_pKm;W3vbuO|pp zJjs{6s$G9<`;OYjhv{&~2?WN=Rj*NO*si@Ti-Gj_ovKvPDp9m2{KrG-GhVvs`JsR) z37i|(yoxRfmH3Ff@6>8O+0835rX6hr&b-Z)S$OVRQ!>@H@v`S{7gfH`Tj?qSn#z1P z>yGW#f*pHT7MJRdbi?~^_L@Vw>bV3y+wIL3u0US`BQV{~Ik9(y5$F%3TU%k;ETF*g zxG;6w-7Z!_-*LC2ax~s}}D)1a$oj+&li|` zf9NECU9FTnU@6-ox6CB3LYJkz&)DbR5h0=az;jpxQX^R<;+}D3%2vERzbfxJYDxwY ztxqcr3XH0yyTmP=z)AHuXJG`#O?+?RIks5cYbI(IBnlR8;d3qTI_J^Ej~2GEV_^Za zCL9Ydu*))f?wC}?GEukCK*5A-!NYA6O$#sKTL?h9m)~zl1qxk8NKLi$i;3c+ffg9n z`8i&(w3gIY;G{b3a^bK*+cLas2Tt{2ETvw(6R=9IEB&Rq9q``bl`>w?t!oE~URic) zO*SIDs9&5nu_tixXuNK&tdttF4SB#~9Minp28axN*{s{DlYT&tn_Z@`O-*m+vh(Qw z;6DeUY)~uS9x-D%vRvz&>W~=HZtzx2s@Qf+r8SjPotlg6nr&N^2en;K&W2Co0vF!i z;$YqL>Qt;6<9+#vJ$(=LbJW#69C>rlj~1@$oto%GkK)<4w+H9>O&jK?P#~oyf&bL! zkki5E2iz?qO$(5l_zU9c=|iLr(eo=0QaGiZm2m(T1~JNiCn9H@#u@JT8a~8XLMg~| zG2{Y$)LX{HWEZSFdP%5-Wh7Vz#zLv z6!}yEp7HHot~&F~QPeTo&TG_}$SXlL650knW<7QF@ChTS+znjAbscR6vvH)Cw4`Yp z5mUclXe!?~^$OY5iOH*n=vQ%jbocVw=Mtk`W~Z*O?gbrxg6BEn&czW%5+)-FlM$V1 z3O6*G7-ry`_%se*Aw@+k_ZzHy?iB_Yez2AAfHqDe!^&99sMV@m5-FEN%HcE26ELN2 z~0rV@d!3 diff --git a/power-service/target/classes/com/manage/service/webSocket/WsPool.class b/power-service/target/classes/com/manage/service/webSocket/WsPool.class index 1e8099f944926e20adcf416a57b64c204d67cb5e..87cbb469b3c065657cddebe3d3b21ae10781bbdc 100644 GIT binary patch delta 1249 zcmYk5-ES0S6vlruyR+}k?6jq&A55VL)&lNsKd4opCTs9 zm)@B-F=@D!)C(?96X|MV4BY7jCjJ+CVf2!V;`7dK8#Bq7_nbL%o^zh_ytjJ)=v?}B z?Z=;iF+Pas=5R>IT!z&T5a?+XC zB9(dFnNxs?!Z;vhepG9YsWT+b6 zu=o6<_TS9k16$b^)58|S*_fv}XE+mco;Q^ibAh*F7Px4)2Rk#DxNQH)b`4$O?U;AC z8gtE^7P%brF4qn3#k|jrn3^+B(jW62`>YMVXl+?s_+(-Di=h9qg1BI!u?VQbzw9 z#ZG^RUnk=+Q>s?(m+E9aW(Vs89?J~rkn{KjGoDpmlC6{X<%Z)y5)^+RS|*=l%Mb3Z zJbqYyu!8+7zdP+=m$0B+wu2VYzlTotxz%cpNlh@V2~Meh*JF{azP0ic0|d(KV;8#> zQ*ZJH^bV*S!_KJmKo!A#SZH;q_&wTby=8nE*aQt_q zy%$xdq}pXoJG8!wC08OXPuh3}Z;Nmwf+o%d)o|VQdd1uHcnt(mew(PM-L(3AyMfcH zT-YzX17hId|7KZ-aA5nzV1p%rEhR!bz<2}AJ1DHYYSe_2YM@fC&fYJs(zeW0IhDeA z)-631!(Ml4sv*!HNwA@YT#{R5(=vr5Xmq*q__r0>RH@w+D6P^lD0xJ-D{kyyRP3M& z9x@?)OiCS7+S4)JZux1pNa z#wKgc=|f#cryt+xXR#?D7b+{{1hf^i#zw*!Tr*j&9w W=lA$-Azr%p#>ETey`Y%Sq5lAk)}h|!*qhEdlum|5qu@0we z(SlSALpWpLtjxnPyor$*&f&Za7YtmCB7{qFcG_$vg65AKIde|yAIM`q}$0l`GX3< z*6n8%LVfNSE!X!uS$nWBHEQREtkDc5js0%g%AB=wj_ixVP=3Pk6khC4yHm+2D{GD0 zNkX4-(sq&%e8xnbVg-MT#9?N0+HzO6sbXJk(D zRF}$I=}Fdrrry9bYsJ7d0}Riw#>V_WJ6fLxyL_CI^g8C{L^i{e`&OD;i`?tF>vJ<1 zJDqpjEMcgELXGFAkvUvh5l6q{Nz6v^RH82zZhv-rFg6O>D#_6YKGufr5z{%+mLhMosL( z+pI1Vb9jgKW#V1DXX1T)ps;?qFim`jk4$`wPZU;_^WKxoS#y$O6Q81+IbxcxI~m&0ZsK*kLB`9rj#=J>eib+Whv%j$wiBaQS-~vyvN3iY zAGPxS^}L<4@-Dgb(d(yTXd>s%`tRS0vZ{om&{P(bi?hmw#u{XADQvAwsE?+r@_j3c z7;aSo6D0ef#wlT2Q+2$ES-Nh*@&@g<>5A_-3pJG0o2Es59Ztzh#J*OrGVI^gOX1@6 z;BnZ{FO<1`U1GTehyGuBUI^Lk0*Q(gW zFYh{j>=kEr1n1|u3t$7k(n=bI;|r7|IV;ZL#LrN-waR9W5iP927OqWS0WV@JceU7t zR!ZdZej1d^bw41GSU@m<-x0b+K>%eVjTJ`fupJ3)gbm;uQ3kaQ%Ffcr0>TRYZ6gEs z+ZGT}7~HV{L*Y7ha#5pbzP2+&y?AKRTW2^PPW*)Eb=1T|?GJ9vKmM!z!91d!k@g4i z$USunLDbU>EDS9>UlBm4+W2KE}*XJG%XhX@=t zaNr>suf@ygq?#~$n6Lw4fWfwr+E@_7eJFe+oA#^XGUSXiUNOdz8n(EMCf~>C$V0ixV-w8>pPgo1F0(((|eP|#Z zZ8(4qV&6yff@UMJxAF895)$OR3kUHk%;s# zdQ^k;i@T**m*PAK)l4^hoQrNQQzW@)QHdK^t9%En^&5yL$la;{Bs0F76`X;SXk>}S zk*dhfq6^x=aWdmaN@sC8>u1&Im{gah1(??9VK)r4j||>V+(FZI9A#$M6rCX{f87=@ z$*R~FVcv*`OMMZENA6(tb;ROfALRVwKj%?TOKZeH+a0Xkp&P~6@gQ#8yG_4!u=&d! z{LARsPxo$e2An6#3)HxXCR}0yFEf!>NRq`s(-`K>i+GEx3Ak`{*aulAJy?lB1{>jx z4VvRH^&+LNnJ$&=bdePP525=fP|-gk=^#GI&N>*6u)fqkd)PmL*kT9O;6&+R+pKd2 c#O|V*^&bBb0ZEh6)!;vG@)Dk;EPzx00CVg6oB#j- diff --git a/power_web/pom.xml b/power_web/pom.xml deleted file mode 100644 index eebcea6..0000000 --- a/power_web/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - power - com.manage - 1.0-SNAPSHOT - - 4.0.0 - - power_web - war - - power_web Maven Webapp - - http://www.example.com - - - UTF-8 - 1.7 - 1.7 - - - power_web - - diff --git a/power_web/src/main/webapp/WEB-INF/web.xml b/power_web/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 9f88c1f..0000000 --- a/power_web/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - Archetype Created Web Application - diff --git a/power_web/src/main/webapp/index.jsp b/power_web/src/main/webapp/index.jsp deleted file mode 100644 index c38169b..0000000 --- a/power_web/src/main/webapp/index.jsp +++ /dev/null @@ -1,5 +0,0 @@ - - -

    Hello World!

    - -