The whole process of the workflow

1. Definition of Deployment Process

2. An instance of the startup process

3. View my task list

4. Handle tasks

5. View the process (in execution, or has ended)

6. Query historical tasks

7. Process instance of query history

 

package com.liming;

import java.io.File;
import java.io.IOException;
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.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;

public class CreateActivti {

	private ProcessEngine on;
	
	
	//create process engine
	@Before
	public void createActivi() {
			pe = ProcessEngines.getDefaultProcessEngine();

	}
	
	//deployment process
	@Test
	public void deloy()
	{
		
	
		//Get the instance of the warehouse service
		RepositoryService repositoryService = pe.getRepositoryService ();
		
		DeploymentBuilder db =repositoryService.createDeployment().addClasspathResource("workflow/MyProcess.bpmn").addClasspathResource("workflow/MyProcess.png").name("请假流程");
		
		Deployment dy = db.deploy();
		
		System.out.println(dy.getId()+"  "+dy.getName());
	}
	
	//deployment process definition
	@Test
	public void deloy_zip()
	{
		InputStream in = this.getClass().getClassLoader().getResourceAsStream("workflow/MyProcess.zip");
		
		ZipInputStream zipin = new ZipInputStream(in);
		
		Deployment dy = pe.getRepositoryService().createDeployment().name("Leave process liming").addZipInputStream(zipin).deploy();
		
		
		System.out.println(dy.getId()+" "+dy.getName());
	}

	// query process definition
	@Test
	public void queryProceeDefinition()
	{
		//Get the warehouse service object, query the list
		ProcessDefinitionQuery query = pe.getRepositoryService (). CreateProcessDefinitionQuery ();
		
		query.orderByProcessDefinitionVersion().asc();
		query.processDefinitionKey("myProcess1");
//		query.processDefinitionName("");
		
		List<ProcessDefinition> list= query.list();
		
		for (ProcessDefinition processDefinition : list) {
			System.out.print("id:"+processDefinition.getId());
			System.out.print("name:"+processDefinition.getName());
			System.out.print("key:"+processDefinition.getKey());
			System.out.print("version:"+processDefinition.getVersion());
			System.out.print("resourceName:"+processDefinition.getResourceName());
			System.out.println();
		}
	}
	
	// delete the process definition
		@Test
	public void deletProceeDefinition()
		{

			String id = "801";
			RepositoryService service = pe.getRepositoryService ();
			
			//The executing process throws an exception
			service.deleteDeployment(id);
			
			//Cascade deletion will delete all information related to the current rule
			service.deleteDeployment(id,true);
		}
		
	//View the process definition flowchart
		@Test
	public void show()
		{
			String id = "101";
			List <String> list = pe.getRepositoryService (). GetDeploymentResourceNames (id);	
			String img ="";
			for (String string : list) {
				System.out.println("img:"+string);
				
				if(string.indexOf(".png")>=0)
				{
					img = string;
				}
			}
				
				if(img!= "")
				{
				InputStream inputStream = pe.getRepositoryService (). GetResourceAsStream (id, img);
				
				File f = new File("/Users/zhangqinghua/Documents/workspace/"+img);
				try {
					FileUtils.copyInputStreamToFile(inputStream, f);
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace ();
				}
				}
			}
	
		
	// start the process instance
	@Test
	public void startProcess()
	{
		
		RuntimeService runtimeService = on.getRuntimeService ();
		ProcessInstance pi = runtimeService.startProcessInstanceByKey("myProcess");
		
		System.out.println(pi.getId()+" "+pi.getProcessDefinitionId());
	}
	//View the task list
	@Test
	public void queryTask()
	{
		String assignee = "Li San";
		
		List<Task> list =pe.getTaskService().createTaskQuery().taskAssignee(assignee).orderByTaskCreateTime().desc().list();
		
		
		for (Task task : list) {
			System.out.println("ID:"+task.getId());
			System.out.println("name:"+task.getName());
			System.out.println("createtime:"+task.getCreateTime());
			System.out.println("Assignee:"+task.getAssignee());
			
		}
	}
	
	// handle the task
	@Test
	public void complete()
	{
		String id = "2201";
		pe.getTaskService().complete(id);
	}
	//check process status
	@Test
	public void queryProcessState()
	{
		String processInstanceId = "2001";
		
		ProcessInstance pi =pe.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
		if(pi !=null)
		{
			System.out.println("The current process is"+pi.getActivityId());
		}
		else
		{
			System.out.println("The current process has ended");
		}
		
	}
	
	@Test
	public void queryHistoryTask()
	{
		String taskAssignee = "李三";
		List<HistoricTaskInstance> list = pe.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee(taskAssignee).list();
		
		if(list.size()>0 && list != null)
		{
			for (HistoricTaskInstance historicTaskInstance : list) {
				System.out.println("任务ID"+historicTaskInstance.getId());
				System.out.println("Process instance"+historicTaskInstance.getProcessInstanceId());
				System.out.println("Task handling"+historicTaskInstance.getAssignee());
				System.out.println("Start time"+historicTaskInstance.getStartTime() +"End time:"+
				historicTaskInstance.getEndTime());
			}
		}
	}
	
	//View historical process instances
	@Test
	public void queryHisoryProcessInstance()
	{
		String processInstanceId = "2001";
		HistoricProcessInstance hpi = pe.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
		
		System.out.println("Process definition:"+hpi.getProcessDefinitionId());
		System.out.println("Process instance ID:"+hpi.getId());
		System.out.println(hpi.getStartTime()+"   "+hpi.getEndTime()+"  "+hpi.getDurationInMillis());
	}
		
}

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326769121&siteId=291194637