您的位置:首页 > 其它

Activiti 流程实例、任务的执行

2017-10-09 15:52 330 查看
转载自:http://blog.csdn.net/caoyue_new/article/details/52171327

package com.activiti.test;

import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;

public class ProcessInstanceTest {

//获取流程引擎,默认加载类路径下的activiti.cfg.xml文件
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

/**
* 部署流程定义
*/
@Test
public void deploy() {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/leave.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
Deployment deploy = processEngine.getRepositoryService()
.createDepl
4000
oyment()
.name("请假流程")
.addZipInputStream(zipInputStream)
.deploy();
System.out.println("部署ID:" + deploy.getId());
System.out.println("部署名称:" + deploy.getName());
}

/**
* 启动流程实例
*/
@Test
public void startProcessInstance() {
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("Leave");
System.out.println("流程定义的ID:" + pi.getProcessDefinitionId());
System.out.println("流程实例的ID:" + pi.getId());
}

/**
* 查询个人任务
*/
@Test
public void queryPersonalTask() {
String assignee = "张三";
List<Task> list = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
.list();
if (list != null && list.size() > 0) {
for (Task task : list) {
System.out.println("任务ID:" + task.getId());
System.out.println("任务名称:" + task.getName());
System.out.println("任务办理人:" + task.getAssignee());
System.out.println("任务的创建时间:"+task.getCreateTime());
System.out.println("流程定义ID:" + task.getProcessDefinitionId());
System.out.println("流程实例ID:" + task.getProcessInstanceId());
System.out.println("执行对象ID:" + task.getExecutionId());
System.out.println("===========================================");
}
}
}

/**
* 完成任务
*/
@Test
public void complete() {
String taskId = "32502";
processEngine.getTaskService().complete(taskId);
System.out.println("完成任务");
}

/**
* 查看流程状态
*/
@Test
public void queryProcessState() {
String processInstanceId = "37501";
//通过流程实例的ID查询流程实例
ProcessInstance pi = processEngine.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
if (pi != null) {
System.out.println("当前流程在:" + pi.getActivityId());
} else {
System.out.println("流程已结束");
}
}

/**
* 查看历史任务
*/
@Test
public void queryHistoryTask() {
String assignee = "张三"; //历史任务办理人
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery()//创建历史任务查询
.taskAssignee(assignee)//指定办理人
.list();
if (list != null && list.size() > 0) {
for (HistoricTaskInstance historicTaskInstance : list) {
System.out.println(historicTaskInstance.getStartTime()+"\n"+historicTaskInstance.getEndTime()+"\n"+historicTaskInstance.getDurationInMillis());
System.out.println("任务ID:" + historicTaskInstance.getId());
System.out.println("任务名称:" + historicTaskInstance.getName());
System.out.println("流程实例ID:" + historicTaskInstance.getProcessInstanceId());
System.out.println("流程定义ID:" + historicTaskInstance.getProcessDefinitionId());
System.out.println("执行对象ID:" + historicTaskInstance.getExecutionId());
System.out.println("任务办理人:" + historicTaskInstance.getAssignee());
System.out.println("==========================================================");
}
}
}

/**
* 查看历史流程实例
*/
@Test
public void queryHistoryProcessInstance() {
String processInstanceId = "37501";
HistoricProcessInstance hpi = processEngine.getHistoryService()
.createHistoricProcessInstanceQuery()//创建历史流程实例查询
.processInstanceId(processInstanceId)
.singleResult();
System.out.println("流程定义ID:"+hpi.getProcessDefinitionId());
System.out.println("流程实例ID:"+hpi.getId());
System.out.println(hpi.getStartTime()+"    "+hpi.getEndTime()+"        "+hpi.getDurationInMillis());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: