diff --git a/power-admin/src/main/webapp/WEB-INF/views/roleDir/roleNotDown.jsp b/power-admin/src/main/webapp/WEB-INF/views/roleDir/roleNotDown.jsp
new file mode 100644
index 0000000..fb86912
--- /dev/null
+++ b/power-admin/src/main/webapp/WEB-INF/views/roleDir/roleNotDown.jsp
@@ -0,0 +1,210 @@
+<%@ 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/static/css/bootstrap-select.min.css b/power-admin/src/main/webapp/static/css/bootstrap-select.min.css
index df885d0..71ae3e0 100644
--- a/power-admin/src/main/webapp/static/css/bootstrap-select.min.css
+++ b/power-admin/src/main/webapp/static/css/bootstrap-select.min.css
@@ -3,4 +3,4 @@
*
* Copyright 2012-2019 SnapAppointments, LLC
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
- */.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\0;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:250px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:18px;width:100%;text-align:left;overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
+ */.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px\0;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select .selectpicker:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:250px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){/*width:100%*/}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:18px;width:100%;text-align:left;overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none}
\ No newline at end of file
diff --git a/power-admin/src/main/webapp/static/js/noticePage.js b/power-admin/src/main/webapp/static/js/noticePage.js
index a0eef72..aa0ad0a 100644
--- a/power-admin/src/main/webapp/static/js/noticePage.js
+++ b/power-admin/src/main/webapp/static/js/noticePage.js
@@ -183,6 +183,10 @@ function delNoticeType(){
//增加通知按钮
function addNotice(){
$("#noticeReceive").empty();
+ //移除禁止修改
+ $("#parentId").removeAttr("disabled");
+ $("#noticeReceive").removeAttr("disabled");
+ $("#noticeReceive").selectpicker("refresh");
$("#noticeId1").val("");
$("#form2")[0].reset();
$("#readFlag").val("");
@@ -199,7 +203,7 @@ $("#parentId").change(function(){
dataType:'json',
success:function(data){
if(data.code == 100){
- var html = '
';
+ var html = '';
if(data.extend != ''){
var userName = $("#userName").val();
for (var i = 0; i < data.extend.userList.length; i++) {
@@ -209,6 +213,7 @@ $("#parentId").change(function(){
}
}
$("#noticeReceive").append(html);
+ $("#noticeReceive").selectpicker('refresh');
}
}
})
@@ -219,16 +224,25 @@ $("#notice_submit").click(function(){
var noticeTitle = $("#noticeTitle").val();
var parentId = $("#parentId").val();
var noticeContent = $("#noticeContent").val();
+ var noticeReceive = $("#noticeReceive").val();
if(noticeTitle == ''){
toastr.warning("通知主题不能为空!");
+ $("#noticeTitle").focus();
}else{
if(parentId == ''){
toastr.warning("通知类型不能为空!");
+ $("#parentId").focus();
}else{
if(noticeContent == ''){
toastr.warning("通知内容不能为空!");
+ $("#noticeContent").focus();
}else{
- updateNotice();
+ if(noticeReceive == ''){
+ toastr.warning("接收人不能为空!");
+ $("#noticeReceive").focus();
+ }else{
+ updateNotice();
+ }
}
}
}
@@ -600,6 +614,9 @@ function editFlag(noticeId){
}
//编辑通知
function edit(noticeId){
+ //禁止修改
+ $("#parentId").prop("disabled","disabled");
+ $("#noticeReceive").prop("disabled","disabled");
$.ajax({
type:'get',
url:path+'/notice/selectNoticeByNoticeId',
@@ -620,16 +637,26 @@ function edit(noticeId){
async:false,
success:function(data){
if(data.code == 100){
- var html = '
';
+ var html = '';
if(data.extend != ''){
var userName = $("#userName").val();
for (var i = 0; i < data.extend.userList.length; i++) {
if (userName != data.extend.userList[i].userName) {
- html += '
';
+ //定义是否匹配选中
+ var flag = false;
+ if(notice.noticeReceive == data.extend.userList[i].userId){
+ flag = true;
+ }
+ if(flag){
+ html += '
';
+ }else{
+ html += '
';
+ }
}
}
}
$("#noticeReceive").append(html);
+ $("#noticeReceive").selectpicker('refresh');
}
}
})
diff --git a/power-admin/src/main/webapp/static/js/roleNotDown.js b/power-admin/src/main/webapp/static/js/roleNotDown.js
new file mode 100644
index 0000000..ba3d4c4
--- /dev/null
+++ b/power-admin/src/main/webapp/static/js/roleNotDown.js
@@ -0,0 +1,293 @@
+/**
+ * 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:'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
^{%n;(;i`&;Xr&b_C5&%M9+&FBCB{eGX>efBwLuf6tnueJ8td!N1c
zJzY3&bo-}WmX$;)1QIRsUZzKMSacpdW2Ay1A-3><>Gv|3j3yESkAH{%A`83&S?!_m
zv>*x~YD2^}*M%sAs0UFWVhe~ZAsRqz1+g_mZ~&Ij-kVbtCHy9U
z=Ilu#K=TyPya$PfYjkq}SUjdsKaPQ@PIK$W;@-5GNI#MUnlp6|1_{s}Qe7t^@Pxib+k!=!8zSy89br`oxhUs$xgvBxDs*);z;rZ^m|?~8A~RS@!%%o
zL1=UpG#H92`s+goB||h1Whev#cY`M$j3$_dHixSTb=^U69HOq>sF8?}etq8C(#^{w
zpYekzz6I3Pp1QVzE064_%KT1IykLwv4Vbd@Y-~(`*9LVHLD6UuPrRs+O`c0;r}BC8
zM+_eD;dD##4B++2Ayj~)mOp?jB$NzfHh30O3r(j=sn9#oXieyGpamBlaavONye9le
zH&j!vgaaS>1J&^BanJ=CZ#f
zNQrJE=m=w_3E|n3YM62zh$}<~;z_y^nlh5Ov8XlzKbVLuxY$RKK`=s$C6Q_h`orwq
zR<)oz)TORAI?qNB4DM&6zNqG!8IbYBg?JNQ6cIHF=mJj)eUaXkG|g?QI~RvNSjV0!
zMVAeto^1rfNC)_%DpOYt($!UfdFr53p^3Vv*MnA!{$2(o!mnf^m>rlna+cjPz2h}1R9sJ|7#|PrsIl{vd>;Zf7)inogFMFepQ^#YH;ZOsLD^%
zad(P`t2}5yp+E?WZl<3$(xKxp^l3sZ0U%JJ0L3HL`8c0zw=0^^HJ8t-b<#tl|lZQRzy$OJV7Y$0D^Cy-HDOy!mk
z$qO{I20M8Ha?doXmw-~E|6xZ<4A!plIXIkWo*JCG0vepP&omQVxW>pB=WXqT%1i~T%1i~
zT%1i~T>Qn07jitNqq6xL&7&-oa}%Nd>d})+s5faUPOdCehbBU?wfHM6m7kxlVk!0x
zvKmKn0il=yLK=%NgiK(302f0{Py^Bt@);2N%!et!fG}yis{wI^EV^@1^FjtsMI8e6S?Cr`WR->Xv6A;@tQX2M=AigXRX)M*9=Mg
zSRkcg9|_Wl1wtQv0)Yxl>o94&t1+xUWHE-N&rX>_9{>`-0+GgYjqc5`NoN*FY1l`C
zbYX$e$G{(cKJMitFPR^&3w(3R!z?chkh72$cqR)2dU
zf=zP~=@O-tHAgyZMBehm86x5XFy2j}1dg&+usx~11YLz5b@Il`StK2(A`RaZq`@3U
z8j}nGNCV?mQZ8L
z5*nq$mQ!v$u}0}|&_@R`fP)u3D`@SInVVTN682O7p7bo>}ZPn#LD36^ZXB(we>ya;10JJ_Yy*brE=azltTHiSZ&_6ljRH!4eG
zESCo7T2#P}IBJ##+f!K@SB=u(42;lv#0eWLXVDvuPHjeY>Nky@S`YU0f%T{P%f3-*
zTfRB4Vh)Yk8qNTqZ42Y7#|;_Wec&f?ON7d8+XmWJkxv)1gL4tEy85B06NjGOpr@u1
zG_)CWJ0A8lkthxa2^Osz5hOcj5?((Kq*B&LZXG;&}^T^
zcO9)_Hm$Z`Hq4<}b%{HUWog4z$1+P8%hHB3h#rW@&vxstg2-zJh?qmO+QB%d(V~7F
z7IoKXQGD$}z0Bb7OvR$uEtD;4tzuE8E7(E9X_Stum)U5PP66$M(CX(8E@)eT)>MMA
zsjp_K(XEtwqrFC{85gsIpA%@5nhV-Nqtpzv8O&fR&4t5{a&xs;X)b0MG9&(~5IFQG
zLv&DqV1^qz5}?_3TqBu_M%yW%J8QNb7j#FBwqu~p;5=2ucGz>26?aonoarrgaD1z=
zWw|<{heqiX(4Qc*`WF-~XitFFRD$W_-BcCFL0DOFFBQdcVMWhfftnTP8q<9=Dz1Q*
zXjYsH+E=6EH1rsuIT^#670fAJ@Um2RuH{lz4${IywFG#ANXVT2cY^TF1l;GI5+|J`
z^-#})XJs^xg3}aeLJDnS>QeJGNX>(Yo6~Gg>bYO^ef?^6)lC22Zkd*^3^f?;nx|_pPkPS%yZz6m
zxo)u9_y1$d#1p#B
z|8!W*rMeDxdOqyvsLv00$3q1bVux8Ty>J~?xZd2rhWkypEh&psVXjZZ-X!_dm7elAt{Mz|O0}cM7w?GN{Klrg
zmiZFj2d}4oI&+cx+f~`l21e2jPhKavHf$-d{q_s($EPivDzx54JX*8RHgv_~2p9W|
zXtDdQmK&bMA5WPfo>o1u{oNWtgX7-aL$-D5sAs?FX}&XW|9(dkQQqX*&Z)lcPTQ_py}CE5HcD&b$l_Nc-o+jr{^k-f73?g_n_s(U*R7jR
z{q(o;&PcjUtNZ-$i$DIU
z_}KA+xdRS$b)CMiwy>h~`SPPHPCEB0+8yNeI{DWpXDj$O^Bf)=e>|pZN?kzj?^>ix
z`m^v(m#q3QU+r|R6EoqP7XXK_n=Jt?U#ExHk0Q{gwYP5#gcZ}+s^
zoAc|)cm;b6LcC3ODcLM
z2Hc-M_hAdY6$?G3qa;Nkzs67g^0OU_Us{Q5pX{~0m>T17KsiIVz&emr-pPUo2x=`D9%@<_m
znf_5-zD%_~8}oW&vUk|%O8bR-7Zk5(m~}eEVqMGrPyM1g&+Sp!#dy>y!5@~dc3#?l
z{L=8mqT>x$hHu$q73*%pFR4!1H*n#J1;O`fVkf5NxZIfd%i<%?-G$EA{q3T|Vsk2z
zv*X-!hGf5dXF21Z=%-{?c999vp|@w#xsyc&d6+d3ApB!mttIti(NiYEIYKIL4UX
zS=*(&CN=KR`0dxve*gK)2vWbqpF_
zyt?qQb)aM0%L~JuM)Yt1^2hd9b%v*2Jsn*3SX@;i&@Brq@LFsCW4d2B$}ZNBS6lFwb8ad7sFFMI5tI?|%X
z%^7~#wCbz2Lvtguem^{BSE0|wA2;-|*nDf`uaR>{Tyw~~bnJF!7fHpop>8evncweg
zJ^tN^%=#8uRub~O=2*cWZGW(DBQ*H^ov!-%4(G(EL}`2yH76>jjQlGb?jMA_PO!^~
zzw4oS+>tYL(fJ7{JX_9rnt6EU#k7HCCoI}0d*o+#_gI%kDxK5g?5(a_J-j}kSVzA=
zIP2%9b(^}q-#)*-^85QD^W4okC+>8YoQ>yo=vk5b
z)xcP3R^&2?!Nu&=JAls$OoGRD>{*oNSAGR(G*>_USjz8CL~-sXt>z%#&;LC
zUDld)*UzAnL_F}(V}tFkLiah*M^=n4SoULy$r$gOUU8c(gswK
zf9|!eV|R|8u`t2^vDvuAq0apr#e@LbuRcLA1j$9dSAN4_5zoOCTy+j;G&(%TLzH-`z%
zj5v6(=vLD=2hmn>*=x|X9ULm*ptPnbMKI(bS|MCupPq)2>i*tYm={}Y~uJ?nZm
z%&d0no3}ei*uHi~@xtP@(+W?o5Sy1&?A|csZCzMdM94;wdA#ejssr~^MsBaGT9a&%
z^N)zyA*13l$EHr)bxUg{df*vK+x0Ev%zN*h~i`N~x=$p=gxjot~8Cq97
z-(*Xf;qlw9JD2BL``vQB7IHd2=}6AkZOVR#i%VMSIpkX%*R&npxiyv%35NCBy)JsX
zE-Kpb&_&kmVb<1!5#x3}Pwsj~^rG{NyKkKC`DADLyl5;h{XfDV&rs
z?}o~zf(+O_5W!UfTgx1VqXD@6QSp-u{PCG7oE$J7*|bvSZVJqel?KSmP+r*l$`FEf
zZB1qHJ(&(Dpco>%J7_A2U5yS{(hA<**(JHvRPK6Mp0;f$XL-(!NDHNCFy*&m1*kUk
zaJEp?Gxd(FjG??BP+;JWj|v8Bc@Q3|O*OI}{Jup3y(^A#ge>>~C`)NUvrzaMS;(Sg
z1F{kPMZl41415qHCHSFID)rQl`V?V2`3k-b@+RT%$xJeQ6Euaz5eBqzBo1g^u;Lue
z!_(qSaN{?=D7y|X98kvriU{&^VGlo-RWq1{3MhCM?3xaRzhgWhL_!w$@<{_6a^Mdq
zFv3oC+1$h#1`*FvVRKA(cuhP|JYpRq^v3m;%HXRTAvp_Gq938=^p{VDO}>0;0sV^!
zSY>-~>ArBdXMo#nP?8T{U9_g2jo^yk%m_)trsrk-V!|a+6y1fQcciW}C`tzKFrhsj
z=D>mRbjUeIEtkw7J(J>|MO_``+%*y>*0Zzx`I)2x>-i^Q50Z_Ah<|+I%END4Fx3d9Ys3Q;0!la9)Q1hLEIDR)R^#1ho}VX~bV)s7S*uBROM0rwJc_vBw;rVq*yT
z*w?UOy3+FST2nMkXfa3TjWo2RGL3H3#^d%zKD3=OAD;TMY451EB_s&wgwQD-q_AE(
z#fKEucm#ArYB2T3r_xAgr%?)a8YN(-v34eX6};gEq{qS@wqfI6Am5lA0Ux5}!NW`p
z!IX?>PyE%DHF^|2;s8SvR{&Y8x0`1Sre^~FGz7&t!V7>tLyL~3mX
zs0TWHV_@(wc^hIg^fSah0({J!DW{xfu2Qn&$u^G)+&_IcdlXk
zJ;!}bg7I-lC;(<#xZ^ma{-bn4f*?O5b@GjE8Rb0cc}*tu{|B(FF2rH*
zx;mJMNZfay#6j|-f;#a&+kb$av2p=6L!|AFGe1.0-SNAPSHOT
4.0.0
-
power-dao
-
-
UTF-8
UTF-8
-
-
diff --git a/power-dao/src/main/java/com/manage/dao/Power_NoticeMapper.java b/power-dao/src/main/java/com/manage/dao/Power_NoticeMapper.java
index 7eb600c..93d8b33 100644
--- a/power-dao/src/main/java/com/manage/dao/Power_NoticeMapper.java
+++ b/power-dao/src/main/java/com/manage/dao/Power_NoticeMapper.java
@@ -42,4 +42,6 @@ public interface Power_NoticeMapper {
* 按用户id查询未读通知数量
* */
int getUnReadCount(@Param("userId")Integer userId);
+
+ void simpleInsert(List list);
}
\ No newline at end of file
diff --git a/power-dao/src/main/resources/mapper/Power_NoticeMapper.xml b/power-dao/src/main/resources/mapper/Power_NoticeMapper.xml
index fcc1900..a184a41 100644
--- a/power-dao/src/main/resources/mapper/Power_NoticeMapper.xml
+++ b/power-dao/src/main/resources/mapper/Power_NoticeMapper.xml
@@ -1,36 +1,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
notice_id, sys_id, notice_type_flag, notice_type_name, notice_title, notice_content,
notice_send, notice_date, notice_receive, effective, read_flag, parent_id, remark
-
-
+
+
delete from power_notice
where notice_id = #{noticeId,jdbcType=INTEGER}
-
+
insert into power_notice (notice_id, sys_id, notice_type_flag,
notice_type_name, notice_title, notice_content,
notice_send, notice_date, notice_receive,
@@ -42,134 +42,134 @@
#{effective,jdbcType=INTEGER}, #{readFlag,jdbcType=INTEGER}, #{parentId,jdbcType=INTEGER},
#{remark,jdbcType=VARCHAR})
-
- insert into power_notice
-
-
- notice_id,
-
-
- sys_id,
-
-
- notice_type_flag,
-
-
- notice_type_name,
-
-
- notice_title,
-
-
- notice_content,
-
-
- notice_send,
-
-
- notice_date,
-
-
- notice_receive,
-
-
- effective,
-
-
- read_flag,
-
-
- parent_id,
-
-
- remark,
-
-
-
-
- #{noticeId,jdbcType=INTEGER},
-
-
- #{sysId,jdbcType=INTEGER},
-
-
- #{noticeTypeFlag,jdbcType=VARCHAR},
-
-
- #{noticeTypeName,jdbcType=VARCHAR},
-
-
- #{noticeTitle,jdbcType=VARCHAR},
-
-
- #{noticeContent,jdbcType=VARCHAR},
-
-
- #{noticeSend,jdbcType=VARCHAR},
-
-
- #{noticeDate,jdbcType=CHAR},
-
-
- #{noticeReceive,jdbcType=VARCHAR},
-
-
- #{effective,jdbcType=INTEGER},
-
-
- #{readFlag,jdbcType=INTEGER},
-
-
- #{parentId,jdbcType=INTEGER},
-
-
- #{remark,jdbcType=VARCHAR},
-
-
-
-
- update power_notice
-
-
- sys_id = #{sysId,jdbcType=INTEGER},
-
-
- notice_type_flag = #{noticeTypeFlag,jdbcType=VARCHAR},
-
-
- notice_type_name = #{noticeTypeName,jdbcType=VARCHAR},
-
-
- notice_title = #{noticeTitle,jdbcType=VARCHAR},
-
-
- notice_content = #{noticeContent,jdbcType=VARCHAR},
-
-
- notice_send = #{noticeSend,jdbcType=VARCHAR},
-
-
- notice_date = #{noticeDate,jdbcType=CHAR},
-
-
- notice_receive = #{noticeReceive,jdbcType=VARCHAR},
-
-
- effective = #{effective,jdbcType=INTEGER},
-
-
- read_flag = #{readFlag,jdbcType=INTEGER},
-
-
- parent_id = #{parentId,jdbcType=INTEGER},
-
-
- remark = #{remark,jdbcType=VARCHAR},
-
-
- where notice_id = #{noticeId,jdbcType=INTEGER}
-
-
+
+ insert into power_notice
+
+
+ notice_id,
+
+
+ sys_id,
+
+
+ notice_type_flag,
+
+
+ notice_type_name,
+
+
+ notice_title,
+
+
+ notice_content,
+
+
+ notice_send,
+
+
+ notice_date,
+
+
+ notice_receive,
+
+
+ effective,
+
+
+ read_flag,
+
+
+ parent_id,
+
+
+ remark,
+
+
+
+
+ #{noticeId,jdbcType=INTEGER},
+
+
+ #{sysId,jdbcType=INTEGER},
+
+
+ #{noticeTypeFlag,jdbcType=VARCHAR},
+
+
+ #{noticeTypeName,jdbcType=VARCHAR},
+
+
+ #{noticeTitle,jdbcType=VARCHAR},
+
+
+ #{noticeContent,jdbcType=VARCHAR},
+
+
+ #{noticeSend,jdbcType=VARCHAR},
+
+
+ #{noticeDate,jdbcType=CHAR},
+
+
+ #{noticeReceive,jdbcType=VARCHAR},
+
+
+ #{effective,jdbcType=INTEGER},
+
+
+ #{readFlag,jdbcType=INTEGER},
+
+
+ #{parentId,jdbcType=INTEGER},
+
+
+ #{remark,jdbcType=VARCHAR},
+
+
+
+
+ update power_notice
+
+
+ sys_id = #{sysId,jdbcType=INTEGER},
+
+
+ notice_type_flag = #{noticeTypeFlag,jdbcType=VARCHAR},
+
+
+ notice_type_name = #{noticeTypeName,jdbcType=VARCHAR},
+
+
+ notice_title = #{noticeTitle,jdbcType=VARCHAR},
+
+
+ notice_content = #{noticeContent,jdbcType=VARCHAR},
+
+
+ notice_send = #{noticeSend,jdbcType=VARCHAR},
+
+
+ notice_date = #{noticeDate,jdbcType=CHAR},
+
+
+ notice_receive = #{noticeReceive,jdbcType=VARCHAR},
+
+
+ effective = #{effective,jdbcType=INTEGER},
+
+
+ read_flag = #{readFlag,jdbcType=INTEGER},
+
+
+ parent_id = #{parentId,jdbcType=INTEGER},
+
+
+ remark = #{remark,jdbcType=VARCHAR},
+
+
+ where notice_id = #{noticeId,jdbcType=INTEGER}
+
+
update power_notice
set sys_id = #{sysId,jdbcType=INTEGER},
notice_type_flag = #{noticeTypeFlag,jdbcType=VARCHAR},
@@ -185,242 +185,242 @@
remark = #{remark,jdbcType=VARCHAR}
where notice_id = #{noticeId,jdbcType=INTEGER}
-
-
\ No newline at end of file
diff --git a/power-dao/src/main/resources/mapper/Power_Sys_DictMapper.xml b/power-dao/src/main/resources/mapper/Power_Sys_DictMapper.xml
index 768c3be..76f876b 100644
--- a/power-dao/src/main/resources/mapper/Power_Sys_DictMapper.xml
+++ b/power-dao/src/main/resources/mapper/Power_Sys_DictMapper.xml
@@ -711,15 +711,6 @@ on FIND_IN_SET(dict.deptIds,power_user.dept_id)
AND power_user.role_id != #{roleId}
-
-
- SELECT
- dept_id
- FROM
- power_sys_dict
- WHERE
- sys_flag = #{sysFlag}
-
SELECT
@@ -780,30 +771,6 @@ on FIND_IN_SET(dict.deptIds,power_user.dept_id)
AND dept_id IN (${deptIds})
-
-
- SELECT
- sys_flag,
- sys_name
- FROM
- power_sys_dict
- WHERE
- sys_flag IS NOT NULL
- GROUP BY
- sys_flag,
- sys_name
-
-
-
- SELECT
- power_sys_dict.sys_type,
- power_sys_dict.parent_id
- FROM
- power_notice
- LEFT JOIN power_sys_dict ON power_notice.notice_type_flag = power_sys_dict.sys_flag
- WHERE
- notice_id = ${noticeId}
-
SELECT
@@ -815,15 +782,6 @@ on FIND_IN_SET(dict.deptIds,power_user.dept_id)
AND
sys_name = #{sysName}
-
-
- SELECT
- parent_id
- FROM
- power_sys_dict
- WHERE
- sys_flag = #{sysFlag}
-
SELECT
diff --git a/power-service/src/main/java/com/manage/service/Power_RoleService.java b/power-service/src/main/java/com/manage/service/Power_RoleService.java
index 3822af7..d5cdb4f 100644
--- a/power-service/src/main/java/com/manage/service/Power_RoleService.java
+++ b/power-service/src/main/java/com/manage/service/Power_RoleService.java
@@ -46,6 +46,13 @@ public interface Power_RoleService {
* */
void export(Power_RoleVo powerRole,HttpServletResponse response,HttpServletRequest request)throws Exception;
+ /**
+ * @Date 2019-4-25
+ * @Author ly
+ * @Description 导出Excel表
+ * */
+ void exportNotDown(Power_RoleVo powerRole,HttpServletResponse response,HttpServletRequest request)throws Exception;
+
/**
* @Date 2019-4-30
* @Author ly
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 0f52e34..d488d75 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
@@ -134,15 +134,30 @@ public class Power_NoticeServiceImpl{
powerNotice.setEffective(1);
if(null == powerNotice.getNoticeId()){
//添加
- if(StringUtils.isBlank(powerNotice.getNoticeTypeFlag())){
- powerNotice.setNoticeSend(user.getUserId().toString());
- SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- powerNotice.setNoticeDate(fmt.format(new Date()));
- powerNotice.setReadFlag(0);
+ String noticeReceive = powerNotice.getNoticeReceive();
+ if(StringUtils.isNotBlank(noticeReceive)){
+ List simpleInsert = new ArrayList<>();
+ String[] noticeReceives = noticeReceive.split(",");
+ for(String noticeReceiveStr : noticeReceives) {
+ //判断是否包含所有,
+ if (StringUtils.isBlank(powerNotice.getNoticeTypeFlag())) {
+ powerNotice.setNoticeSend(user.getUserId().toString());
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ powerNotice.setNoticeDate(fmt.format(new Date()));
+ powerNotice.setReadFlag(0);
+ powerNotice.setNoticeReceive(noticeReceiveStr);
+ }
+ //添加进记录
+ Power_Notice vo = new Power_Notice();
+ BeanUtils.copyProperties(powerNotice,vo);
+ simpleInsert.add(vo);
+ }
+ noticeMapper.simpleInsert(simpleInsert);
+ simpleInsert.forEach(vos ->{
+ //发送通知
+ sendRecive(vos,user,vos.getNoticeTitle(),vos.getNoticeContent());
+ });
}
- noticeMapper.insert(powerNotice);
- //发送通知
- sendRecive(powerNotice,user,powerNotice.getNoticeTitle(),powerNotice.getNoticeContent());
}else{
//修改
noticeMapper.updateByPrimaryKeySelective(powerNotice);
@@ -165,7 +180,7 @@ public class Power_NoticeServiceImpl{
//all 该系统全部,不包括自己
//系统标识是power则该医院全部,否则该系统全部
//查询该用户医院id
- Integer hospitalId = null;
+ /*Integer hospitalId = null;
if(null != user.getUserId() && user.getRoleId() != 0){
hospitalId = userMapper.selectHospitalIdByUserId(user.getUserId());
}
@@ -202,7 +217,7 @@ public class Power_NoticeServiceImpl{
}
}
}
- }
+ }*/
}
}
}
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 39d2581..5cb2acd 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
@@ -143,6 +143,30 @@ public class Power_RoleServiceImpl implements Power_RoleService {
//导出excel的操作
exportExcelUtil.expordExcel(tableThNames,fieldCns,roleList,fileName,response);
}
+ @Override
+ public void exportNotDown(Power_RoleVo powerRole,HttpServletResponse response,HttpServletRequest request) throws Exception {
+ 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("否");
+ }
+ }
+ }
+ }
+ String tableThNames = "角色名称,备注,是否有效,创建时间,创建人";
+ String fieldCns = "roleName,remark,effectiveCn,createDate,creater";
+ //文件名
+ String fileName = "角色列表(" + new SimpleDateFormat("yyyy_MM_dd HH_mm_ss").format(new Date()) + ").xls";
+ //ExportExcelUtil
+ com.manage.util.ExportExcelUtil exportExcelUtil = new com.manage.util.ExportExcelUtil();
+ //导出excel的操作
+ exportExcelUtil.expordExcel(tableThNames,fieldCns,roleList,fileName,response);
+ }
@Override
public List selectList() {