feat(会签): 会签人员动态新增

approve-sys
tony 3 years ago
parent 63ab0482c6
commit f6a9dfb7a3

@ -35,11 +35,21 @@ public class ProcessConstants {
*/ */
public static final String PROCESS_APPROVAL = "approval"; public static final String PROCESS_APPROVAL = "approval";
/**
*
*/
public static final String PROCESS_MULTI_INSTANCE_USER = "userList";
/** /**
* nameapace * nameapace
*/ */
public static final String NAMASPASE = "http://flowable.org/bpmn"; public static final String NAMASPASE = "http://flowable.org/bpmn";
/**
*
*/
public static final String PROCESS_MULTI_INSTANCE = "multiInstance";
/** /**
* dataType * dataType
*/ */

@ -172,9 +172,6 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl
// 设置流程发起人Id到流程中 // 设置流程发起人Id到流程中
Long userId = SecurityUtils.getLoginUser().getUser().getUserId(); Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
identityService.setAuthenticatedUserId(userId.toString()); identityService.setAuthenticatedUserId(userId.toString());
List<SysUser> users = sysUserService.selectUserList(new SysUser());
List<String> collect = users.stream().map(sysUser -> sysUser.getUserId().toString()).collect(Collectors.toList());
variables.put("userList", collect);
variables.put(ProcessConstants.PROCESS_INITIATOR, userId); variables.put(ProcessConstants.PROCESS_INITIATOR, userId);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables); ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables);
// 给第一步申请人节点设置任务执行人和意见 todo:第一个节点不设置为申请人节点有点问题? // 给第一步申请人节点设置任务执行人和意见 todo:第一个节点不设置为申请人节点有点问题?

@ -877,33 +877,45 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
List<UserTask> nextUserTask = FindNextNodeUtil.getNextUserTasks(repositoryService, task, new HashMap<>()); List<UserTask> nextUserTask = FindNextNodeUtil.getNextUserTasks(repositoryService, task, new HashMap<>());
if (CollectionUtils.isNotEmpty(nextUserTask)) { if (CollectionUtils.isNotEmpty(nextUserTask)) {
for (UserTask userTask : nextUserTask) { for (UserTask userTask : nextUserTask) {
MultiInstanceLoopCharacteristics characteristics = userTask.getLoopCharacteristics(); MultiInstanceLoopCharacteristics multiInstance = userTask.getLoopCharacteristics();
String dataType = userTask.getAttributeValue(ProcessConstants.NAMASPASE, ProcessConstants.PROCESS_CUSTOM_DATA_TYPE); // 会签节点
String userType = userTask.getAttributeValue(ProcessConstants.NAMASPASE, ProcessConstants.PROCESS_CUSTOM_USER_TYPE); if (Objects.nonNull(multiInstance)) {
List<SysUser> list = sysUserService.selectUserList(new SysUser());
if (ProcessConstants.DATA_TYPE.equals(dataType)) {
// 指定单个人员 flowNextDto.setVars(ProcessConstants.PROCESS_MULTI_INSTANCE_USER);
if (ProcessConstants.USER_TYPE_ASSIGNEE.equals(userType)) { flowNextDto.setType(ProcessConstants.PROCESS_MULTI_INSTANCE);
List<SysUser> list = sysUserService.selectUserList(new SysUser()); flowNextDto.setUserList(list);
} else {
flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL);
flowNextDto.setType(ProcessConstants.USER_TYPE_ASSIGNEE); // 读取自定义节点属性 判断是否是否需要动态指定任务接收人员、组
flowNextDto.setUserList(list); String dataType = userTask.getAttributeValue(ProcessConstants.NAMASPASE, ProcessConstants.PROCESS_CUSTOM_DATA_TYPE);
} String userType = userTask.getAttributeValue(ProcessConstants.NAMASPASE, ProcessConstants.PROCESS_CUSTOM_USER_TYPE);
// 候选人员(多个)
if (ProcessConstants.USER_TYPE_USERS.equals(userType)) { if (ProcessConstants.DATA_TYPE.equals(dataType)) {
List<SysUser> list = sysUserService.selectUserList(new SysUser()); // 指定单个人员
if (ProcessConstants.USER_TYPE_ASSIGNEE.equals(userType)) {
List<SysUser> list = sysUserService.selectUserList(new SysUser());
flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL);
flowNextDto.setType(ProcessConstants.USER_TYPE_ASSIGNEE);
flowNextDto.setUserList(list);
}
// 候选人员(多个)
if (ProcessConstants.USER_TYPE_USERS.equals(userType)) {
List<SysUser> list = sysUserService.selectUserList(new SysUser());
flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL); flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL);
flowNextDto.setType(ProcessConstants.USER_TYPE_USERS); flowNextDto.setType(ProcessConstants.USER_TYPE_USERS);
flowNextDto.setUserList(list); flowNextDto.setUserList(list);
} }
// 候选组 // 候选组
if (ProcessConstants.USER_TYPE_ROUPS.equals(userType)) { if (ProcessConstants.USER_TYPE_ROUPS.equals(userType)) {
List<SysRole> sysRoles = sysRoleService.selectRoleAll(); List<SysRole> sysRoles = sysRoleService.selectRoleAll();
flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL);
flowNextDto.setType(ProcessConstants.USER_TYPE_ROUPS); flowNextDto.setVars(ProcessConstants.PROCESS_APPROVAL);
flowNextDto.setRoleList(sysRoles); flowNextDto.setType(ProcessConstants.USER_TYPE_ROUPS);
flowNextDto.setRoleList(sysRoles);
}
} }
} }
} }

@ -204,11 +204,6 @@ export default {
this.finished = this.$route.query && this.$route.query.finished this.finished = this.$route.query && this.$route.query.finished
}, },
// watch:{
// $route(){
// this.finished = this.$route.query && this.$route.query.finished
// }
// },
mounted() { mounted() {
// // // //
// setTimeout(() => { // setTimeout(() => {
@ -306,13 +301,16 @@ export default {
} else if (data.type === 'candidateUsers') { } else if (data.type === 'candidateUsers') {
this.userDataList = res.data.userList; this.userDataList = res.data.userList;
this.taskForm.multiple = true; this.taskForm.multiple = true;
} else { } else if (data.type === 'candidateGroups') {
res.data.roleList.forEach(role =>{ res.data.roleList.forEach(role => {
role.userId = role.roleId; role.userId = role.roleId;
role.nickName = role.roleName; role.nickName = role.roleName;
}) })
this.userDataList = res.data.roleList; this.userDataList = res.data.roleList;
this.taskForm.multiple = false; this.taskForm.multiple = false;
} else if (data.type === 'multiInstance') {
this.userDataList = res.data.userList;
this.taskForm.multiple = true;
} }
this.taskForm.sendUserShow = true; this.taskForm.sendUserShow = true;
} }

Loading…
Cancel
Save