Activiti7 查询任务执行流程图【十】

Activiti 7系列文章目录

文章代码下载

Activiti7 工作流设计器【一】
Activiti7 创建表【二】
Activiti7 表结构介绍 【三】
Activiti7 设计器创建流程 【四】
Activiti7 部署流程【五】
Activiti7 查询流程【六】
Activiti7 删除流程【七】
Activiti7 生成SVG图片【八】
Activiti7 发起任务【九】
Activiti7 查询任务执行流程图【十】
Activiti7 完成任务【十一】
Activiti7 历史数据【十二】
Activiti7 任务办理人、委派、转办、持有人、候选人、候选人组、审批意见【十三】
Activiti7 监听器【十四】
Activiti7 流程变量【十五】
Activiti7 网关Gateway【十六】
Activiti7 整合SpringBoot【十七】
Activiti7 多种任务类型【十八】
Activiti7 子流程【十九】
Activiti7 流程回退、流程拒绝【二十】

14、Activiti7 查询历史流程实例、活动、任务

我们可以通过activiti的TaskService以及HistoryService来查询当前任务,以及将当前执行的流程图输出,这样我们在项目中就可以实时查询流程执行到的具体位置

查询当前任务节点


//查询当前任务节点
@Test
public void testQueryCurrentTask(){
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    TaskService taskService = processEngine.getTaskService();
    List<Task> list = taskService.createTaskQuery().list();
    for (Task task : list) {
        System.out.println("task.getId() = " + task.getId());
        System.out.println("task.getName() = " + task.getName());
    }
}

查询当前任务节点图

这里最主要是的是查询到历史的人物活动节点,是开始、过程中、还是结束。。。

/**
 * 生成流程图
 */
@Test
public void generateTaskToSvg() throws IOException {
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    TaskService taskService = processEngine.getTaskService();
    RuntimeService runtimeService = processEngine.getRuntimeService();
    RepositoryService repositoryService = processEngine.getRepositoryService();
    HistoryService historyService = processEngine.getHistoryService();
	//这里只是返回所有任务最新的一个任务,实际开发中大家可以根据taskid来生成
    HistoricTaskInstance historicTaskInstance = historyService
            .createHistoricTaskInstanceQuery()
            .orderByTaskCreateTime().desc()
            .list().get(0);

    BpmnModel model = repositoryService.getBpmnModel(historicTaskInstance.getProcessDefinitionId());

    ProcessDiagramGenerator generator = new DefaultProcessDiagramGenerator();

    //lastTask是当前任务执行到的位置
    List<HistoricActivityInstance> lastTasks =
            historyService.createHistoricActivityInstanceQuery()
                    .processInstanceId(historicTaskInstance.getProcessInstanceId())
                    .orderByHistoricActivityInstanceStartTime()
                    .desc()
                    .list();
    List<String> lastTask = lastTasks.stream()
            .map(HistoricActivityInstance::getActivityId)
            .limit(1)
            .collect(Collectors.toList());
    lastTask.add(lastTasks.get(0).getActivityId());

    //七个参数分别是:
    //  BPMNModel
    //  高光节点
    //  高光顺序流
    //  活动字体名称
    //  标签字体名称
    //  批注字体名称
    //  生成默认关系图
    //  默认关系图映像文件名
    InputStream inputStream = generator.generateDiagram(
            model, lastTask, Collections.emptyList(), "宋体", "宋体", "宋体", true, "test");

    String imageName = "image-" + Instant.now().getEpochSecond() + ".svg";
    FileUtils.copyInputStreamToFile(inputStream, new File("processes/" + imageName));


}

生成如下图,表示该流程执行到【经理审批】节点
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Activiti工作流的课件整体、讲师: 刘洋 内容如下: 1:工作流的概念 1 2:工作流执行过程 1 3:Activiti介绍 1 3.1:工作流引擎 2 3.2:BPMN 2 3.3:数据库(先学后看) 2 3.4:activiti.cfg.xml(activiti的配置文件) 4 3.5:logging.properties(日志处理) 5 4:准备环境 6 4.1:activiti5 软件环境 6 4.2:相关资源下载 6 4.3:安装流程设计器(eclipse插件) 6 4.4:对流程设计器的使用说明 10 4.5:准备Activiti5开发环境 11 5:核心API 12 5.1:ProcessEngine 13 5.2:RepositoryService 13 5.3:RuntimeService 14 5.4:TaskService 14 5.5:HistoryService 14 5.6:ProcessDefinition 14 5.7:ProcessInstance 14 5.8:Execution 14 6:HelloWorld程序(模拟流程执行) 16 6.1:流程图: 16 6.2:部署流程定义 16 6.3:启动流程实例 17 6.4:查看我的个人任务 17 6.5:完成我的个人任务 17 7:管理流程定义 18 7.1:设计流程定义文档 18 7.2:部署流程定义(classpath路径加载文件) 19 7.3:部署流程定义(zip格式文件) 20 7.4:查看流程定义 21 7.5:删除流程定义 22 7.6:获取流程定义文档的资源(查看流程图附件) 22 7.7:附加功能:查询最新版本的流程定义 23 7.8:附加功能:删除流程定义(删除key相同的所有不同版本的流程定义) 23 7.9:总结 24 8:流程实例、任务执行 25 8.1:流程图 25 8.2:部署流程定义 26 8.3:启动流程实例 26 8.4:查询我的个人任务 26 8.5:办理任务 27 8.6:查询流程状态(判断流程正在执行,还是结束) 28 8.7:附加功能:查询历史任务(后面讲) 28 8.8:附加功能:查询历史流程实例(后面讲) 29 8.9:总结 29 9:流程变量 30 9.1:流程图 30 9.2:部署流程定义 31 9.3:启动流程实例 32 9.4:设置流程变量 32 9.5:获取流程变量 33 9.6:模拟流程变量的设置和获取的场景 34 9.7:查询历史的流程变量 35 9.8:流程变量的支持的类型 35 9.9:总结 35 10:流程执行历史记录 36 10.1:查询历史流程实例 36 10.2:查询历史活动 37 10.3:查询历史任务 37 10.4:查询历史流程变量 37 10.5:总结 38 11:连线 38 11.1:流程图 38 11.2:部署流程定义+启动流程实例 39 11.3:查询我的个人任务 40 11.4:完成任务 40 11.5:总结 40 12:排他网关(ExclusiveGateWay) 41 12.1:流程图 41 12.2:部署流程定义+启动流程实例 42 12.3:查询我的个人任务 42 12.4:完成我的个人任务 43 13:并行网关(parallelGateWay) 44 13.1:流程图 44 13.2:部署流程定义+启动流程实例 45 13.3:查询我的个人任务 45 13.4:完成我的个人任务 45 14:开始活动节点 46 14.1:流程图 46 14.2:部署流程定义+启动流程实例+查询流程实例+查询历史流程实例 47 14.3:总结 47 15:接收活动(receiveTask,即等待活动) 47 15.1:流程图 48 15.2:部署流程定义+启动流程实例 48 16:用户任务(userTask,即用户操作的任务) 50 16.1:个人任务 50 16.2:组任务 56 16.3:工作流定义的角色组(了解) 68

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员一灯

请给我打钱!!!谢谢,不客气!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值