项目地址 | https://gitee.com/lwj/flowable.git |
---|---|
代码分支 | flowable-base |
视频讲解地址 | https://www.bilibili.com/video/av78294766/ |
用户名 | 密码 |
---|---|
0000001 | test |
0000002 | test |
0000003 | test |
0000004 | test |
文章目录
- 场景分析
- 1. 演示
- 2. 代码分享
- 3. 委派的执行处理
场景分析
解释:委派
A由于某些原因不能处理该任务,可以把任务委派给用户B代理,当B处理完成之后再次回到用户A这里,在这个过程中A是任务的所有者,B是该任务的办理人
A->B->A
1. 演示
2. 代码分享
public ReturnVo<String> delegateTask(DelegateTaskVo delegateTaskVo) {ReturnVo<String> returnVo = null;TaskEntityImpl currTask = (TaskEntityImpl) taskService.createTaskQuery().taskId(delegateTaskVo.getTaskId()).singleResult();if (currTask != null) {//1.添加审批意见this.addComment(delegateTaskVo.getTaskId(), delegateTaskVo.getUserCode(), delegateTaskVo.getProcessInstanceId(), CommentTypeEnum.WP.toString(), delegateTaskVo.getMessage());//2.设置审批人就是当前登录人taskService.setAssignee(delegateTaskVo.getTaskId(), delegateTaskVo.getUserCode());//3.执行委派taskService.delegateTask(delegateTaskVo.getTaskId(), delegateTaskVo.getDelegateUserCode());returnVo = new ReturnVo<>(ReturnCode.SUCCESS, "委派成功");} else {returnVo = new ReturnVo<>(ReturnCode.FAIL, "没有运行时的任务实例,请确认!");}return returnVo;}
3. 委派的执行处理
//2.委派处理
if (DelegationState.PENDING.equals(taskEntity.getDelegationState())) {//2.1生成历史记录TaskEntity task = this.createSubTask(taskEntity, params.getUserCode());taskService.complete(task.getId());taskId = task.getId();//2.3执行委派taskService.resolveTask(params.getTaskId(), params.getVariables());}