activiti学习--05流程实例:查询流程状态+查询历史任务+查询历史流程实例

时间:2023-02-06 19:59:36

查询流程状态

    /**查询流程状态(判断流程正在执行,还是结束)*/
    @Test
    public void isProcessEnd(){
        String processInstanceId = "1401";
        //去正在执行的任务表查询
        ProcessInstance pi = processEngine.getRuntimeService()//表示正在执行的流程实例和执行对象
                        .createProcessInstanceQuery()//创建流程实例查询
                        .processInstanceId(processInstanceId)//使用流程实例ID查询
                        .singleResult();
        if(pi==null){
            System.out.println("该流程实例走完");
        }
        else{
            System.out.println("该流程实例还没走完");
        }
// 输出:
// 该流程实例还没走完
    }

查询历史任务

/**查询历史任务*/
    @Test
    public void findHistoryTask(){
        String taskAssignee = "小黄";
        List<HistoricTaskInstance> list = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
                        .createHistoricTaskInstanceQuery()//创建历史任务实例查询
                        .taskAssignee(taskAssignee)//指定历史任务的办理人
                        .list();
        if(list!=null && list.size()>0){
            for(HistoricTaskInstance pi:list){
                   System.out.println("流程实例ID:"+pi.getId());//流程实例ID 
                   System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID 
                   System.out.println("流程名称:"+pi.getName());
                   System.out.println("代理人:"+pi.getAssignee());
            }
        }
    }
输出:
流程实例ID:1404
流程定义ID:askForLeave:8:1304
流程名称:请假申请
代理人:小黄
流程实例ID:304
流程定义ID:askForLeave:2:204
流程名称:请假申请
代理人:小黄

查询历史流程实例

    /**查询历史流程实例*/
    @Test
    public void findHistoryProcessInstance(){
        String processInstanceId = "1401";
        HistoricProcessInstance pi = processEngine.getHistoryService()//与历史数据(历史表)相关的Service
                        .createHistoricProcessInstanceQuery()//创建历史流程实例查询
                        .processInstanceId(processInstanceId)//使用流程实例ID查询
                        .singleResult();
           System.out.println("流程实例ID:"+pi.getId());//流程实例ID 
           System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID 
           System.out.println("流程开始时间:"+pi.getStartTime());
           System.out.println("流程结束时间:"+pi.getEndTime());
    }
输出:
流程实例ID:1401
流程定义ID:askForLeave:8:1304
流程开始时间:Tue Sep 05 22:09:10 CST 2017
流程结束时间:null