您的位置:首页 > 其它

工作流引擎Activiti学习---使用类个人任务分配

2017-05-24 22:48 495 查看
package com.activiti.study.personalTask;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 PersonalTask3 {

/**
*加载默认的流程引擎: 加载 activiti.cfg.xml 文件
*/
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

/**
* 部署流程定义
*/
@Test
public void testDeployProcessDefination_inputStream(){

/**
-- 从classPath根目录下加载指定名称的文件
this.getClass().getClassLoader().getResourceAsStream("/diagrams/ProcessVariables.bpmn");

-- 从当前包下加载指定名称的文件
this.getClass().getResourceAsStream("diagrams/ProcessVariables.bpmn");

-- 从classPath根目录下加载指定名称的文件
this.getClass().getResourceAsStream("/diagrams/ProcessVariables.bpmn");
*/

InputStream inputStreamBpmn = this.getClass().getResourceAsStream("task3.bpmn");
InputStream inputStreamPng = this.getClass().getResourceAsStream("task3.png");

Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.name("个人任务分配")     //设定流程名称
.addInputStream("task3.bpmn", inputStreamBpmn)
.addInputStream("task3.png", inputStreamPng)
.deploy();
System.out.println("Id: " + deployment.getId());
System.out.println("Name: " + deployment.getName());
System.out.println("Category: " + deployment.getCategory());
}

/**
* 启动流程
*/
@Test
public void testStartProcessDefination(){
String processDefinationKey = "personalTask3";
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinationKey);
System.out.println("Key--->>>" + pi.getBusinessKey());
System.out.println("ActivityId--->>>" + pi.getActivityId());
System.out.println("DefinitionId--->>>" + pi.getProcessDefinitionId());
System.out.println("ProcessInstanceId--->>>" + pi.getProcessInstanceId());

}

/**
* 查询个人任务
*/
@Test
public void findPersonalTask(){
/**获取任务id*/
String assignee = "David";
List<Task> tasks = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)
.list();
for(Task task: tasks){
System.out.println("\n------------------\nId: " + task.getId()+ "\nAssignee: " + task.getAssignee() + "\nProcessInstanceId: " + task.getProcessInstanceId());
}
}

/**
* 完成任务
*/
@Test
public void testCompleteTask(){
String taskId = "2701";
processEngine.getTaskService().complete(taskId);
System.out.println(taskId + " has Done.");
}

}

package com.activiti.study.personalTask;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;

public class TaskListenerImpl implements TaskListener {

private static final long serialVersionUID = 1331752911978130983L;

@Override
public void notify(DelegateTask delegateTask) {
delegateTask.setAssignee("David");
}

}


task3.xml

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="personalTask3" name="Personal Task3" isExecutable="true">
<startEvent id="startevent1" name="Start"></startEvent>
<userTask id="usertask1" name="User Task">
<extensionElements>
<activiti:taskListener event="create" class="com.activiti.study.personalTask.TaskListenerImpl"></activiti:taskListener>
</extensionElements>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_personalTask3">
<bpmndi:BPMNPlane bpmnElement="personalTask3" id="BPMNPlane_personalTask3">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="71.0" width="71.0" x="290.0" y="50.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
<omgdc:Bounds height="55.0" width="105.0" x="275.0" y="200.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="430.0" y="210.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="325.0" y="121.0"></omgdi:waypoint>
<omgdi:waypoint x="327.0" y="200.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="380.0" y="227.0"></omgdi:waypoint>
<omgdi:waypoint x="430.0" y="227.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: