zoukankan      html  css  js  c++  java
  • Activiti5 添加/查询审批批注(审批意见)

    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);
    }
  • 相关阅读:
    MySQL—2、B-Tree,B+Tree,聚集索引,非聚集索引
    transient关键字的作用及使用方法
    通过Executors创建线程池和注意小点
    @Validated校验
    Elasticsearch-head插件的安装与配置
    bayaim_java_入门到精通_听课笔记bayaim_20181120
    bayaim_hadoop2_hdfs_20181107
    bayaim_hadoop1_2.2.0伪分布式搭建
    bayaim_hadoop 开篇 0.0
    bayaim_linux_configure_oracle
  • 原文地址:https://www.cnblogs.com/zmc/p/7338594.html
Copyright © 2011-2022 走看看