1、启动流程
/** * 1 启动流程 * 当流程到达一个节点时,会在act_ru_execution表中产生1条数据 * 如果当前节点是用户任务节点,这时会在act_ru_task表中产生1条数据(任务的办理人,任务的创建时间) */ @Test public void startProcess() throws Exception { /** * v1 myProcess:2:604 * v2 myProcess:3:704 */ // runtimeService.startProcessInstanceById(processDefinitionId) // 通过流程定义的key启动流程,会启动版本最高的流程 ProcessInstance pi = runtimeService.startProcessInstanceByKey("LeaveFlow"); System.out.println("pid:" + pi.getId() +",activitiId:" + pi.getActivityId()); }
2、查看流程状态
public void queryProcessState() throws Exception { String processInstanceId="1401"; // 通过流程实例ID查询流程实例 ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); if(pi!=null){ System.out.println("当前流程在:" + pi.getActivityId()); }else{ System.out.println("流程已结束!!"); } }
3、查看公有任务
public void queryCommonTask() throws Exception { // 创建任务查询对象 TaskQuery taskQuery = taskService.createTaskQuery(); // 配置查询对象 String candidateUser="张三"; taskQuery // 过滤条件 .taskCandidateUser(candidateUser) // 分页条件 // .listPage(firstResult, maxResults) // 排序条件 .orderByTaskCreateTime().desc(); // 执行查询 List<Task> tasks = taskQuery.list(); System.out.println("======================【"+candidateUser+"】的公共任务列表================="); for (Task task : tasks) { System.out.print("id:"+task.getId()+","); System.out.print("name:"+task.getName()+","); System.out.print("createTime:"+task.getCreateTime()+","); System.out.println("assignee:"+task.getAssignee()); } }
4、查看私有任务
public void queryPersonalTask() throws Exception { // 创建任务查询对象 TaskQuery taskQuery = taskService.createTaskQuery(); // 配置查询对象 // String assignee="user"; String assignee="李四"; taskQuery // 过滤条件 .taskAssignee(assignee) // 分页条件 // .listPage(firstResult, maxResults) // 排序条件 .orderByTaskCreateTime().desc(); // 执行查询 List<Task> tasks = taskQuery.list(); System.out.println("======================【"+assignee+"】的代办任务列表================="); for (Task task : tasks) { System.out.print("id:"+task.getId()+","); System.out.print("name:"+task.getName()+","); System.out.print("createTime:"+task.getCreateTime()+","); System.out.println("assignee:"+task.getAssignee()); } }
5、认领任务
public void takeTask() throws Exception { // claim 认领 String taskId="1404"; String userId="李四"; // 让指定userId的用户认领指定taskId的任务 taskService.claim(taskId, userId); System.out.println("认领操作完毕!!"); }
6、办理任务
public void complete() throws Exception { String taskId = "1602"; // 完成任务 taskService.complete(taskId ); }
Activiti流程实例管理
时间: 2024-10-19 01:53:21