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 {
//创建ProcessEngine
private ProcessEngine processEngin = ProcessEngines.getDefaultProcessEngine();
/**
* 1.启动流程
* act_ru_execution 1条
* act_ru_task 1条
* @throws Exception
*/
@Test
public 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 查看私有任务
@Test
public void queryMyTask() throws Exception {
//创建服务对象id
TaskService 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 查看共有任务
@Test
public void queryCommonTask() throws Exception {
//创建服务对象id
TaskService 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.认领任务
@Test
public void renlinTask() throws Exception {
TaskService taskService = processEngin.getTaskService();
String taskId = "45002";
String userId = "王经理";
taskService.claim(taskId, userId);
}
//4.完成任务
@Test
public void finishTask() throws Exception {
TaskService taskService = processEngin.getTaskService();
String taskId = "45002";
taskService.complete(taskId );
}
//5.查看任务状态
@Test
public 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
}
}
流程实例管理
最新推荐文章于 2022-09-26 15:08:46 发布