一般我們審批任務時,都會填寫審批意見、審批時間、審批人等信息。activiti為什么我們提供了act_hi_comment表和操作comment的API,現在我們就來學習如何使用(僅了解,我更喜歡自己建表,畢竟這是業務數據,和流程關系不大)。
-
//完成任務添加批注
-
-
public void completeTask(){
-
String taskId = "12504";
-
Task task = processEngine.getTaskService().createTaskQuery()
-
.taskId(taskId) //使用任務ID查詢
-
.singleResult();
-
String processInstanceId = task.getProcessInstanceId(); //獲取流程實例id
-
String message = "審批通過"; //批注信息
-
Authentication.setAuthenticatedUserId( "張三"); //設置審批人,若不設置則數據表userid字段為null
-
processEngine.getTaskService().addComment(taskId, processInstanceId, message); //添加批注
-
processEngine.getTaskService().complete(taskId); //完成任務
-
}
-
//查詢批注
-
-
public void findComment() {
-
-
//如果流程還在繼續執行,可以通過正在執行的任務獲取流程實例id
-
String taskId = "12504";
-
Task task = processEngine.getTaskService().createTaskQuery()
-
.taskId(taskId)
-
.singleResult();
-
String _processInstanceId = task.getProcessInstanceId();
-
List<Comment> _list = processEngine.getTaskService().getProcessInstanceComments(_processInstanceId);
-
-
//如果流程已經執行完畢,就要想辦法獲取到流程實例id
-
/*HistoricProcessInstance historicProcessInstance = processEngine.getHistoryService()
-
.createHistoricProcessInstanceQuery()
-
.processInstanceBusinessKey(businessKey) //關於businessKey請查看前面的教程《與業務關聯》
-
.singleResult();*/
-
String processInstanceId = "12501"; //這里我們直接指定流程實例id
-
List<Comment> list = processEngine.getTaskService().getProcessInstanceComments(processInstanceId);
-
for (Comment comment : list) {
-
System.out.println( "審批人:" + comment.getUserId());
-
System.out.println( "審批時間:" + comment.getTime());
-
System.out.println( "審批信息:" + comment.getFullMessage());
-
}
-
-
}