其他分享
首页 > 其他分享> > Activiti添加批注(comment)信息

Activiti添加批注(comment)信息

作者:互联网

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

1、添加批注

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

复制代码
public List getProcessComments(String taskId) {
List historyCommnets = new ArrayList<>();
// 1) 获取流程实例的ID
Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult();
ProcessInstance pi =runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult();
// 2)通过流程实例查询所有的(用户任务类型)历史活动
List hais = historyService.createHistoricActivityInstanceQuery().processInstanceId(pi.getId()).activityType(“userTask”).list();
// 3)查询每个历史任务的批注
for (HistoricActivityInstance hai : hais) {
String historytaskId = hai.getTaskId();
List comments = taskService.getTaskComments(historytaskId);
// 4)如果当前任务有批注信息,添加到集合中
if(comments!=null && comments.size()>0){
historyCommnets.addAll(comments);
}
}
// 5)返回
return historyCommnets;
}
复制代码
  3、在准备任务表单页面时显示批注(将上面的list放入值栈中,用struts2标签遍历)

复制代码
<!–
显示所有批注信息
例如:
1999-01-01
张三 : 你好

       1999-01-02  
                    李四 : 你也好          
  -->
 <s:iterator value="#comments">
     <s:date name="time" format="yyyy-MM-dd hh:mm"/><br/>
     <s:property value="userId"/> : <s:property value="fullMessage"/><br/><br/>
 </s:iterator>

标签:comment,批注,Activiti,List,comments,信息,taskId,taskService
来源: https://blog.csdn.net/liufeifeihuawei/article/details/113848025