任務的類型
任務的圖形化是以矩形為基礎
在左側添加具體的圖標,
用來描述一種特定任務類型。
用戶任務需要人來參與,需要人為觸發。
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
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 Test04Task {
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
/**
* 先創建一張流程圖
* 然后創建一個具體的流程審批實例
* 才能執行具體的審批流程
* 每一個流程節點相當於一個task
*/
@Test
public void init() {
String fileName = "BPMN/test04.bpmn";
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource(fileName)
.name("流程審批V1")
.deploy();
System.out.println(deployment.getName());
String bpmnId = "myProcess_task";//bpmn文件定義的id
String bussinessKey = "";//自定義的業務id
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(bpmnId, bussinessKey);
//返回流程實體的流程定義id
//myProcess_task:1:761a75f4-4c12-11eb-a38b-6c71d96cc83a
System.out.println(processInstance.getProcessDefinitionId());
}
/**
* 查詢任務實例
*/
@Test
public void test111() {
List<Task> tasks = taskService.createTaskQuery().list();
for (int i = 0; i < tasks.size(); i++) {
Task task = tasks.get(i);
System.out.println(task.getDelegationState());
System.out.println(task.getId());//7153543a-4bcc-11eb-b25e-6c71d96cc83a
System.out.println(task.getCreateTime());
System.out.println(task.getDescription());
}
}
/**
* 查詢某人當前的待辦任務
*/
@Test
public void test222() {
List<Task> tasks = taskService.createTaskQuery()
.taskAssignee("bajie")
.list();
for (int i = 0; i < tasks.size(); i++) {
Task task = tasks.get(i);
System.out.println(task.getDelegationState());
System.out.println(task.getId());//7153543a-4bcc-11eb-b25e-6c71d96cc83a
System.out.println(task.getCreateTime());
System.out.println(task.getDescription());
}
}
/**
* 完成某個節點的任務
* 任務完成以后會流轉到下一個人
*/
@Test
public void test333() {
taskService.complete("7153543a-4bcc-11eb-b25e-6c71d96cc83a");
System.out.println("任務完成");
}
@Test
public void test400() {
String fileName = "BPMN/test04Claim.bpmn";
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource(fileName)
.name("多個候選人任務")
.deploy();
System.out.println(deployment.getName());
String bpmnId = "myProcess_claim";//bpmn文件定義的id
String bussinessKey = "";//自定義的業務id
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(bpmnId, bussinessKey);
//返回流程實體的流程定義id
//myProcess_claim:1:dfd1c4d5-4c16-11eb-91e5-6c71d96cc83a
System.out.println(processInstance.getProcessDefinitionId());
}
/**
* 一個任務多個候選人
* 某個候選人拾取任務
*/
@Test
public void test444() {
//通過taskService.createTaskQuery().list()獲取taskid
String taskId = "dfedb14a-4c16-11eb-91e5-6c71d96cc83a";
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
System.out.println(task.getId());
taskService.claim(taskId, "bajie");
}
/**
* 任務拾取錯了
* 歸還任務
* 任務缺乏執行能力 把任務交辦出去給別人辦理
*/
@Test
public void test555() {
String taskId = "dfedb14a-4c16-11eb-91e5-6c71d96cc83a";
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
taskService.setAssignee(taskId, "null");//歸還候選任務
taskService.setAssignee(taskId, "wukong");//交辦
}
}