代码中的一些注释存属个人理解,如有错误,可以相互交流
package com.gec.activiti.junit;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
public class HelloProcessTest {
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@Test
public void testProcessDefinition(){
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.name("hello入门程序")
.addClasspathResource("diagram/HelloProcess.bpmn")
.addClasspathResource("diagram/HelloProcess.png")
.deploy();
System.out.println("部署id:"+deployment.getId());
System.out.println("部署名称:"+deployment.getName());
System.out.println("部署时间:"+deployment.getDeploymentTime());
}
@Test
public void testStartProcessInstance(){
String key = "HelloProcess";
ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey(key);
System.out.println("id:"+processInstance.getId());
System.out.println("流程实例ID:"+processInstance.getProcessInstanceId());
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
}
@Test
public void testFindTask(){
String assignee = "Jack";
List<Task> list = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
.list();
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());
}
}
@Test
public void testFinishedTask(){
String taskId = "104";
processEngine.getTaskService().complete(taskId );
System.out.println("完成任务..");
}
@Test
public void testFindTask2(){
String assignee = "Mike";
List<Task> list = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
.list();
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());
}
}
@Test
public void testFinishedTask2(){
String taskId = "202";
processEngine.getTaskService().complete(taskId );
System.out.println("完成任务..");
}
@Test
public void testFindProcessDefinition(){
List<ProcessDefinition> list = processEngine.getRepositoryService()
.createProcessDefinitionQuery()
.list();
for(ProcessDefinition fd : list){
System.out.println("部署id:"+fd.getDeploymentId());
System.out.println("流程定义Id:"+fd.getId());
System.out.println("流程定义名称:"+fd.getName());
System.out.println("版本:"+fd.getVersion());
System.out.println("-----------------------------");
}
}
@Test
public void testDeleteProcessDefinition(){
String deplymentId = "401";
processEngine.getRepositoryService().deleteDeployment(deplymentId, true);
System.out.println("删除完成..");
}
@Test
public void ViewPic() throws IOException{
String deploymentId = "1";
String resourceName = "diagram/HelloProcess.png";
InputStream is = processEngine.getRepositoryService().getResourceAsStream(deploymentId, resourceName);
File targetFile = new File("D:/"+resourceName);
FileUtils.copyInputStreamToFile(is, targetFile);
System.out.println("复制图片完成...");
}
@Test
public void testProcessInstanceIsEnd(){
String processInstanceId = "601";
ProcessInstance pi = processEngine.getRuntimeService()
.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
if( pi != null){
System.out.println("流程正在执行...");
}else{
System.out.println("流程已结束...");
}
}
@Test
public void testGetHistoryTaskInstance(){
String assignee = "Jack";
List<HistoricTaskInstance> list = processEngine.getHistoryService()
.createHistoricTaskInstanceQuery()
.taskAssignee(assignee)
.list();
for(HistoricTaskInstance hti : list){
System.out.println("办理人:"+hti.getAssignee());
System.out.println("任务id:"+hti.getId());
System.out.println("任务名:"+hti.getName());
System.out.println("所有者:"+hti.getOwner());
System.out.println("父任务id:"+hti.getParentTaskId());
System.out.println("流程定义id:"+hti.getProcessDefinitionId());
System.out.println("流程实例id:"+hti.getProcessInstanceId());
System.out.println("-------------------------------------------------------");
}
}
}