當我們知道了個人的任務後就可以對任務進行完結
接下來我們用代碼完結任務
完結任務的步驟:
- 得到ProcessEngine對象
- 得到TaskService對象
- 查詢任務
- 判斷
- 完結任務
創捷類ActivitiTask
public class ActivitiTask {
public static void main(String[] args) {
//1:定義ProcessEngine對象,自己封裝的工具類也可以
ProcessEngines.getDefaultProcessEngine();
ProcessEngine processEngine= ReturnProcessEngineUtil.getProcessEngine();
//2:得到TaskService對象
TaskService taskService=processEngine.getTaskService();
//3:查詢任務
Task task=taskService.createTaskQuery().processDefinitionKey("day").taskAssignee("xiaoyi").singleResult();
//4:判斷
if(task!=null){
//5:完成任務
taskService.complete(taskId);
System.out.println(" 完結任務 ");
System.out.println("task.getId() = " + task.getId());
}
}
}
我們看下數據庫被影響的表
- act_hi_actinst 已完成的活動信息
- act_hi_identitylink 參與者信息
- act_hi_taskinst 任務實例
- act_ru_identitylink 參與者信息
- act_ru_task 當前任務
act_hi_actinst表:我們看到執行人xiaoyi有了結束時間,並且表中多了一條xiaoer的任務,還沒有完成任務,所以還沒有就結束時間
act_hi_identitylink表:可以看到表中多了一條參與者信息,因爲xiaoyi任務完成後,會自動到了洗澡也就是xiaoer的任務
act_hi_taskinst表:相同的,可以看到任務實例中也多了xiaoer的記錄
act_ru_identitylink表:
act_ru_task表:可以看到之前xiaoyi的吃飯任務被覆蓋了,取而代之的時xiaoer的洗澡任務,xiaoer任務執行完後同樣會被覆蓋,知道流程走完act_ru_task就會被清空
原創文章,未經允許禁止盜用