当前位置: 代码迷 >> 综合 >> Activiti5 学习笔记(五)
  详细解决方案

Activiti5 学习笔记(五)

热度:87   发布时间:2024-01-26 12:09:21.0

个人任务

个人任务指某个任务就只能被一个人查看,前面的学习都是在流程图中指定assignee属性值的。实际开发中,肯定不会是这样的。以下我们来学习如何动态的指定办理人

1. 通过流程变量指定办理人

启动流程实例

String processDefinitionKey = "personalTask";
Map<String, Object> variables = new HashMap<>();
variables.put("assignee", "张三"); //设置流程变量
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey,variables);

 张三完成任务

String taskId = "2505";
Map<String, Object> variables = new HashMap<>();
variables.put("assignee", "李四"); //设置下一个办理人
processEngine.getTaskService().complete(taskId,variables);

2. 通过监听器指定办理人

为任务节点添加create事件的监听类,通过delegateTask设置办理人

//监听类,省略部分代码,监听器的使用请查询我前面的例子
public void notify(DelegateTask delegateTask) {delegateTask.setAssignee("张三");}

3. 修改办理人

String taskId = "15004";   //需要知道任务id
String userId = "王五";     //修改任务办理人为王五
TaskService taskService = processEngine.getTaskService();
taskService.setAssignee(taskId, userId); //无须关系原办理人是否存在,调用setAssignee就能修改