1. 程式人生 > >Activiti5 添加/查詢審批批註(審批意見)

Activiti5 添加/查詢審批批註(審批意見)

查找 sse history 集合 信息 task test then activiti

Activiti5 添加/查詢審批批註

Activiti 工作流開發,23張表中,act_hi_commit 中,用於保存流程審核的批註信息:

調用: taskServer.addComment(taskId:任務 id ,processInstanceId: 流程實例 id ,message : 批註信息);

@Test
public void complementTask(){
TaskService taskService=processEngine.getTaskService();
//3. 使用任務服務完成任務(提交任務)
String taskId="37505";
// 使用任務id,獲取任務對象,獲取流程實例id
Task task=taskService.createTaskQuery().taskId(taskId).singleResult();
//利用任務對象,獲取流程實例id
String processInstancesId=task.getProcessInstanceId();

System.out.println(processInstancesId);

Authentication.setAuthenticatedUserId("cmc"); // 添加批註時候的審核人,通常應該從session獲取

taskService.addComment(taskId,processInstancesId,"嘗試添加批註");

taskService.complete(taskId);
}
查詢批註信息: 返回 List a. 使用任務 id 查找 批註信息 taskService.getTaskComments(taskid); 這個taskid,只是當時審批那人的任務id 註: 通常在審批流程中, 不同人審批的過程 taskid ,是不同的, 要查找 審批信息,就需要當時審批的時候的 taskId ,這個可以在歷史完成任務中查找當時對應的 taskId

@Test
public void findCommentByTaskId() {

String taskId="42503"; // 現在的任務id
HistoryService historyService=processEngine.getHistoryService();
TaskService taskService=processEngine.getTaskService();
List list = new ArrayList();
//使用當前的任務ID,查詢當前流程對應的歷史任務ID

//使用當前任務ID,獲取當前任務對象
Task task = taskService.createTaskQuery()//
.taskId(taskId)//使用任務ID查詢
.singleResult();
//獲取流程實例ID
String processInstanceId = task.getProcessInstanceId();
//使用流程實例ID,查詢歷史任務,獲取歷史任務對應的每個任務ID
List htiList = historyService.createHistoricTaskInstanceQuery()//歷史任務表查詢
.processInstanceId(processInstanceId)//使用流程實例ID查詢
.list();
//遍歷集合,獲取每個任務ID
if(htiList!=null && htiList.size()>0){
for(HistoricTaskInstance hti:htiList){
//任務ID
String htaskId = hti.getId();
//獲取批註信息
List taskList = taskService.getTaskComments(htaskId);//對用歷史完成後的任務ID
list.addAll(taskList);
}
}
list = taskService.getProcessInstanceComments(processInstanceId);


for(Comment com:list){
System.out.println("ID:"+com.getId());
System.out.println("Message:"+com.getFullMessage());
System.out.println("TaskId:"+com.getTaskId());
System.out.println("ProcessInstanceId:"+com.getProcessInstanceId());
System.out.println("UserId:"+com.getUserId());
}

System.out.println(list);
}

Activiti5 添加/查詢審批批註(審批意見)