【弄nèng - Activiti6】Activiti6应用篇之生成流程跟踪图

文章目录

本文建议你熟悉Activiti之后在阅读,是Activiti的应用篇。直接上应用代码,包含生成流程跟踪图功能。Springboot搭建Activiti整合流程设计器 请查看这篇博客https://blog.csdn.net/yy756127197/article/details/101211510

后台服务基于Springboot2 + Mybatis-plus3 + Lombok + Swagger + Hutool工具类

1. 代码

	/**
     * ActivitiConstant.LEAVE_BUSINESSKEY = "leave." 是businessKey前缀
     * 
     * @param id  业务ID
     * @param response
     * @throws Exception
     */
	@ApiOperation(value = "读取带跟踪的图片", notes = "读取带跟踪的图片")
    @GetMapping(value = "/process/trace/auto/{id}")
    public void readResource(@PathVariable("id") String id, HttpServletResponse response)
            throws Exception {
        // 流程businessKey
        String businessKey = ActivitiConstant.LEAVE_BUSINESSKEY + id;
        ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
                .processInstanceBusinessKey(businessKey)
                .singleResult();
        InputStream imageStream;
        // 存活
        if (processInstance != null) {
            BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId());
            List<String> activeActivityIds = runtimeService.getActiveActivityIds(processInstance.getId());
            // 不使用spring请使用下面的两行代码
            // ProcessEngineImpl defaultProcessEngine = (ProcessEngineImpl) ProcessEngines.getDefaultProcessEngine();
            // Context.setProcessEngineConfiguration(defaultProcessEngine.getProcessEngineConfiguration());

            // 使用spring注入引擎请使用下面的这行代码
            ProcessEngineConfiguration processEngineConfiguration = processEngine.getProcessEngineConfiguration();
            Context.setProcessEngineConfiguration((ProcessEngineConfigurationImpl) processEngineConfiguration);

            ProcessDiagramGenerator diagramGenerator = processEngineConfiguration.getProcessDiagramGenerator();
            imageStream = diagramGenerator.generateDiagram(bpmnModel, "png", activeActivityIds,
                    Collections.<String>emptyList(), "宋体", "宋体", "宋体", null, 1.0);
        } else {
            HistoricProcessInstance historyProcessInstance = historyService.createHistoricProcessInstanceQuery()
                    .processInstanceBusinessKey(businessKey)
                    .singleResult();
            imageStream = actReProcdefService.readResource(historyProcessInstance.getProcessDefinitionId(),
                    null, ActivitiConstant.IMAGE);
        }


        // 输出资源内容到相应对象
        byte[] b = new byte[1024];
        int len;
        while ((len = imageStream.read(b, 0, 1024)) != -1) {
            response.getOutputStream().write(b, 0, len);
        }
    }

源码地址

IT-CLOUD :IT服务管理平台,集成基础服务,中间件服务,监控告警服务等。
开源项目,持续更新中,喜欢请 Star~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值