这篇博客要给大家介绍一下分配组任务的三种方式:
组任务分配方式一:直接指定组任务任务办理人
组任务分配方式二:使用流程变量
组任务分配方式三:使用类
下面呢将具体介绍这三种不同的方法:
一、流程图:
图: 配组任务的三种方式
1.在任务节点设置办理人
2.测试代码
public class group {
ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();
/**部署流程定义*/
@Test
public void deployementProcessDefinition(){
String resourceNamebpmn = "group.bpmn";
String resourceNamepng = "group.png";
InputStream inputStreamBpmn = this.getClass().getResourceAsStream("group.bpmn");
InputStream inputStreamPng = this.getClass().getResourceAsStream("group.png");
/**部署流程定义*/
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()//创建部署对象
.name("组任务")
.addInputStream(resourceNamebpmn, inputStreamBpmn)//部署加载资源文件
.addInputStream(resourceNamepng, inputStreamPng)
.deploy();
System.out.println("部署ID:"+deployment.getId());
}
@Test
public void startProcessInstance() {
//启动流程实例
String processDefinitionKey ="group";
ProcessInstance pi = processEngine.getRuntimeService()
.startProcessInstanceByKey(processDefinitionKey);
System.out.println("流程实例ID:"+pi.getId());
System.out.println("流程定义的ID:"+pi.getProcessDefinitionId());
}
/**查看小A当前的个人任务,未查询出结果*/
@Test
public void findPersonTask(){
String assignee = "小A";
List<Task> list =processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(assignee)//指定个人任务,指定办理人
.list();
if(list!=null && list.size()>0){
for(Task task:list){
System.out.println("任务ID:"+task.getId());
System.out.println("任务的办理人:"+task.getAssignee());
System.out.println("任务名称:"+task.getName());
System.out.println("任务的创建时间:"+task.getCreateTime());
System.out.println("流程实例ID:"+task.getProcessInstanceId());
System.out.println("####################