Merge remote-tracking branch 'origin/test' into test

pull/110/head^2
shuliYao 1 year ago
commit 49b671a8b3

@ -89,20 +89,10 @@
<div class="main-content">
<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="userlist" name="userlist">
<input type="hidden" id="deptlist" name="deptlist">
<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="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({
url: '${ctx}/backstage/oa/userdistionary/listnoin' ,
@ -283,6 +260,7 @@
return row.id + "_" + row.departmentId;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
selectionIdDepts = _[func](selectionIdDepts, idDepts);
@ -327,13 +305,11 @@
},
submitHandler: function (){
if(selectionIds.length < 1){
if(selectionIdDepts.length < 1){
parent.toastr.success("选择要添加的用户。");
return;
}
$("#userlist").val(selectionIds.join());
$("#deptlist").val(selectionIdDepts.join());
parent.layer.load();

@ -4,11 +4,11 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>人员归属关系</title>
<#include "/head/headlist.html" />
<#include "/head/headaddedit.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 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">
.jcrop-holder #preview-pane {
@ -56,49 +56,74 @@
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content animated fadeInRight">
<div class="ibox ">
<div class="ibox-content">
<div class="ibox-content">
<form id="searcheuserform" name="searcheuserform" class="form-inline">
<div class="form-group">
<div class="input-group">
<select data-placeholder="选择租户..." class="chosen-select" name='userDisId' id='userDisId' class="chosen-select" style="width:350px;" tabindex="2">
</select>
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>设置流程权限</h5>
</div>
<div class="col-sm-3" id="departDivTree">
<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 class="form-group">
<div class="input-group">
<select data-placeholder="审批角色..." class="chosen-select" name='userDisRolesid' id='userDisRolesid' class="chosen-select" style="width:350px;" tabindex="2">
<option value="">请选择审批角色</option>
</select>
<div class="ibox-content">
<div id="zTreeDemoBackground left">
<ul id="departZtreeUl" class="ztree"></ul>
</div>
</div>
</div>
<div class="form-group">
<input name='search_username' id='search_username' class='form-control' placeholder='姓名--'/>
</div>
<div class="form-group">
<a class="btn btn-primary btn-rounded btn-sm" onclick="refreshTable()"><i class="fa fa-search"></i>&nbsp;搜索</a>
</div>
</form>
</div>
</div>
</div>
<div class="ibox-content">
<div class="row row-lg">
<div class="col-sm-12">
<div class="container-div">
<div class="btn-group-sm" id="_mybutton" role="group">
</div>
<div class="col-sm-9">
<div class="ibox ">
<div class="ibox-content">
<div class="main-content">
<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="deptlist" name="deptlist">
<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">
<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>
<br/>
</div>
</div>
<div class="col-sm-12 select-table table-striped" >
<table id="Userdistionary_list" ></table>
</div>
</div>
</div>
</div>
<!-- 展示流程图的 窗口 -->
<div id="modal-candidate-user-role" class="modal fade" aria-hidden="true">
<div class="modal-dialog" role="document" style="width: auto">
@ -110,7 +135,8 @@
<div class="modal-body">
<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">
<div class="form-group">
<div class="input-group" id="fromUserNameDiv">
@ -134,47 +160,92 @@
</div>
</div>
</div>
<#include "/head/footlist.html" />
<script src="${ctx}/static/js/plugins/jcrop/js/jquery.color.js" type="text/javascript"></script>
<script src="${ctx}/static/js/plugins/jcrop/js/jquery.Jcrop.js" type="text/javascript"></script>
<script src="${ctx}/static/js/plugins/iCheck/icheck.min.js"></script>
<#include "/head/footadd.html" />
<script src="${ctx}/static/js/plugins/bootstrap-table/bootstrap-table.min.js"></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/jqueryzTree/js/jquery.ztree.all.min.js"></script>
<!-- Chosen -->
<script src="${ctx}/static/js/plugins/chosen/chosen.jquery.js"></script>
</body>
</html>
<script type="text/javascript">
<script type="text/javascript">
var _tableListUserdistionary;
var jsptoolbar = '';
var jspOperation = '';
var userDisRolesidarray;
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%"
var _tableAddListUserdistionary;
var selectionIds = []; //保存选中ids
var selectionIdDepts = []; //保存选中用户机构主键
var _deptTree;
var setting = {
data: {
simpleData: {
enable: true
}
}, callback: {onClick: zTreeOnClick }
};
function zTreeOnClick(event, treeId, treeNode) {
if(treeNode.id != '0'){
$("#search_parentid").val(treeNode.id);
}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) {
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")]);
$("#collapes_linkclose").click(function () {
_deptTree.expandAll(false);
$(this).hide();
$("#collapes_linkopen").show();
});
//选中事件操作数组
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) {
@ -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 ,
function(data){
if(data.code == "OK"){
jsptoolbar = data.data.Jsptoolbar;
jspOperation = data.data.JspOperation;
$("#_mybutton").empty();
$(jsptoolbar).each(function (i, toolbar) {
if(toolbar.methodid != '104'){
$("#_mybutton").append('<button class="btn sbold ' + toolbar.img + '" onClick="' + toolbar.actionmethod + '(\'${resourceid}' + toolbar.methodid + '\')"> ' + ' <i class="fa ' + toolbar.methodkey + '"></i> ' + toolbar.text + '</button>&nbsp');
}
});
_tableListUserdistionary = $('#Userdistionary_list').bootstrapTable({
url: '${ctx}/backstage/oa/userdistionary/list' ,
pagination: true, //是否显示分页(*
pageNumber:1, //初始化加载第一页,默认第一页
pageSize: 10, //每页的记录行数(*
sidePagination: "server",
height: "100%",
pageList: [10, 25, 50],
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,
userDisId:$("#userDisId").val() ,
search_username:'{"value":"' + $("#search_username").val() + '","op":"equal","type":"string"}',
userDisRolesid: $("#userDisRolesid").val()
};
},
responseHandler:function(res){
return{"rows": res.data.records, "total": res.data.total};
},
columns: [
{checkbox: true},
{ width:150,valign: "middle",field:'username',title:'用户名',sortable:false},
{ width:150,valign: "middle",field:'loginname',title:'登录账号',sortable:false},
{ width:150,valign: "middle",field:'departname',title:'所属部门',sortable:false},
{ width:150,valign: "middle",field:'candidatename',title:'审批权限组',sortable:false},
{
width:200,
field: 'id',
title: '操作',
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;";
return listOperation;
}
}
]
});
{ width:150,valign: "middle",field:'username',title:'用户名',sortable:true},
{ width:150,valign: "middle",field:'loginname',title:'登录账号',sortable:true},
{ width:150,valign: "middle",field:'departname',title:'所属部门',sortable:true},
{ width:150,valign: "middle",field:'candidatename',title:'审批权限组',sortable:false},
{
width:200,
field: 'id',
title: '操作',
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;";
return listOperation;
}
}
]
});
//绑定选中事件、取消事件、全部选中、全部取消
_tableAddListUserdistionary.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
var idDepts = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id + "_" + row.departmentId;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
selectionIdDepts = _[func](selectionIdDepts, idDepts);
});
$("#Userdistionaryform").attr("action","${ctx}/backstage/oa/userdistionary/save");
var form1 = $('#Userdistionaryform');
var error1 = $('.alert-danger', form1);
form1.validate({
debug: true,
errorElement: 'span',
errorClass: 'help-block help-block-error',
focusInvalid: false,
ignore: ":hidden",
errorPlacement: function (error, element) {
if (element.parent(".input-group").size() > 0) {
error.insertAfter(element.parent(".input-group"));
} else if (element.attr("data-error-container")) {
error.appendTo(element.attr("data-error-container"));
} else if (element.parents('.radio-list').size() > 0) {
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() {
return $.map(_tableListUserdistionary.bootstrapTable('getSelections'), function(row) {
return row.userdistionaryid
function saveUserCandidateForm(){
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){
$("#modal-candidate-user-role").modal();
$("#modal-candidate-user-role").css("z-index",(parent.getMaxZIndex() + 1));
var getdata = _tableListUserdistionary.bootstrapTable('getData');
var getdata = _tableAddListUserdistionary.bootstrapTable('getData');
var task = getdata[index];
$("#fromUserId").val(task.id);
$("#fromDeptId").val(task.departid);
console.log(task)
console.log("--------------------------------")
//查询当前人员已经设置的角色
var candidateid = task.candidateid;
var candidateidArray = candidateid.split(",");
@ -306,119 +484,24 @@
$("#fromUserNameDiv").html("姓名:" + task.username);
}
function initDepartTree() {
function setCandiDept(index){
var getdata = _tableListUserdistionary.bootstrapTable('getData');
var task = getdata[index];
//查询当前人员已经设置的角色
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中
if(undefined != _deptTree){
_deptTree.destroy();
}
parent.axgetXiaoyao("${ctx}/backstage/admin/department/showDeptJsTree",null,true ,function (data) {
_deptTree = $.fn.zTree.init($("#departZtreeUl"),setting, data);
_deptTree.expandAll(true);
});
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){
var str = getIdSelections() + "";
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 refreshAddTable(){
_tableAddListUserdistionary.bootstrapTable('refreshOptions',{pageNumber:1});
}
function refreshTable(){
_tableListUserdistionary.bootstrapTable('refreshOptions',{pageNumber:1});
function rolesback() {
parent.closeItem(window.frameElement.name);
}
</script>
</script>
</body>
</html>

@ -636,7 +636,8 @@ public class FlowTaskController extends BaseController {
public ResultVo removeTask(HttpServletRequest request) {
String fromid = request.getParameter("fromid");
String taskid = request.getParameter("taskid");
return flowTaskService.removeTask(fromid, taskid);
String deptid = request.getParameter("deptid");
return flowTaskService.removeTask(fromid, taskid,deptid);
//return ResultVoUtil.success();
}
@ -656,7 +657,8 @@ public class FlowTaskController extends BaseController {
public ResultVo historyTask(HttpServletRequest request) {
String fromid = request.getParameter("fromid");
String taskid = request.getParameter("buessinessno");
return flowTaskService.removeTask(fromid, taskid);
String deptid = request.getParameter("deptid");
return flowTaskService.removeTask(fromid, taskid,deptid);
//return ResultVoUtil.success();
}

@ -30,6 +30,8 @@ public class FlowApprove {
*/
private String failCauseId;
//公司主键,原机构主键
private String deptid;
/**
*
*/

@ -22,7 +22,7 @@ public interface IFlowInstanceService {
* @param servicename
* @return
*/
public boolean startProcessInstanceById(String procDefId, Map<String,Object> variables, HttpServletRequest request,String formid,String servicename);
public boolean startProcessInstanceById(String procDefId, Map<String,Object> variables, HttpServletRequest request,String formid,String servicename,String deptid);
/**
*
@ -32,5 +32,5 @@ public interface IFlowInstanceService {
* @param servicename
* @return
*/
public boolean startProcessInstanceById(String procDefId,String userName,String createuser, String formid,String servicename);
public boolean startProcessInstanceById(String procDefId,String userName,String createuser, String formid,String servicename,String deptid);
}

@ -54,7 +54,7 @@ public interface IFlowTaskService {
* @param
* @param processDefinition
*/
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition);
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition,String deptid);
void sendMsg(OcrTaskchildPicture model, UserToken userToken);
void finishedList(PageUtils pageUtils, HttpServletRequest request);
@ -142,7 +142,7 @@ public interface IFlowTaskService {
*
* @param processInstanceId
*/
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId);
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid);
/**
*
@ -170,7 +170,7 @@ public interface IFlowTaskService {
*
* @param fromid
*/
public ResultVo removeTask(String fromid, String taskid);
public ResultVo removeTask(String fromid, String taskid,String deptid);
/**
*

@ -45,7 +45,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
private UserViewapproeService userViewApproeService;
@Override
public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request, String formid, String servicename) {
public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request, String formid, String servicename,String deptid) {
IFormCustomService iFormCustomService = null;
if (StringUtils.isNotBlank(servicename)) {
@ -87,7 +87,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId(),deptid);
if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);
@ -128,7 +128,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
}
@Override
public boolean startProcessInstanceById(String procDefId, String userName, String createuser, String formid, String servicename) {
public boolean startProcessInstanceById(String procDefId, String userName, String createuser, String formid, String servicename,String depti) {
IFormCustomService iFormCustomService = null;
if (StringUtils.isNotBlank(servicename)) {
@ -159,7 +159,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId(),depti);
if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);

@ -457,7 +457,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
variables.put("approvd", approve.getResult());
OcrTaskchildPicture model = ocrTaskchildPictureService.getById(Long.parseLong(flowTaskInfo.getFormId()));
if (approve.getResult()) {
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve);
disposeSucceedTask(task, processDefinition, variables, model, flowTaskInfo.getFormId(), userToken, approve,approve.getDeptid());
} else {
disposeFailureTask(task, flowTaskInfo.getFormId(), variables, approve);
@ -477,10 +477,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
/**
*
*/
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables, OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve) throws Exception {
private void disposeSucceedTask(Task task, ProcessDefinition processDefinition, Map<String, Object> variables,
OcrTaskchildPicture model, String formId, UserToken userToken, FlowApprove approve,String deptid) throws Exception {
//进入下一个节点
taskService.complete(task.getId(), variables);
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition);
updateAssignee(task.getProcessInstanceId(), task.getProcessDefinitionId(), processDefinition,deptid);
String category = processDefinition.getCategory();
Category categoryDto = this.categoryService.getCategory(category);
IFormCustomService iFormCustomService = SpringUtils.getBean(categoryDto.getServicename());
@ -588,10 +589,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
* @param processDefinition
*/
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition
processDefinition) {
processDefinition,String deptid) {
//如果是多个候选人或者是候选组,做任务拾取
FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId);
FlowTaskCompleteVO flowTaskCompleteVO = updateNowTaskAssignee(processInstanceId, processDefinitionId,deptid);
if (null != flowTaskCompleteVO) {
@ -680,7 +681,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
*
* @param processInstanceId
*/
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId) {
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId,String deptid) {
FlowTaskCompleteVO flowTaskCompleteVO = null;
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
@ -717,7 +718,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
//发起人员登录账号
String startUserId = hi.getStartUserId();
//通过候选组主键,查询审批人员信息,并自动拾取
loginuser = candidateuserService.getClaimUser(startUserId, groupid);
loginuser = candidateuserService.getClaimUser(startUserId, groupid,deptid);
if (StringUtils.isNotBlank(loginuser)) {
taskService.claim(task.getId(), loginuser);
}
@ -1774,7 +1775,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
public ResultVo removeTask(String fromid, String taskid) {
public ResultVo removeTask(String fromid, String taskid,String deptid) {
// 获取当前任务
OcrTaskchildPicture ocrTaskchildPicture = this.ocrTaskchildPictureService.selectDtoById(Long.parseLong(fromid));
@ -1793,7 +1794,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
String historyProcessDefinitionId = terminatedInstances.get(0).getProcessDefinitionId();
boolean isStart = iFlowInstanceService.startProcessInstanceById(historyProcessDefinitionId, ocrTaskchildPicture.getCreateusername(),
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename());
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid);
if (isStart) {
ResultVoUtil.success();
@ -1813,7 +1814,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
Category category = this.categoryService.getById(ocrTaskchildPicture.getCategoryid());
boolean isStart = iFlowInstanceService.startProcessInstanceById(task.getProcessDefinitionId(), ocrTaskchildPicture.getCreateusername(),
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename());
ocrTaskchildPicture.getCreateuser(), ocrTaskchildPicture.getId().toString(), category.getServicename(),deptid);
if (isStart) {
ResultVoUtil.success();

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

@ -46,5 +46,5 @@ public interface CandidateuserService extends BaseService<Candidateuser> {
* @param candidateid
* @return
*/
public String getClaimUser(String startUserId,String candidateid);
public String getClaimUser(String startUserId,String candidateid,String deptid);
}

@ -62,10 +62,10 @@ public interface UserdistionaryService extends BaseService<Userdistionary> {
/**
*
* @param candidateid ,使
* @param userdisid
* @param userdistionary
* @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);
/**
*
*
* @param userid
*
*/
public boolean deleteByUseridAndDeptid(String userid,String deptid);
}

@ -116,7 +116,7 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
* @param candidateid
* @return
*/
public String getClaimUser(String loginname,String candidateid){
public String getClaimUser(String loginname,String candidateid,String deptid){
//排除不在同一个店中的人员
List<Userdistionary> userdistionaryList = userdistionaryService.selectListByCandidateid(candidateid,loginname);
@ -135,14 +135,10 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
//任务审批人员
User user = null;
//通过登录账号查询所在审批关系插查询oa_userdistionary_t表
List<Userdistionary> list = userdistionaryService.selectListByLoginname(loginname);
//以店面作为主键
Map<Long,Userdistionary> userdistionaryMap = list.stream().collect(Collectors.toMap(Userdistionary::getDeptidDis, Function.identity(),(key1,key2) ->key2));
//如果候选组有多个人,优先确定是否在同一个店面,
for(Userdistionary userdistionary:userdistionaryList){
if(null != userdistionaryMap.get(userdistionary.getDeptidDis())){
if(userdistionary.getDeptid().toString().equals(deptid)){
//如果user不为空说明有存在
if(null != user){
user = null;
@ -157,19 +153,6 @@ public class CandidateuserServiceImpl extends BaseServiceImpl<CandidateuserMybat
return user.getLoginname();
}
//以部门作为主键
Map<Long,Userdistionary> userdistionaryDeptMap = list.stream().collect(Collectors.toMap(Userdistionary::getDeptid, Function.identity(),(key1,key2) ->key2));
//如果在同一个店面,也是多个人优先选同部门
for(Userdistionary userdistionary:userdistionaryList){
if(null != userdistionaryDeptMap.get(userdistionary.getDeptid())){
//如果user不为空说明有存在
if(null != user){
user = null;
break;
}
user = this.userService.selectDtoById(userdistionary.getUserid());
}
}
//如果user不为空说明只有一个审批人员
if(null != user){
return user.getLoginname();

@ -36,24 +36,24 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
/**
*
* @param userdistionary
* @param userList ,使
* @return
*/
@Override
public boolean saveUserdistionary(Userdistionary userdistionary,String userList,String deptlist){
public boolean saveUserdistionary(Userdistionary userdistionary,String userListdd,String deptlist){
if(StringUtils.isNotBlank(userList)){
String[] ul = userList.split(",");
if(StringUtils.isNotBlank(deptlist)){
String[] dl = deptlist.split(",");
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();
userdistionary1.setUsertype(userdistionary.getUsertype());
userdistionary1.setUserid(Long.parseLong(ul[i]));
if(null != dl[i]){
//userid_deptid
String[] tempDl = dl[i].split("_");
userdistionary1.setUserid(Long.parseLong(tempDl[0]));
userdistionary1.setDeptid(Long.parseLong(tempDl[1]));
}
@ -97,34 +97,30 @@ public class UserdistionaryServiceImpl extends BaseServiceImpl<UserdistionaryMyb
/**
*
* @param candidateid ,使
* @param userdisid
* @param userdistionary
* @return
*/
@Override
public boolean saveUserdistionary(String candidateid,String userdisid,String usertype){
if(StringUtils.isNotBlank(userdisid)){
//删除对应的关系
candidateuserService.deleteByUserdisid(Long.parseLong(userdisid));
if(StringUtils.isNotBlank(candidateid)){
String[] ul = candidateid.split(",");
List<Candidateuser> list = new ArrayList<>();
for(String cauid:ul){
Candidateuser candidateuser = new Candidateuser();
candidateuser.setCandidateid(Long.parseLong(cauid));
candidateuser.setUserdisid(Long.parseLong(userdisid));
list.add(candidateuser);
}
this.candidateuserService.saveBatch(list);
public boolean saveUserdistionary(String candidateid,Userdistionary userdistionary){
//删除对应的关系
candidateuserService.deleteByUserdisid(userdistionary.getId());
if(StringUtils.isNotBlank(candidateid)){
String[] ul = candidateid.split(",");
List<Candidateuser> list = new ArrayList<>();
for(String cauid:ul){
Candidateuser candidateuser = new Candidateuser();
candidateuser.setCandidateid(Long.parseLong(cauid));
candidateuser.setUserdisid(userdistionary.getId());
list.add(candidateuser);
}
}
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","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;
}
/**
*
*
* @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
public int deleteByIdMore(String id) {
int isok = 0;

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

@ -38,7 +38,7 @@ public interface OcrTaskchildPictureService extends BaseService<OcrTaskchildPict
* @param tenantId
* @param sysUser
*/
public void createTask(List<OcrPicture> ocrPictureList, String tenantId,UserToken sysUser);
public void createTask(List<OcrPicture> ocrPictureList, String tenantId,UserToken sysUser,String deptid);
/**

@ -343,7 +343,7 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
//4.开始更新 图片历史比对数据结果
logger.info("查重任务:{},开启创建任务",checkDuplicateId);
if (CollectionUtils.isNotEmpty(ocrPictureList)) {
ocrTaskchildPictureService.createTask(ocrPictureList, ocrPictureList.get(0).getTenantId().toString(), sysUser);
ocrTaskchildPictureService.createTask(ocrPictureList, ocrPictureList.get(0).getTenantId().toString(), sysUser,tenantId);
}
return true;
}

@ -215,7 +215,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
null,
request,
ocrTaskchildPicture.getId().toString(),
category.getServicename()
category.getServicename(),
tenantId
);
if (havePoint) {
@ -474,7 +475,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
null,
request,
ocrTaskchildPicture.getId().toString(),
category.getServicename()
category.getServicename(),
tenantId
);
//TODO 需要测试
ocrPicture.setTaskchildpictureid(ocrTaskchildPicture.getId().toString());

@ -314,7 +314,7 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
}
@Override
public void createTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken userToken) {
public void createTask(List<OcrPicture> ocrPictureList, String tenantId, UserToken userToken,String deptid) {
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//用于标记相似度是否存在百分百的情况
for (OcrPicture ocrPicture : ocrPictureList) {
@ -342,7 +342,8 @@ public class OcrTaskchildPictureServiceImpl extends BaseServiceImpl<OcrTaskchild
null,
request,
ocrTaskchildPicture.getId().toString(),
department.getServicename()
department.getServicename(),
deptid
);
IFormCustomService iFormCustomService = SpringUtils.getBean(department.getServicename());
FlowModelVO formData = iFormCustomService.getForm(ocrTaskchildPicture.getId().toString());

@ -30,7 +30,8 @@
<result column="PSDUPDATETIME" property="psdupdatetime" jdbcType="BIGINT"/>
<result column="USERDISTIONARYID" property="userdistionaryid" jdbcType="BIGINT"/>
<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>
<sql id="Base_Column_List">
ID AS id,
@ -95,10 +96,10 @@
u.UPDATETIME AS updatetime,
u.PSDUPDATETIME AS psdupdatetime,
osud.ID AS userdistionaryid,
osud.USERTYPE AS userOsudType
osud.USERTYPE AS userOsudType,
uo.DEPARTID AS departid
from S_USER_T u
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
(
SELECT MIN(osudtemp.ID),osudtemp.*,cosudtemp.CANDIDATEID AS CANDIDATEID FROM OA_USERDISTIONARY_T osudtemp
@ -107,7 +108,7 @@
where osudtemp.DEPTID_DIS = #{querymap.userDisId}
</if>
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">
and osud.DEPTID_DIS = #{querymap.userDisId}
@ -137,16 +138,14 @@
u.CREATEDATE AS createdate,
u.UPDATEUSER AS updateuser,
u.UPDATETIME AS updatetime,
u.PSDUPDATETIME AS psdupdatetime
from S_USER_T u
RIGHT JOIN S_USEROBJECT_T uo ON uo.USERID = u.ID
RIGHT JOIN s_user_tenant_t ut on ut.USERID = u.ID
u.PSDUPDATETIME AS psdupdatetime,
uo.DEPARTID AS departid,
osudtemp.id AS userdistionaryid
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}
and u.id not IN (
SELECT osud.USERID FROM OA_USERDISTIONARY_T osud
<if test="null != querymap and null != querymap.userDisId">
where osud.DEPTID_DIS = #{querymap.userDisId}
</if>
)
and uo.USERID = u.ID
</select>
</mapper>

Loading…
Cancel
Save