Activiti添加批注(comment)信息

在每次提交任务的时候需要描述一些批注信息,例如:请假流程提交的时候要描述信息为什么请假,如果领导驳回可以批注驳回原因等

 1、添加批注


// 由于流程用户上下文对象是线程独立的,所以要在需要的位置设置,要保证设置和获取操作在同一个线程中
       Authentication.setAuthenticatedUserId(UserContext.get().getName());//批注人的名称  一定要写,不然查看的时候不知道人物信息
       // 添加批注信息
       taskService.addComment(taskId, null, comment);//comment为批注内容
       // 完成任务
       taskService.complete(taskId,vars);//vars是一些变量


public List<Comment> getProcessComments(String taskId) {
       List<Comment> historyCommnets = new ArrayList<>();
//         1) 获取流程实例的ID
       Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
       ProcessInstance pi =runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
//       2)通过流程实例查询所有的(用户任务类型)历史活动
       List<HistoricActivityInstance> hais = historyService.createHistoricActivityInstanceQuery().processInstanceId(pi.getId()).activityType("userTask").list();
//       3)查询每个历史任务的批注
       for (HistoricActivityInstance hai : hais) {
           String historytaskId = hai.getTaskId();
           List<Comment> comments = taskService.getTaskComments(historytaskId);
           // 4)如果当前任务有批注信息,添加到集合中
           if(comments!=null && comments.size()>0){
               historyCommnets.addAll(comments);
           }
       }
//       5)返回
        return historyCommnets;
   }

	```
09-15 21:36