【入門篇】Activiti查詢指定流程定義下待辦task
阿新 • • 發佈:2019-01-31
需求
某人登入系統後,需要對他待辦的任務進行處理
涉及到的表
act_ru_task
方案
根據流程定義key和任務人,依賴taskservice服務,查詢act_ru_task表待辦內容
程式碼
//查詢當前使用者的待辦任務 @Test public void findPersonalTaskList(){ //得到runtimeService RuntimeService runtimeService = processEngine.getRuntimeService(); //查詢任務使用TaskService TaskService taskService = processEngine.getTaskService(); //流程定義key(流程定義的標識) String processDefinitionKey = "purchasingflow";//採購流程標識 //任務負責人 String assignee = "zhangsan"; //建立查詢物件 TaskQuery taskQuery = taskService.createTaskQuery(); //設定查詢條件 taskQuery.taskAssignee(assignee); //指定流程定義key,只查詢某個流程的任務 taskQuery.processDefinitionKey(processDefinitionKey); //獲取查詢列表 List<Task> list = taskQuery.list(); for (Task task : list) { //流程例項id String processInstanceId = task.getProcessInstanceId(); //根據流程例項id找到流程例項物件 ProcessInstance processInstance = runtimeService .createProcessInstanceQuery() .processInstanceId(processInstanceId) .singleResult(); //從流程例項物件獲取bussinesskey String businessKey = processInstance.getBusinessKey(); //根據businessKey查詢業務系統,獲取相關的業務資訊 System.out.println("流程例項id:" + task.getProcessInstanceId()); System.out.println("任務id:" + task.getId()); System.out.println("任務標識:" + task.getTaskDefinitionKey()); System.out.println("任務負責人:" + task.getAssignee()); System.out.println("任務名稱:" + task.getName()); System.out.println("任務建立時間:" + task.getCreateTime()); } }