文章目录


#一、任务的管理功能主要有

1. 任务办理模式分两种

(一家公司最好约定好需要不要签收模式,统一操作模式),

1.1. 一种直接办理模式

1.2. 一种需要签收后再办理

,所以分为: 候选人的任务签收/候选组的任务签收/完成任务

2. 转办任务

3. 委派任务与代办任务

4. 待办任务列表

(不要签收的或者已签收未办理的)

5. 待办签收列表

6. 抄送任务

7. 终止任务(这个功能放到流程实例中)

8. 催办任务

9. 驳回

退回上一步(即驳回),退回到(历史某一个节点)

10. 超时自动跳转完成

11. 任务按业务类型划分

任务按业务类型划分:
用户任务/服务任务/定时任务/会签任务/并行网关任务/排他网关任务

12. 获取下一个节点集合

获取下一个节点集合(一个或者多个),获取节点名称,节点配置的用户/候选人员/候选组。

二、主要接口有:

2.1. 候选人待签收任务列表:

List<Task> tasks = taskService.createTaskQuery().taskCandidateUser(userId).list();

2.2.候选组待签收任务列表:

 List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(userGroup).list();

2.3.签收动作:

//完成签收这个时候就任务Task的Assignee属性就有了值
taskService.claim(task.getId(), userId);

2.4.已经签收过的任务列表

某种意义上才有真正的办理人

List<Task> tasks = taskService.createTaskQuery().taskAssignee(userId).list();

2.5.完成任务

未签收/待办理 中取得需要办理的任务Task之后

//调用 task.getId() = taskId 完成任务的办理,taskService服务自动流转到下一个办理节点

 taskService.complete(task.getId());

//taskService.complete()方法 提供了重载,提供了3种方式供你选择

 complete(String taskId)

complete(String taskId, Map<String,Object> variables)

complete(String taskId, Map<String,Object> variables, boolean localScope)

2.6.任务并不一定要先签收再办理,可以直接到待办理中,而不是待签收中

可以把

​taskService.claim(task.getId(), userId);​​方法

替换为

 setAssignee(String taskId, String userId) 

经过以上步骤,任务已经在 办理中状态了

2.7. 转办任务

taskService.setOwner(taskId, curUserId);
taskService.setAssignee(taskId,acceptUserId );

2.8. 委派任务

委派任务:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中

taskService.setOwner(taskId, curUserId);
taskService.delegateTask(taskId,acceptUserId);

2.9. 被委派任务的办理

被委派任务的办理: 办理完成后,委派任务会自动回到委派人的任务中

taskService.resolveTask(taskId, variables);