Activiti 开发案例之流程任务指派、转办以及委派
- 2019 年 12 月 24 日
- 筆記

指派
前提是流程中中配置了assignee
变量:
Map<String,Object> variables=new HashMap<>(); variables.put("assignee", userId); Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); taskService.claim(taskId, userId); taskService.complete(taskId, variables);
不需要配置变量,直接使用API
:
Map<String,Object> variables=new HashMap<String,Object>(); variables.put("approve", "false"); Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); //一定要认领任务之后,重新获取当前任务,然后分配角色。 taskService.claim(task.getId(), userId); taskService.complete(task.getId(), variables); task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult(); //指派任务 taskService.addCandidateUser(task.getId(),userId); //如果是指派角色 taskService.addCandidateGroup(task.getId(),roleId);
转办
转办:直接将办理人换成别人,这时任务的拥有着不再是转办人。
如果是第一种方式的指派:
//直接转派就可以覆盖掉之前的 taskService.setAssignee(taskId,userId);
如果是第二种方式的指派:
/** * 删除指派人重新指派 */ taskService.deleteCandidateUser(taskId,"原用户ID"); taskService.addCandidateUser(taskId,"新用户ID");
如果要查询转给他人处理的任务,可以同时将OWNER
进行设置:
taskService.setOwner(taskId, userId);
委派
委派:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中。
//将任务进行委派 taskService.delegateTask(taskId, userId); //被委派人办理任务后 taskService.resolveTask(taskId,variables);