package cn.ycit.C_processInstance;
import java.io.InputStream;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
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 {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@Test
public void deploymentProcessDefinition_zip(){
// 部署流程定义
// 这一段代码的目的是为了操作数据库
InputStream in = this.getClass().getClassLoader().getResourceAsStream("HelloWorld.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
Deployment deployment = processEngine.getRepositoryService() //与流程定义和部署相关的service
.createDeployment() //创建一个部署对象
.name("流程定义")
.addZipInputStream(zipInputStream) //从classpath文件中加载且一次只能加载一个文件
.deploy(); //完成部署
System.out.println( "部署ID:"+ deployment.getId());
System.out.println("部署名称:"+deployment.getName());
}
@Test
// 启动流程实例
public void startProcessInstance(){
String ProcessDefinitionKey = "hellowordid";
ProcessInstance pl = processEngine.getRuntimeService()//与正在执行的流程实例和部署对象相关的Service
.startProcessInstanceByKey(ProcessDefinitionKey);//使用流程定义的KEY运行流程实例 key对应 HelloWord中的id的属性值
System.out.println("流程实例ID:"+pl.getId()); //使用KEY启动 默认 的是最新版本的流程定义
System.out.println("流程定义ID:"+pl.getProcessDefinitionId());
}
@Test
// 查询当前的个人任务
public void FindPersonTask(){
String assignee = "王五";
java.util.List<Task> list = processEngine.getTaskService()//与正在执行的任务相关的Service
.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.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("##########################################################");
}
}
}
@Test
// 完成当前任务
public void CompletePersonTask(){
String taskId = "2602";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成任务ID:"+taskId);
}
}
Activiti 定义流程实例 及 数据表的含义 Map 集合的特点
最新推荐文章于 2022-07-13 12:03:46 发布