修改工作流审批组权限

pull/107/head
admin 1 year ago
parent 252efdc458
commit acab202aba

@ -89,20 +89,10 @@
<div class="main-content"> <div class="main-content">
<form name="Userdistionaryform" method="post" id="Userdistionaryform" class="form-horizontal" action="${ctx}/backstage/userdistionary/save"> <form name="Userdistionaryform" method="post" id="Userdistionaryform" class="form-horizontal" action="${ctx}/backstage/userdistionary/save">
<input type="hidden" id="search_parentid"> <input type="hidden" id="search_parentid">
<input type="hidden" id="userlist" name="userlist">
<input type="hidden" id="deptlist" name="deptlist"> <input type="hidden" id="deptlist" name="deptlist">
<input type="hidden" value="1" name="usertype"> <input type="hidden" value="1" name="usertype">
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label class="col-sm-2 control-label is-required">* 选择租户:</label>
<div class="col-sm-10">
<select data-placeholder="选择租户..." class="chosen-select" name='userDisId' id='userDisId' class="chosen-select" style="width:80%;" tabindex="2">
</select>
</div>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
@ -218,19 +208,6 @@
} }
}; };
parent.axgetXiaoyao("${ctx}/backstage/admin/tenant/listall",null,false,function (data) {
if(data.code == "OK"){
$.each(data.data,function(name,anArray) {
console.log(anArray)
$("#userDisId").append("<option value='" + anArray.id + "'>" + anArray.name + "</option>");
});
$("#userDisId").chosen(selectConfig[$("#userDisId")]);
$("#userDisId").change(function (e){
refreshAddTable();
});
}
});
_tableAddListUserdistionary = $('#Userdistionary_add_list').bootstrapTable({ _tableAddListUserdistionary = $('#Userdistionary_add_list').bootstrapTable({
url: '${ctx}/backstage/oa/userdistionary/listnoin' , url: '${ctx}/backstage/oa/userdistionary/listnoin' ,
@ -283,6 +260,7 @@
return row.id + "_" + row.departmentId; return row.id + "_" + row.departmentId;
}); });
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference'; func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids); selectionIds = _[func](selectionIds, ids);
selectionIdDepts = _[func](selectionIdDepts, idDepts); selectionIdDepts = _[func](selectionIdDepts, idDepts);
@ -327,13 +305,11 @@
}, },
submitHandler: function (){ submitHandler: function (){
if(selectionIds.length < 1){ if(selectionIdDepts.length < 1){
parent.toastr.success("选择要添加的用户。"); parent.toastr.success("选择要添加的用户。");
return; return;
} }
$("#userlist").val(selectionIds.join());
$("#deptlist").val(selectionIdDepts.join()); $("#deptlist").val(selectionIdDepts.join());
parent.layer.load(); parent.layer.load();

@ -4,11 +4,11 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人员归属关系</title> <title>人员归属关系</title>
<#include "/head/headaddedit.html" />
<#include "/head/headlist.html" /> <link href="${ctx}/static/css/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
<link rel="stylesheet" href="${ctx}/static/js/plugins/jcrop/css/jquery.Jcrop.css" type="text/css" /> <link rel="stylesheet" href="${ctx}/static/js/plugins/jcrop/css/jquery.Jcrop.css" type="text/css" />
<link href="${ctx}/static/css/plugins/chosen/chosen.css" rel="stylesheet"> <link href="${ctx}/static/css/plugins/chosen/chosen.css" rel="stylesheet">
<link href="${ctx}/static/css/plugins/iCheck/custom.css" rel="stylesheet"> <link href="${ctx}/static/js/plugins/jqueryzTree/css/metroStyle/metroStyle.css" rel="stylesheet">
<style type="text/css"> <style type="text/css">
.jcrop-holder #preview-pane { .jcrop-holder #preview-pane {
@ -56,49 +56,74 @@
</head> </head>
<body class="gray-bg"> <body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight"> <div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox "> <div class="row">
<div class="ibox-content"> <div class="col-sm-12">
<div class="ibox-content"> <div class="ibox float-e-margins">
<form id="searcheuserform" name="searcheuserform" class="form-inline"> <div class="ibox-title">
<div class="form-group"> <h5>设置流程权限</h5>
<div class="input-group"> </div>
<select data-placeholder="选择租户..." class="chosen-select" name='userDisId' id='userDisId' class="chosen-select" style="width:350px;" tabindex="2"> <div class="col-sm-3" id="departDivTree">
</select> <div class="ibox float-e-margins">
<div class="ibox-title">
<h5>组织机构</h5>
<div class="ibox-tools">
<a class="collapse-link" title="折叠" id="collapes_linkclose">
<i class="fa fa-chevron-up" ></i>
</a>
<a class="collapse-link" title="展开" id="collapes_linkopen" style="display:none;">
<i class="fa fa fa-chevron-down" ></i>
</a>
</div>
</div> </div>
</div> <div class="ibox-content">
<div class="form-group"> <div id="zTreeDemoBackground left">
<div class="input-group"> <ul id="departZtreeUl" class="ztree"></ul>
<select data-placeholder="审批角色..." class="chosen-select" name='userDisRolesid' id='userDisRolesid' class="chosen-select" style="width:350px;" tabindex="2"> </div>
<option value="">请选择审批角色</option>
</select>
</div> </div>
</div> </div>
<div class="form-group">
<input name='search_username' id='search_username' class='form-control' placeholder='姓名--'/> </div>
</div> <div class="col-sm-9">
<div class="form-group"> <div class="ibox ">
<a class="btn btn-primary btn-rounded btn-sm" onclick="refreshTable()"><i class="fa fa-search"></i>&nbsp;搜索</a> <div class="ibox-content">
</div> <div class="main-content">
</form> <form name="Userdistionaryform" method="post" id="Userdistionaryform" class="form-horizontal" action="${ctx}/backstage/userdistionary/save">
</div> <input type="hidden" id="search_parentid">
</div>
</div> <input type="hidden" id="deptlist" name="deptlist">
<div class="ibox-content"> <input type="hidden" value="1" name="usertype">
<div class="row row-lg">
<div class="col-sm-12">
<div class="container-div"> <div class="row">
<div class="btn-group-sm" id="_mybutton" role="group"> <div class="col-sm-12">
<div class="form-group">
<label class="col-sm-2 control-label is-required">* 用户列表:</label>
<div class="col-sm-10">
<table id="Userdistionary_add_list" ></table>
</div>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-sm-offset-5">
<button id="savebutton" type="submit" class="btn btn-w-m btn-primary">保存</button>
<button type="button" onclick="rolesback()" class="btn btn-w-m btn-success">取消</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div> </div>
<br/>
</div> </div>
</div>
<div class="col-sm-12 select-table table-striped" >
<table id="Userdistionary_list" ></table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 展示流程图的 窗口 --> <!-- 展示流程图的 窗口 -->
<div id="modal-candidate-user-role" class="modal fade" aria-hidden="true"> <div id="modal-candidate-user-role" class="modal fade" aria-hidden="true">
<div class="modal-dialog" role="document" style="width: auto"> <div class="modal-dialog" role="document" style="width: auto">
@ -110,7 +135,8 @@
<div class="modal-body"> <div class="modal-body">
<form id="candidateUserFrom"> <form id="candidateUserFrom">
<input type="hidden" id="fromUserDisId"> <input type="hidden" id="fromUserId">
<input type="hidden" id="fromDeptId">
<input type="hidden" value="1" name="fromUserTyped" id="fromUserTyped"> <input type="hidden" value="1" name="fromUserTyped" id="fromUserTyped">
<div class="form-group"> <div class="form-group">
<div class="input-group" id="fromUserNameDiv"> <div class="input-group" id="fromUserNameDiv">
@ -134,47 +160,92 @@
</div> </div>
</div> </div>
</div> </div>
<#include "/head/footlist.html" /> <#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/jcrop/js/jquery.color.js" type="text/javascript"></script> <script src="${ctx}/static/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="${ctx}/static/js/plugins/jcrop/js/jquery.Jcrop.js" type="text/javascript"></script> <script src="${ctx}/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
<script src="${ctx}/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<script src="${ctx}/static/js/plugins/iCheck/icheck.min.js"></script> <script src="${ctx}/static/js/plugins/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<!-- Chosen --> <!-- Chosen -->
<script src="${ctx}/static/js/plugins/chosen/chosen.jquery.js"></script> <script src="${ctx}/static/js/plugins/chosen/chosen.jquery.js"></script>
</body> <script type="text/javascript">
</html>
<script type="text/javascript">
var _tableListUserdistionary; var _tableListUserdistionary;
var jsptoolbar = ''; var _tableAddListUserdistionary;
var jspOperation = ''; var selectionIds = []; //保存选中ids
var userDisRolesidarray; var selectionIdDepts = []; //保存选中用户机构主键
var selectConfig = { var _deptTree;
'.chosen-select': {}, var setting = {
'.chosen-select-deselect': { data: {
allow_single_deselect: true simpleData: {
}, enable: true
'.chosen-select-no-single': { }
disable_search_threshold: 10 }, callback: {onClick: zTreeOnClick }
}, };
'.chosen-select-no-results': { function zTreeOnClick(event, treeId, treeNode) {
no_results_text: 'Oops, nothing found!'
}, if(treeNode.id != '0'){
'.chosen-select-width': { $("#search_parentid").val(treeNode.id);
width: "95%" }else{
$("#search_parentid").val("");
} }
refreshAddTable();
}; };
jQuery(document).ready(function($){ //折叠ibox
$('#collapes_linkopen').click(function () {
_deptTree.expandAll(true);
$(this).hide();
$("#collapes_linkclose").show();
});
parent.axgetXiaoyao("${ctx}/backstage/admin/tenant/listall",null,false,function (data) { $("#collapes_linkclose").click(function () {
if(data.code == "OK"){ _deptTree.expandAll(false);
$.each(data.data,function(name,anArray) {
console.log(anArray) $(this).hide();
$("#userDisId").append("<option value='" + anArray.id + "'>" + anArray.name + "</option>"); $("#collapes_linkopen").show();
}); });
$("#userDisId").chosen(selectConfig[$("#userDisId")]); //选中事件操作数组
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消选中事件操作数组
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
} }
}); });
return array;
};
var _ = {"union":union,"difference":difference};
$(document).ready(function () {
initDepartTree()
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
var selectConfig = {
'.chosen-select': {},
'.chosen-select-deselect': {
allow_single_deselect: true
},
'.chosen-select-no-single': {
disable_search_threshold: 10
},
'.chosen-select-no-results': {
no_results_text: 'Oops, nothing found!'
},
'.chosen-select-width': {
width: "95%"
}
};
//审批角色 //审批角色
parent.axgetXiaoyao('${ctx}/backstage/oa/candidate/list',null,false , function(result) { parent.axgetXiaoyao('${ctx}/backstage/oa/candidate/list',null,false , function(result) {
@ -190,83 +261,190 @@
} }
}); });
_tableAddListUserdistionary = $('#Userdistionary_add_list').bootstrapTable({
url: '${ctx}/backstage/oa/userdistionary/listnoin' ,
pagination: true, //是否显示分页(*
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 20, //每页的记录行数(*
sidePagination: "server",
idField:"id",
height: "100%",
striped:true, //奇偶行渐色表
clickToSelect:true, //是否选中
maintainSelected:true,
pageList: [20, 50, 100],
ajaxOptions:{
headers: {"logintoken": parent.getLoginToken()}
},
queryParams: function queryParams(params) {
return {
sortorder: params.order,
sortname: params.sort,
pagesize: params.limit,
start: (params.offset / params.limit) + 1,
parentid: $("#search_parentid").val(),
userDisId: $("#userDisId").val()
};
},
responseHandler:function(res){
//表格分页之前处理多选框数据
$.each(res.data.records, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判断当前行的数据id是否存在与选中的数组存在则将多选框状态变为true
});
return{"rows": res.data.records, "total": res.data.total};
},
columns: [
parent.axgetXiaoyao("${ctx}/backstage/admin/user/toolsbarOperation?" + "resourceid=${resourceid}",null,true , { width:150,valign: "middle",field:'username',title:'用户名',sortable:true},
function(data){ { width:150,valign: "middle",field:'loginname',title:'登录账号',sortable:true},
if(data.code == "OK"){ { width:150,valign: "middle",field:'departname',title:'所属部门',sortable:true},
jsptoolbar = data.data.Jsptoolbar; { width:150,valign: "middle",field:'candidatename',title:'审批权限组',sortable:false},
jspOperation = data.data.JspOperation; {
$("#_mybutton").empty(); width:200,
$(jsptoolbar).each(function (i, toolbar) { field: 'id',
if(toolbar.methodid != '104'){ title: '操作',
$("#_mybutton").append('<button class="btn sbold ' + toolbar.img + '" onClick="' + toolbar.actionmethod + '(\'${resourceid}' + toolbar.methodid + '\')"> ' + ' <i class="fa ' + toolbar.methodkey + '"></i> ' + toolbar.text + '</button>&nbsp'); formatter:function(value,oData,index) {
} var listOperation = "<a href=\"javascript:void(0)\" onclick=\"setCandiRole('" + index +"')\" class=\"btn btn-primary btn-xs\" ><i class=\"fa fa-pencil\"></i> 设置审批组 </a>&nbsp;&nbsp;&nbsp;&nbsp;";
});
_tableListUserdistionary = $('#Userdistionary_list').bootstrapTable({
url: '${ctx}/backstage/oa/userdistionary/list' , return listOperation;
pagination: true, //是否显示分页(* }
pageNumber:1, //初始化加载第一页,默认第一页 }
pageSize: 10, //每页的记录行数(* ]
sidePagination: "server", });
height: "100%",
pageList: [10, 25, 50], //绑定选中事件、取消事件、全部选中、全部取消
ajaxOptions:{ _tableAddListUserdistionary.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
headers: {"logintoken": parent.getLoginToken()} var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
}, return row.id;
queryParams: function queryParams(params) { });
return { var idDepts = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
sortorder: params.order, return row.id + "_" + row.departmentId;
sortname: params.sort, });
pagesize: params.limit, func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
start: (params.offset / params.limit) + 1,
userDisId:$("#userDisId").val() , selectionIds = _[func](selectionIds, ids);
search_username:'{"value":"' + $("#search_username").val() + '","op":"equal","type":"string"}',
userDisRolesid: $("#userDisRolesid").val() selectionIdDepts = _[func](selectionIdDepts, idDepts);
};
}, });
responseHandler:function(res){
return{"rows": res.data.records, "total": res.data.total};
}, $("#Userdistionaryform").attr("action","${ctx}/backstage/oa/userdistionary/save");
columns: [ var form1 = $('#Userdistionaryform');
{checkbox: true}, var error1 = $('.alert-danger', form1);
{ width:150,valign: "middle",field:'username',title:'用户名',sortable:false}, form1.validate({
{ width:150,valign: "middle",field:'loginname',title:'登录账号',sortable:false}, debug: true,
{ width:150,valign: "middle",field:'departname',title:'所属部门',sortable:false}, errorElement: 'span',
{ width:150,valign: "middle",field:'candidatename',title:'审批权限组',sortable:false}, errorClass: 'help-block help-block-error',
{ focusInvalid: false,
width:200, ignore: ":hidden",
field: 'id', errorPlacement: function (error, element) {
title: '操作', if (element.parent(".input-group").size() > 0) {
formatter:function(value,oData,index) { error.insertAfter(element.parent(".input-group"));
var listOperation = "<a href=\"javascript:void(0)\" onclick=\"setCandiRole('" + index +"')\" class=\"btn btn-primary btn-xs\" ><i class=\"fa fa-pencil\"></i> 设置审批组 </a>&nbsp;&nbsp;&nbsp;&nbsp;"; } else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
return listOperation; error.appendTo(element.parents('.radio-list').attr("data-error-container"));
} } else if (element.parents('.radio-inline').size() > 0) {
} error.appendTo(element.parents('.radio-inline').attr("data-error-container"));
] } else if (element.parents('.checkbox-list').size() > 0) {
}); error.appendTo(element.parents('.checkbox-list').attr("data-error-container"));
} else if (element.parents('.checkbox-inline').size() > 0) {
error.appendTo(element.parents('.checkbox-inline').attr("data-error-container"));
} else {
error.insertAfter(element);
}
},
highlight: function (element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error');
},
success: function (label) {
label.closest('.form-group').removeClass('has-error');
},
submitHandler: function (){
if(selectionIdDepts.length < 1){
parent.toastr.success("选择要添加的用户。");
return;
} }
$("#deptlist").val(selectionIdDepts.join());
parent.layer.load();
$("#savebutton").addClass('disabled');
$("#Userdistionaryform").ajaxSubmit({
headers:{"logintoken": parent.getLoginToken()},
success:function(data){
parent.layer.closeAll('loading');
if(data.code == "OK"){
parent.toastr.success(data.message);
rolesback();
}else if(data.code == "ERRORM"){
$.each(data.message,function(name,anArray) {
$.each(anArray,function(n,value){
$("#" + n).closest('.form-group').addClass('has-error');
$("<span>").attr( "id", n + "-error" ).addClass("help-block help-block-error").html(value).insertAfter($("#" + n));
});
});
}else{
$("#savebutton").addClass('removeClass');
parent.toastr.error(data.message);
}
}
});
} }
); });
}); });
function getIdSelections() { function saveUserCandidateForm(){
return $.map(_tableListUserdistionary.bootstrapTable('getSelections'), function(row) {
return row.userdistionaryid var chk_value =[];//定义一个数组
$('input[name="userCandRolesid"]:checked').each(function(){//遍历每一个名字为nodes的复选框其中选中的执行函数
chk_value.push($(this).val());//将选中的值添加到数组chk_value中
}); });
}
function _useradd(jframeid){
parent._xiaoyaoOpenMenuTab('${ctx}/backstage/oa/userdistionaryHtml/toSave',"添加人员",jframeid + '_add');
}
var selectId = chk_value.join(",");
//审批角色
parent.axpostXiaoyao('${ctx}/backstage/oa/userdistionary/saveupdate',
{
userid:$("#fromUserId").val(),
userdeptid:$("#fromDeptId").val(),
fromUserTyped:1,
fromUserDisRolesid:selectId
},
false ,
function(result) {
if(result.code == 'OK'){
parent.toastr.success(result.message);
refreshAddTable();
}else{
parent.toastr.error(result.message);
}
$("#modal-candidate-user-role").modal("hide");
});
}
function setCandiRole(index){ function setCandiRole(index){
$("#modal-candidate-user-role").modal(); $("#modal-candidate-user-role").modal();
$("#modal-candidate-user-role").css("z-index",(parent.getMaxZIndex() + 1)); $("#modal-candidate-user-role").css("z-index",(parent.getMaxZIndex() + 1));
var getdata = _tableListUserdistionary.bootstrapTable('getData'); var getdata = _tableAddListUserdistionary.bootstrapTable('getData');
var task = getdata[index]; var task = getdata[index];
$("#fromUserId").val(task.id);
$("#fromDeptId").val(task.departid);
console.log(task)
console.log("--------------------------------")
//查询当前人员已经设置的角色 //查询当前人员已经设置的角色
var candidateid = task.candidateid; var candidateid = task.candidateid;
var candidateidArray = candidateid.split(","); var candidateidArray = candidateid.split(",");
@ -306,119 +484,24 @@
$("#fromUserNameDiv").html("姓名:" + task.username); $("#fromUserNameDiv").html("姓名:" + task.username);
} }
function initDepartTree() {
function setCandiDept(index){ if(undefined != _deptTree){
_deptTree.destroy();
var getdata = _tableListUserdistionary.bootstrapTable('getData'); }
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,true ,function (data) {
var task = getdata[index]; _deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
//查询当前人员已经设置的角色 _deptTree.expandAll(true);
var candidateid = task.candidateid;
var username = task.username;
var userid = task.id;
var usertype = task.userOsudType;
var userdistionaryid = task.userdistionaryid;
parent._xiaoyaoOpenMenuTab('${ctx}/backstage/oa/userdistionaryHtml/tolinkdept?candidateid=' + candidateid + "&username=" + username + "&userid=" + userid + "&usertype=" + usertype + "&userdistionaryid=" + userdistionaryid,"设置分管部门",userdistionaryid + '_add');
}
function t_delete(str){
parent.layer.closeAll('loading');
parent.axgetXiaoyao('${ctx}/backstage/oa/userdistionary/delmore' , {id:str},false, function(data){
parent.layer.closeAll('loading');
if(data.code == "OK"){
swal(data.message, "您已经永久删除了这条信息。", "success");
refreshTable();
}else{
swal(data.message, "遇到未知错误!", "error");
}
});
}
function saveUserCandidateForm(){
var chk_value =[];//定义一个数组
$('input[name="userCandRolesid"]:checked').each(function(){//遍历每一个名字为nodes的复选框其中选中的执行函数
chk_value.push($(this).val());//将选中的值添加到数组chk_value中
}); });
var selectId = chk_value.join(",");
//审批角色
parent.axpostXiaoyao('${ctx}/backstage/oa/userdistionary/saveupdate',
{
fromUserDisId:$("#fromUserDisId").val(),
fromUserDisRolesid:selectId,
fromUserTyped:$("#fromUserTyped").val()
},
false ,
function(result) {
if(result.code == 'OK'){
var userDisRolesidarray = result.data;
var posthtml = "";
$(userDisRolesidarray).each(function(idx,item){
posthtml = posthtml + '<option value="' + item.id + '" hassubinfo="true">' + item.candidatename + '</option>';
});
$("#userDisRolesid").append(posthtml);
$("#userDisRolesid").chosen(selectConfig[$("#userDisRolesid")]);
parent.toastr.success(result.message);
refreshTable();
}else{
parent.toastr.error(result.message);
}
$("#modal-candidate-user-role").modal("hide");
});
} }
function _deletebu(sourceid){ function refreshAddTable(){
var str = getIdSelections() + ""; _tableAddListUserdistionary.bootstrapTable('refreshOptions',{pageNumber:1});
var tempstr = str.split(",");
if (str.length > 0 && tempstr.length > 0) {
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
} else {
parent.toastr.error("至少选择一条数据操作");
}
}
function _delete(sourceid,str){
swal({
title: "您确定要删除这条信息吗",
text: "删除后将无法恢复,请谨慎操作!",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "是的,我要删除!",
cancelButtonText: "让我再考虑一下…",
closeOnConfirm: false,
closeOnCancel: false
},
function (isConfirm) {
if (isConfirm) {
t_delete(str);
} else {
swal("已取消", "您取消了删除操作!", "error");
}
});
} }
function refreshTable(){ function rolesback() {
_tableListUserdistionary.bootstrapTable('refreshOptions',{pageNumber:1}); parent.closeItem(window.frameElement.name);
} }
</script>
</script> </body>
</html>

@ -74,7 +74,7 @@ public class UserdistionaryController extends BaseController{
Map<String,Object> queryMap = new HashMap<>(); Map<String,Object> queryMap = new HashMap<>();
if(StringUtils.isNotBlank(userDisId)){ if(StringUtils.isNotBlank(userDisId)){
queryMap.put("userDisId",userDisId);//.eq("osud.DEPTID_DIS",userDisId); queryMap.put("userDisId",userDisId);//.eq("osud.DEPTID_DIS",userDisId);
queryWrapper.eq("ut.TENANTID",userDisId);
} }
@ -110,7 +110,7 @@ public class UserdistionaryController extends BaseController{
Map<String,Object> queryMap = new HashMap<>(); Map<String,Object> queryMap = new HashMap<>();
if(StringUtils.isNotBlank(userDisId)){ if(StringUtils.isNotBlank(userDisId)){
queryMap.put("userDisId",userDisId);//.eq("osud.DEPTID_DIS",userDisId); queryMap.put("userDisId",userDisId);//.eq("osud.DEPTID_DIS",userDisId);
queryWrapper.eq("ut.TENANTID",userDisId);
} }
IPage<UserDistionaryVo> page = this.userdistionaryService.selectUserNoUd(paramterPage,queryWrapper,queryMap);; IPage<UserDistionaryVo> page = this.userdistionaryService.selectUserNoUd(paramterPage,queryWrapper,queryMap);;
@ -124,15 +124,13 @@ public class UserdistionaryController extends BaseController{
@PostMapping("/save") @PostMapping("/save")
public ResultVo saveUserdistionary(HttpServletResponse response,HttpServletRequest request,Userdistionary tab) throws IOException{ public ResultVo saveUserdistionary(HttpServletResponse response,HttpServletRequest request,Userdistionary tab) throws IOException{
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
String userDisId = request.getParameter("userDisId");
//获取用户集合,以英文逗号分隔 //获取用户集合,以英文逗号分隔
String userlist = request.getParameter("userlist");
String deptlist = request.getParameter("deptlist"); String deptlist = request.getParameter("deptlist");
tab.setDeptidDis(Long.parseLong(userDisId));
this.userdistionaryService.saveUserdistionary(tab,userlist,deptlist); this.userdistionaryService.saveUserdistionary(tab,null,deptlist);
return ResultVoUtil.success(); return ResultVoUtil.success();
} }
@ -143,16 +141,35 @@ public class UserdistionaryController extends BaseController{
**/ **/
@PostMapping("/saveupdate") @PostMapping("/saveupdate")
public ResultVo saveupdate(HttpServletResponse response,HttpServletRequest request) throws IOException{ public ResultVo saveupdate(HttpServletResponse response,HttpServletRequest request) throws IOException{
String userid = request.getParameter("userid");
String userdeptid = request.getParameter("userdeptid");
//用户类型
String fromUserTyped = request.getParameter("fromUserTyped");
Userdistionary userdistionary = new Userdistionary();
userdistionary.setUsertype(Integer.parseInt(fromUserTyped));
userdistionary.setUserid(Long.parseLong(userid));
userdistionary.setDeptid(Long.parseLong(userdeptid));
//保存前,清除数据
this.userdistionaryService.deleteByUseridAndDeptid(userid,userdeptid);
this.userdistionaryService.save(userdistionary);
//1、保存到OA_USERDISTIONARY_T人员归属关系
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//审批人员关系主键 //当前关联角色主键,多个使用英文逗号分隔
String fromUserDisId = request.getParameter("fromUserDisId"); String[] candidateid = request.getParameterValues("userCandRolesid");
//2、保存到OA_CANDIDATEUSER_T候选组和人员关系
//审批角色主键,以英文逗号分隔 //审批角色主键,以英文逗号分隔
String fromUserDisRolesid = request.getParameter("fromUserDisRolesid"); String fromUserDisRolesid = request.getParameter("fromUserDisRolesid");
//用户类型
String fromUserTyped = request.getParameter("fromUserTyped");
this.userdistionaryService.saveUserdistionary(fromUserDisRolesid,fromUserDisId,fromUserTyped); this.userdistionaryService.saveUserdistionary(fromUserDisRolesid,userdistionary);
return ResultVoUtil.success(); return ResultVoUtil.success();
} }

@ -62,10 +62,10 @@ public interface UserdistionaryService extends BaseService<Userdistionary> {
/** /**
* *
* @param candidateid ,使 * @param candidateid ,使
* @param userdisid * @param userdistionary
* @return * @return
*/ */
public boolean saveUserdistionary(String candidateid,String userdisid,String usertype); public boolean saveUserdistionary(String candidateid,Userdistionary userdistionary);
/** /**
@ -104,4 +104,11 @@ public interface UserdistionaryService extends BaseService<Userdistionary> {
*/ */
public int deleteByIdMore(String id); public int deleteByIdMore(String id);
/**
*
*
* @param userid
*
*/
public boolean deleteByUseridAndDeptid(String userid,String deptid);
} }

@ -36,24 +36,24 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
/** /**
* *
* @param userdistionary * @param userdistionary
* @param userList ,使
* @return * @return
*/ */
@Override @Override
public boolean saveUserdistionary(Userdistionary userdistionary,String userList,String deptlist){ public boolean saveUserdistionary(Userdistionary userdistionary,String userListdd,String deptlist){
if(StringUtils.isNotBlank(userList)){ if(StringUtils.isNotBlank(deptlist)){
String[] ul = userList.split(",");
String[] dl = deptlist.split(","); String[] dl = deptlist.split(",");
List<Userdistionary> list = new ArrayList<>(); List<Userdistionary> list = new ArrayList<>();
for(int i = 0;i < ul.length;i++){ for(int i = 0;i < dl.length;i++){
Userdistionary userdistionary1 = new Userdistionary(); Userdistionary userdistionary1 = new Userdistionary();
userdistionary1.setUsertype(userdistionary.getUsertype()); userdistionary1.setUsertype(userdistionary.getUsertype());
userdistionary1.setUserid(Long.parseLong(ul[i]));
if(null != dl[i]){ if(null != dl[i]){
//userid_deptid //userid_deptid
String[] tempDl = dl[i].split("_"); String[] tempDl = dl[i].split("_");
userdistionary1.setUserid(Long.parseLong(tempDl[0]));
userdistionary1.setDeptid(Long.parseLong(tempDl[1])); userdistionary1.setDeptid(Long.parseLong(tempDl[1]));
} }
@ -97,34 +97,30 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
/** /**
* *
* @param candidateid ,使 * @param candidateid ,使
* @param userdisid * @param userdistionary
* @return * @return
*/ */
@Override @Override
public boolean saveUserdistionary(String candidateid,String userdisid,String usertype){ public boolean saveUserdistionary(String candidateid,Userdistionary userdistionary){
if(StringUtils.isNotBlank(userdisid)){ //删除对应的关系
//删除对应的关系 candidateuserService.deleteByUserdisid(userdistionary.getId());
candidateuserService.deleteByUserdisid(Long.parseLong(userdisid));
if(StringUtils.isNotBlank(candidateid)){
if(StringUtils.isNotBlank(candidateid)){ String[] ul = candidateid.split(",");
String[] ul = candidateid.split(","); List<Candidateuser> list = new ArrayList<>();
List<Candidateuser> list = new ArrayList<>(); for(String cauid:ul){
for(String cauid:ul){
Candidateuser candidateuser = new Candidateuser();
Candidateuser candidateuser = new Candidateuser(); candidateuser.setCandidateid(Long.parseLong(cauid));
candidateuser.setCandidateid(Long.parseLong(cauid)); candidateuser.setUserdisid(userdistionary.getId());
candidateuser.setUserdisid(Long.parseLong(userdisid)); list.add(candidateuser);
list.add(candidateuser);
}
this.candidateuserService.saveBatch(list);
} }
}
Userdistionary userdistionary = this.selectDtoById(Long.parseLong(userdisid));
userdistionary.setUsertype(Integer.parseInt(usertype));
return this.updateById(userdistionary);
return this.candidateuserService.saveBatch(list);
}
return false;
} }
/** /**
@ -203,8 +199,33 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
query.ne("u.LOGINNAME","admin"); query.ne("u.LOGINNAME","admin");
query.ne("u.LOGINNAME","zhangyong"); query.ne("u.LOGINNAME","zhangyong");
IPage<UserDistionaryVo> iPage = this.userdistionarymybatisdao.selectUserNoUd(page,query,queryMap);
for(UserDistionaryVo userDistionaryVo:iPage.getRecords()){
return this.userdistionarymybatisdao.selectUserNoUd(page,query,queryMap); //查询用户所在的审批组
List<Candidateuser> candidateuserList = candidateuserService.selectList(null,userDistionaryVo.getUserdistionaryid());
StringBuffer stringBuffer = new StringBuffer();
StringBuffer stringBufferId = new StringBuffer();
//便利审批组
for(Candidateuser candidateuser:candidateuserList){
if(stringBuffer.length() > 0){
stringBuffer.append(",");
stringBuffer.append(candidateuser.getCandidate().getCandidatename());
stringBufferId.append(",");
stringBufferId.append(candidateuser.getCandidate().getId().toString());
}else{
stringBuffer.append(candidateuser.getCandidate().getCandidatename());
stringBufferId.append(candidateuser.getCandidate().getId().toString());
}
}
//审批组名称赋值
userDistionaryVo.setCandidatename(stringBuffer.toString());
userDistionaryVo.setCandidateid(stringBufferId.toString());
}
return iPage;
} }
/** /**
* *
@ -308,6 +329,29 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
return userDistionaryVoIPage; return userDistionaryVoIPage;
} }
/**
*
*
* @param userid
*
*/
public boolean deleteByUseridAndDeptid(String userid,String deptid){
//1、查询oa_userdistionary_t表
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("USERID",userid);
queryWrapper.eq("DEPTID",deptid);
List<Userdistionary> list = this.userdistionarymybatisdao.selectList(queryWrapper);
//2、通过oa_userdistionary_t表集合删除oa_candidateuser_t
for(Userdistionary userdistionary:list){
//删除对应的关系
candidateuserService.deleteByUserdisid(userdistionary.getId());
}
//3、删除oa_userdistionary_t表
return this.remove(queryWrapper);
}
@Override @Override
public int deleteByIdMore(String id) { public int deleteByIdMore(String id) {
int isok = 0; int isok = 0;

@ -91,6 +91,10 @@ public class UserDistionaryVo implements java.io.Serializable, BaseDto {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private long userdistionaryid; private long userdistionaryid;
@Schema(description = "部门流水号流水号")
@JsonSerialize(using = ToStringSerializer.class)
private Long departid;
@Schema(description = "审批流节点是否跳过标志默认为0前端人员1后勤人员0审批流所有节点1跳过店长审批") @Schema(description = "审批流节点是否跳过标志默认为0前端人员1后勤人员0审批流所有节点1跳过店长审批")
@TableField(value="USERTYPE") @TableField(value="USERTYPE")
private Integer userOsudType; private Integer userOsudType;

@ -30,7 +30,8 @@
<result column="PSDUPDATETIME" property="psdupdatetime" jdbcType="BIGINT"/> <result column="PSDUPDATETIME" property="psdupdatetime" jdbcType="BIGINT"/>
<result column="USERDISTIONARYID" property="userdistionaryid" jdbcType="BIGINT"/> <result column="USERDISTIONARYID" property="userdistionaryid" jdbcType="BIGINT"/>
<result column="userOsudType" property="userOsudType" jdbcType="INTEGER"/> <result column="userOsudType" property="userOsudType" jdbcType="INTEGER"/>
<collection property="deptlist" select="cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao.selectDeptByUserid" javaType="java.util.ArrayList" column="ID"/> <result column="DEPARTID" property="departid" jdbcType="BIGINT"/>
<collection property="deptlist" select="cn.jyjz.xiaoyao.admin.dataDao.DepartmentMybatisDao.selectById" javaType="java.util.ArrayList" column="DEPARTID"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
ID AS id, ID AS id,
@ -95,10 +96,10 @@
u.UPDATETIME AS updatetime, u.UPDATETIME AS updatetime,
u.PSDUPDATETIME AS psdupdatetime, u.PSDUPDATETIME AS psdupdatetime,
osud.ID AS userdistionaryid, osud.ID AS userdistionaryid,
osud.USERTYPE AS userOsudType osud.USERTYPE AS userOsudType,
uo.DEPARTID AS departid
from S_USER_T u from S_USER_T u
RIGHT JOIN S_USEROBJECT_T uo ON uo.USERID = u.ID RIGHT JOIN S_USEROBJECT_T uo ON uo.USERID = u.ID
RIGHT JOIN s_user_tenant_t ut on ut.USERID = u.ID
RIGHT JOIN RIGHT JOIN
( (
SELECT MIN(osudtemp.ID),osudtemp.*,cosudtemp.CANDIDATEID AS CANDIDATEID FROM OA_USERDISTIONARY_T osudtemp SELECT MIN(osudtemp.ID),osudtemp.*,cosudtemp.CANDIDATEID AS CANDIDATEID FROM OA_USERDISTIONARY_T osudtemp
@ -107,7 +108,7 @@
where osudtemp.DEPTID_DIS = #{querymap.userDisId} where osudtemp.DEPTID_DIS = #{querymap.userDisId}
</if> </if>
GROUP BY osudtemp.USERID GROUP BY osudtemp.USERID
) osud ON osud.USERID = u.ID ) osud ON osud.USERID = u.ID and uo.DEPARTID = osud.DEPTID
<if test="null != querymap and null != querymap.userDisId"> <if test="null != querymap and null != querymap.userDisId">
and osud.DEPTID_DIS = #{querymap.userDisId} and osud.DEPTID_DIS = #{querymap.userDisId}
@ -137,16 +138,14 @@
u.CREATEDATE AS createdate, u.CREATEDATE AS createdate,
u.UPDATEUSER AS updateuser, u.UPDATEUSER AS updateuser,
u.UPDATETIME AS updatetime, u.UPDATETIME AS updatetime,
u.PSDUPDATETIME AS psdupdatetime u.PSDUPDATETIME AS psdupdatetime,
from S_USER_T u uo.DEPARTID AS departid,
RIGHT JOIN S_USEROBJECT_T uo ON uo.USERID = u.ID osudtemp.id AS userdistionaryid
RIGHT JOIN s_user_tenant_t ut on ut.USERID = u.ID from S_USER_T u,S_USEROBJECT_T uo
LEFT JOIN OA_USERDISTIONARY_T osudtemp ON osudtemp.USERID = uo.USERID AND osudtemp.DEPTID = uo.DEPARTID
${ew.customSqlSegment} ${ew.customSqlSegment}
and u.id not IN ( and uo.USERID = u.ID
SELECT osud.USERID FROM OA_USERDISTIONARY_T osud
<if test="null != querymap and null != querymap.userDisId">
where osud.DEPTID_DIS = #{querymap.userDisId}
</if>
)
</select> </select>
</mapper> </mapper>

Loading…
Cancel
Save