activiti 並行閘道器(八)
阿新 • • 發佈:2019-02-10
1. 流程圖
2. 程式碼實現
package com.hxzq.workflow.parallelgateway; import java.io.InputStream; import java.util.List; 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; /** * 並行閘道器<br> * select * from act_re_deployment;<br> * select * from act_hi_procinst;<br> * select * from act_re_procdef;<br> * * select * from act_ru_execution;<br> * select * from act_ru_task;<br> * select * from act_ru_variable;<br> * * select * from act_hi_procinst;<br> * select * from act_hi_actinst;<br> * select * from act_hi_taskinst;<br> * select * from act_hi_varinst;<br> * * @author ZHEN.L * */ public class ParallelGateWay { ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /** * 部署流程定義 */ @Test public void deploymentProcessDefinition() { InputStream bpmn = this.getClass().getResourceAsStream( "Parallel.bpmn"); InputStream png = this.getClass().getResourceAsStream( "Parallel.png"); Deployment deployment = processEngine.getRepositoryService() .createDeployment() .addInputStream("Parallel.bpmn", bpmn) .addInputStream("Parallel.png", png).name("並行閘道器") .deploy(); System.out.println(deployment.getId()); System.out.println(deployment.getDeploymentTime()); } /** * 啟動流程例項 */ @Test public void startProcessInstance() { String processIntanceKey = "parallel"; ProcessInstance processInstance = processEngine.getRuntimeService() .startProcessInstanceByKey(processIntanceKey); System.out.println(processInstance.getId()); System.out.println(processInstance.getActivityId()); } /** * 查詢個人任務 */ @Test public void findTask() { String assignee = "王六"; List<Task> tasks = processEngine.getTaskService().createTaskQuery() .taskAssignee(assignee).list(); if (tasks != null && tasks.size() > 0) { for (Task t : tasks) { System.out.println(t.getId() + ", " + t.getName() + ", " + ", " + t.getOwner() + ", " + t.getCreateTime()); } } } /** * 完成個人任務 */ @Test public void completeTask() { String taskId = "2503"; processEngine.getTaskService().complete(taskId); } /** * 執行彙總 */ @Test public void execute(){ String executeId = "2103"; processEngine.getRuntimeService().signal(executeId); } }