任务的类型
用户任务的属性面板
Activiti7中候选组被弱化了
- Assignee:执行人/代理人
- Candidate Users:候选人,多个人,以逗号隔开
- Candidate Groups:候选组
- Due Date:任务到期时间
```java package com.torey.activiti7_workflow;<?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: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="myProcess_task" name="报销流程" isExecutable="true">
<startEvent id="startevent1" name="开始"></startEvent>
<userTask id="usertask1" name="发起报销" activiti:assignee="baJie"></userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
<userTask id="usertask2" name="审核报销" activiti:assignee="wuKong"></userTask>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
<endEvent id="endevent1" name="End"></endEvent>
<sequenceFlow id="flow3" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
</process>
</definitions>
import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest public class Part4_Task { @Autowired private TaskService taskService; /**
* 当流程实例创建了之后,就会有任务节点
* 所有任务查询,一般管理员用
*/
@Test
public void getTask(){
List<Task> list = taskService.createTaskQuery().list();
for (Task task : list) {
System.out.println(":"+task.getId());
System.out.println("taskName:"+task.getName());
System.out.println("执行人:"+task.getAssignee());
}
}
/**
* 查询我的代办任务
*/
@Test
public void getTaskByAssignee(){
List<Task> taskList = taskService.createTaskQuery()
.taskAssignee("baJie").list();
for (Task task : taskList) {
System.out.println("id:"+task.getId());
System.out.println("taskName:"+task.getName());
System.out.println("执行人:"+task.getAssignee());
}
}
/**
* 执行任务
*/
@Test
public void completeTask(){
String assignee="baJie";
List<Task> taskList = taskService.createTaskQuery()
.taskAssignee(assignee).list();
if (null==taskList ||taskList.size()==0) {
System.out.println("不存在该执行人" + assignee);
return;
}
System.out.println(assignee+"的任务有"+taskList.size()+"个");
for (Task task : taskList) {
taskService.complete(task.getId());
}
taskList = taskService.createTaskQuery()
.taskAssignee(assignee).list();
System.out.println(assignee+"的任务执行完成,任务有"+taskList.size()+"个");
}
} ```