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);
    }
  • 相关阅读:
    ubuntu14.04恢复系统默认中文字体
    Mcafee两个Mac版本之间的区别
    关于Windows系统防火墙
    诺顿序列号获取方法
    如何将软件限制策略发挥大作用
    BootCamp支持软件4/5
    Android系统分区理解及分区目录细解
    给Adobe Reader添加书签功能
    PHP面向对象之旅:static变量与方法
    INSERT IGNORE 与 INSERT INTO的区别
  • 原文地址:https://www.cnblogs.com/zmc/p/7338594.html
Copyright © 2011-2022 走看看