当前位置 : 主页 > 编程语言 > java >

工作流1

来源:互联网 收集:自由互联 发布时间:2021-06-28
ActivitiAPITest package com.rainhowchan;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.zip.ZipInputSt
ActivitiAPITest
package com.rainhowchan;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.repository.DeploymentBuilder;
import org.activiti.engine.repository.DeploymentQuery;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.runtime.ProcessInstanceQuery;
import org.activiti.engine.task.Task;
import org.activiti.engine.task.TaskQuery;
import org.apache.commons.io.FileUtils;
import org.junit.Test;

public class ActivitiAPITest {
	
	private ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
	/**
	 * 部署流程定义(方式一:读取单个流程定义文件 方式二:读取zip文件)
	 */
	@Test
	public void test1(){
		DeploymentBuilder builder=processEngine.getRepositoryService().createDeployment();
		
		//方式一
//		builder.addClasspathResource("test1.bpmn");
//		builder.addClasspathResource("test1.png");

		//方式二
		ZipInputStream zip = new ZipInputStream(getClass().getClassLoader().getResourceAsStream("process.zip"));
		builder.addZipInputStream(zip);
		Deployment deployment=builder.deploy();
		System.out.println(deployment.getId());
	}
	/**
	 * 删除部署信息
	 */
	@Test
	public void test2(){
		String deploymentId ="301";
		processEngine.getRepositoryService().deleteDeployment(deploymentId, true);
	}
	/**
	 * 删除流程定义(通过删除部署信息达到删除流程定义的目的)
	 */
	@Test
	public void test3() {
		String deploymentId = "1401";
		// processEngine.getRepositoryService().deleteDeployment(deploymentId);
		processEngine.getRepositoryService().deleteDeployment(deploymentId,
				true);
	}
	/**
	 * 查询部署列表
	 */
	@Test
	public void test4(){
		DeploymentQuery query=	processEngine.getRepositoryService().createDeploymentQuery();
		List
 
   list=query.list();
		for(Deployment deployment:list){
			System.out.println(deployment.getId());
		}
	}
	/**
	 * 查询流程定义列表
	 */
	@Test
	public void test5(){
		ProcessDefinitionQuery query = processEngine.getRepositoryService()
				.createProcessDefinitionQuery();
		List
  
    list = query.list(); for(ProcessDefinition pd: list){ System.out.println(pd.getName()+"---->"+pd.getId()); } } /** * 查询一次部署对应的流程定义文件和对应的输入流(bpmn png) * @throws IOException */ @Test public void test6() throws IOException{ String deploymentId="801"; List
   
     names = processEngine.getRepositoryService() .getDeploymentResourceNames(deploymentId); for(String name: names){ System.out.println(name); InputStream is = processEngine.getRepositoryService() .getResourceAsStream(deploymentId, name); try { FileUtils.copyInputStreamToFile(is, new File("d:\\"+name)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } is.close(); } } /** * 获得png文件的输入流 */ @Test public void test7() throws Exception { String processDefinitionId = "qjlc:3:204"; InputStream pngInputStream = processEngine.getRepositoryService() .getProcessDiagram(processDefinitionId); FileUtils.copyInputStreamToFile(pngInputStream, new File("d:\\my.png")); } /** * 启动流程实例 * 方式一: 根据流程定义的id启动 * 方式二: 根据流程定义的key启动(自动选择最新版本的流程定义启动流程实例) */ @Test public void test8() { /* * String processDefinitionId = "qjlc:9:1204"; ProcessInstance * processInstance = * processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId ); * System.out.println(processInstance.getId()); */ String processDefinitionKey = "qjlc"; ProcessInstance processInstance = processEngine.getRuntimeService() .startProcessInstanceByKey(processDefinitionKey); System.out.println(processInstance.getId()); } /** * 查询流程实例列表 查询act_ru_execution act_re_procdef表 */ @Test public void test9(){ ProcessInstanceQuery query =processEngine.getRuntimeService().createProcessInstanceQuery(); query.processDefinitionKey("qjlc"); query.orderByProcessDefinitionId().desc(); query.listPage(0, 10); List
    
      list = query.list(); System.out.println(list.size()); for(ProcessInstance pi: list){ System.out.println(pi.getId()+"---->"+pi.getActivityId()); } } /** * 结束流程实例 操作的表act_ru_execution act_ru_task */ @Test public void test10(){ String processInstanceId = "901"; processEngine.getRuntimeService().deleteProcessInstance(processInstanceId , "我愿意"); } /** * 查询任务列表 查询act_ru_task表 */ @Test public void test11(){ TaskQuery query = processEngine.getTaskService().createTaskQuery(); String assignee = "张三"; query.taskAssignee(assignee); query.orderByTaskCreateTime().desc(); List
     
       list = query.list(); for (Task task : list) { System.out.println(task.getId()); } } /** * 办理任务 */ @Test public void test12(){ String taskId = "1004"; processEngine.getTaskService().complete(taskId); } /** * 直接将流程向下执行一步(管理员专属) */ @Test public void test13(){ String executionId = "1001";//流程实例id processEngine.getRuntimeService().signal(executionId); } /** * 查询最新版本的流程定义列表 */ @Test public void test14(){ ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery(); query.orderByProcessDefinitionVersion().asc(); List
      
        list = query.list(); Map
       
         map = new HashMap
        
         (); for (ProcessDefinition pd : list) { map.put(pd.getKey(), pd); //利用map键唯一特性 } ArrayList
         
           lastList = new ArrayList<>(map.values()); for (ProcessDefinition processDefinition : lastList) { System.out.println(processDefinition.getName() + "----->"+ processDefinition.getVersion() ); } } }
         
        
       
      
     
    
   
  
 
网友评论