一、任务的管理功能主要有:
1.任务办理模式分两种(一家公司最好约定好需要不要签收模式,统一操作模式),一种直接办理模式,一种需要签收后再办理,所以分为:
候选人的任务签收/候选组的任务签收/完成任务
2.转办任务
3.委派任务与代办任务
4.待办任务列表(不要签收的或者已签收未办理的)
5待办签收列表
6.抄送任务
7.终止任务(这个功能放到流程实例中)
8.催办任务
9.退回上一步(即驳回),退回到(历史某一个节点)
10.超时自动跳转完成
11.任务按业务类型划分:用户任务/服务任务/定时任务/会签任务/并行网关任务/排他网关任务
12.获取下一个节点集合(一个或者多个),获取节点名称,节点配置的用户/候选人员/候选组。
二、主要接口有:
1.候选人待签收任务列表:List<Task> tasks = taskService.createTaskQuery().taskCandidateUser(userId).list();
2.候选组待签收任务列表: List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup(userGroup).list();
3.签收动作:taskService.claim(task.getId(), userId);//完成签收这个时候就任务Task的Assignee属性就有了值
4.已经签收过的任务列表,某种意义上才有真正的办理人List<Task> tasks = taskService.createTaskQuery().taskAssignee(userId).list();
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)
6.任务并不一定要先签收再办理,可以直接到待办理中,而不是待签收中
可以把
taskService.claim(task.getId(), userId);方法
替换为
setAssignee(String taskId, String userId)
经过以上步骤,任务已经在 办理中状态了
10.转办任务
taskService.setOwner(taskId, curUserId); taskService.setAssignee(taskId,acceptUserId );
11.委派任务:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中
taskService.setOwner(taskId, curUserId); taskService.delegateTask(taskId,acceptUserId);
12.被委派任务的办理: 办理完成后,委派任务会自动回到委派人的任务中
taskService.resolveTask(taskId, variables);