流程实例管理

来源:互联网 发布:python的列表推导式 编辑:程序博客网 时间:2024/05/29 23:44
package com.buyiner.activiti;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.RuntimeService;import org.activiti.engine.TaskService;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.activiti.engine.task.TaskQuery;import org.junit.Test;/** *  * 流程实例管理 * 流程实例永远执行当前活动的节点 *  * 私有任务 * 直接完成 * 共有任务 * 先认领任务,后完成 *  * @author Administrator * */public class ProcessInstanceTest {//创建ProcessEngineprivate ProcessEngine processEngin = ProcessEngines.getDefaultProcessEngine();/** * 1.启动流程 * act_ru_execution 1条 * act_ru_task1条 * @throws Exception */@Testpublic void startProcess() throws Exception {//获取运行时服务RuntimeService runtimeService = processEngin.getRuntimeService();ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");System.out.println("pid="+processInstance.getId()+"---activityId="+processInstance.getActivityId());}//2.查看任务//2.1 查看私有任务@Testpublic void queryMyTask() throws Exception {//创建服务对象idTaskService taskService = processEngin.getTaskService();String assignee = "王经理";//1)创建查询对象TaskQuery query = taskService.createTaskQuery();//2)配置参数TaskQuery taskQuery = query.taskAssignee(assignee).orderByTaskCreateTime().desc();//3)查询结果List<Task> list = taskQuery.list();for(Task task:list){System.out.println("task  id="+task.getId()+",taskName="+task.getName()+",assignee="+task.getAssignee()+",createTime="+task.getCreateTime());}}//2.2 查看共有任务@Testpublic void queryCommonTask() throws Exception {//创建服务对象idTaskService taskService = processEngin.getTaskService();//String assignee = "user";//1)创建查询对象TaskQuery query = taskService.createTaskQuery();//String candidateUser = "张三";String candidateUser = "王经理";//2)配置参数TaskQuery taskQuery = query.taskCandidateUser(candidateUser).orderByTaskCreateTime().desc();//3)查询结果List<Task> list = taskQuery.list();for(Task task:list){System.out.println("task  id="+task.getId()+",taskName="+task.getName()+",assignee="+task.getAssignee()+",createTime="+task.getCreateTime());}}//3.认领任务@Testpublic void renlinTask() throws Exception {TaskService taskService = processEngin.getTaskService();String taskId = "45002";String userId = "王经理";taskService.claim(taskId, userId);}//4.完成任务@Testpublic void finishTask() throws Exception {TaskService taskService = processEngin.getTaskService();String taskId = "45002";taskService.complete(taskId );}//5.查看任务状态@Testpublic void viewProcessStatus() throws Exception {RuntimeService runtimeService  = processEngin.getRuntimeService();String processInstanceId = "42501";ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId ).singleResult();if(processInstance!=null){System.out.println("pid="+processInstance.getId()+"---activityId="+processInstance.getActivityId());}else{System.out.println("流程已结束");}//pid=42501---activityId=usertask2}}

0 0
原创粉丝点击