- 01_启动流程
//processDefinitionKey:流程定义的KEY;业务id:一般为业务表的id;variables :存放实体类,或其他属性
runtimeService .startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map<String, Object> variables );
// 给业务字段添加processInstanceid
salary.setProcessInstanceId(processInstanceId );
- 02_监听
用途:通过实现TaskListener接口实现下一个办理人的动态选择
用法:实现notify方法
- 03_查询用户的个人或组任务
// 根据用户ID查询候选者或者任务办理人的任务列表
List<Task> tasks = taskService .createTaskQuery().taskCandidateOrAssigned( userId).orderByTaskCreateTime().desc().list();
// 根据组ID查询候选组的任务列表
List<Task> tasks = taskService .createTaskQuery().taskCandidateGroup( groupid).orderByTaskCreateTime().desc(). list();
- 04_任务签收
//设置执行任务的id
identityService .setAuthenticatedUserId( userId);
//任务签收(taskid和userid)
taskService .claim(taskId, userId));
- 05_办理
// isPass == true 说明通过,反之亦然
variables.put("isPass", completeFlag);
// 添加评论的方法,param:taskid+pricessinstancceid+内容
Comment = taskService.addComment (String taskId , String processInstanceId , String message);
// 查询一个任务所在流程的全部评论
List<Comment> = taskService.getProcessInstanceComments (String processInstanceId );
// 执行完成任务的方法,param:taskid,variables(作用:传入isPass的值)
taskService .complete(taskId, variables);
- 06_子流程(callActivity)
2.实现taskListener,重写notify方法
- 07_任务转办
// 任务转办
taskService.setAssignee(taskId,userId);
// 同时设置Owner
taskService.setOwner(String taskId, String userId );
- 08_任务委派
//OWNER_(委托人):受理人委托其他人操作该TASK的时候,受理人就成了委托人OWNER_,其他人就成了受理人ASSIGNEE_
taskService .delegateTask(taskId, userId);