Activiti5 添加/查询审批批注
Activiti 工作流开发,23张表中,act_hi_commit 中,用于保存流程审核的批注信息:
调用:
taskServer.addComment(taskId:任务 id ,processInstanceId: 流程实例 id ,message : 批注信息);
@Testpublic void complementTask(){TaskService taskService=processEngine.getTaskService();//3. 使用任务服务完成任务(提交任务)String taskId="37505";// 使用任务id,获取任务对象,获取流程实例idTask task=taskService.createTaskQuery().taskId(taskId).singleResult();//利用任务对象,获取流程实例idString 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
@Testpublic void findCommentByTaskId() { String taskId="42503"; // 现在的任务idHistoryService historyService=processEngine.getHistoryService();TaskService taskService=processEngine.getTaskService();List list = new ArrayList();//使用当前的任务ID,查询当前流程对应的历史任务ID //使用当前任务ID,获取当前任务对象Task task = taskService.createTaskQuery()//.taskId(taskId)//使用任务ID查询.singleResult();//获取流程实例IDString processInstanceId = task.getProcessInstanceId();//使用流程实例ID,查询历史任务,获取历史任务对应的每个任务IDList htiList = historyService.createHistoricTaskInstanceQuery()//历史任务表查询.processInstanceId(processInstanceId)//使用流程实例ID查询.list();//遍历集合,获取每个任务IDif(htiList!=null && htiList.size()>0){for(HistoricTaskInstance hti:htiList){//任务IDString htaskId = hti.getId();//获取批注信息List taskList = taskService.getTaskComments(htaskId);//对用历史完成后的任务IDlist.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);}
时间: 2024-10-10 02:04:05