activiti 生成当前任务图片PNG

简介: activiti 生成当前任务图片PNG
/**生成当前任务节点流程图片PNG
   * @param PROC_INST_ID_ //流程实例ID
   * @param FILENAME    //图片名称
   * @from fhadmin.cn 
   */
  protected void createXmlAndPngAtNowTask(String PROC_INST_ID_, String FILENAME) throws IOException{
    DelFileUtil.delFolder(PathUtil.getProjectpath()+"uploadFiles/activitiFile");  //生成先清空之前生成的文件
        InputStream in = getResourceDiagramInputStream(PROC_INST_ID_); 
        FileUpload.copyFile(in,PathUtil.getProjectpath()+Const.FILEACTIVITI,FILENAME);//把文件上传到文件目录里面
        in.close();  
  }
  /**获取当前任务流程图片的输入流
   * @param PROC_INST_ID_ //流程实例ID
   * @from fhadmin.cn 
   */
  private InputStream getResourceDiagramInputStream(String PROC_INST_ID_){
        try {
            HistoricProcessInstance hip = historyService.createHistoricProcessInstanceQuery().processInstanceId(PROC_INST_ID_).singleResult();      //获取历史流程实例
            List<HistoricActivityInstance> hai = historyService.createHistoricActivityInstanceQuery().processInstanceId(PROC_INST_ID_)
                                                         .orderByHistoricActivityInstanceId().asc().list(); //获取流程中已经执行的节点,按照执行先后顺序排序
            List<String> executedActivityIdList = new ArrayList<String>();            // 构造已执行的节点ID集合
            for (HistoricActivityInstance activityInstance : hai) {
                executedActivityIdList.add(activityInstance.getActivityId());
            }
            BpmnModel bpmnModel = repositoryService.getBpmnModel(hip.getProcessDefinitionId()); // 获取bpmnModel
            List<String> flowIds = this.getExecutedFlows(bpmnModel, hai);           // 获取流程已发生流转的线ID集合
            ProcessDiagramGenerator processDiagramGenerator = processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator(); 
            InputStream imageStream = processDiagramGenerator.generateDiagram(bpmnModel, "png", executedActivityIdList, flowIds, "宋体", "微软雅黑", "黑体", null, 2.0);  //使用默认配置获得流程图表生成器,并生成追踪图片字符流
            return imageStream;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

 

目录
相关文章
|
前端开发 Java
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
Java Process类Runtime.getRuntime().exec() 执行bat脚本程序
782 0
|
机器学习/深度学习 编解码 算法
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
556 0
Cron表达式范例:每隔5秒执行一次:*/5 * * * * ?
Cron表达式范例: 每隔5秒执行一次:*/5 * * * * ? 每隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 23 * * ? ...
6544 0
|
存储 监控 测试技术
三大工作流引擎技术Activiti、Camunda、Flowable选型指南
三大工作流引擎技术Activiti、Camunda、Flowable选型指南
|
机器学习/深度学习 边缘计算 缓存
有哪些方法可以降低 LLM 的计算成本?
【8月更文挑战第13天】
317 5
poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
723 0
activiti 会签多实例任务,设置为候选组或个人任务的总结
activiti 会签多实例任务,设置为候选组或个人任务的总结
1327 0
activiti 会签多实例任务,设置为候选组或个人任务的总结
|
SpringCloudAlibaba Java Nacos
Nacos报错问题之服务端注册的时候返回404如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
1711 1
|
XML Java 数据库
【二十三】springboot整合activiti7(1)实战演示篇
【二十三】springboot整合activiti7(1)实战演示篇
798 0
Layui表格头部工具栏取消默认的三个功能
Layui表格头部工具栏取消默认的三个功能
691 0
Layui表格头部工具栏取消默认的三个功能