日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工作流实战_11_flowable 流程实例 跟踪流程

發(fā)布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工作流实战_11_flowable 流程实例 跟踪流程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
項目地址https://gitee.com/lwj/flowable.git
代碼分支flowable-base
視頻講解地址https://space.bilibili.com/485524575/channel/detail?cid=94579
用戶名密碼
0000001test
0000002test
0000003test
0000004test

文章目錄

      • 1. 演示
      • 2. 代碼分享

1. 演示


2. 代碼分享

public byte[] createImage(String processInstanceId) {//1.獲取當(dāng)前的流程實例ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();String processDefinitionId = null;List<String> activeActivityIds = new ArrayList<>();List<String> highLightedFlows = new ArrayList<>();//2.獲取所有的歷史軌跡線對象List<HistoricActivityInstance> historicSquenceFlows = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).activityType(BpmnXMLConstants.ELEMENT_SEQUENCE_FLOW).list();historicSquenceFlows.forEach(historicActivityInstance -> highLightedFlows.add(historicActivityInstance.getActivityId()));//3. 獲取流程定義id和高亮的節(jié)點idif (processInstance != null) {//3.1. 正在運行的流程實例processDefinitionId = processInstance.getProcessDefinitionId();activeActivityIds = runtimeService.getActiveActivityIds(processInstanceId);} else {//3.2. 已經(jīng)結(jié)束的流程實例HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();processDefinitionId = historicProcessInstance.getProcessDefinitionId();//3.3. 獲取結(jié)束節(jié)點列表List<HistoricActivityInstance> historicEnds = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).activityType(BpmnXMLConstants.ELEMENT_EVENT_END).list();List<String> finalActiveActivityIds = activeActivityIds;historicEnds.forEach(historicActivityInstance -> finalActiveActivityIds.add(historicActivityInstance.getActivityId()));}//4. 獲取bpmnModel對象BpmnModel bpmnModel = flowableBpmnModelService.getBpmnModelByProcessDefId(processDefinitionId);//5. 生成圖片流InputStream inputStream = flowProcessDiagramGenerator.generateDiagram(bpmnModel, activeActivityIds, highLightedFlows);//6. 轉(zhuǎn)化成byte便于網(wǎng)絡(luò)傳輸byte[] datas = IoUtil.readInputStream(inputStream, "image inputStream name");return datas;}

總結(jié)

以上是生活随笔為你收集整理的工作流实战_11_flowable 流程实例 跟踪流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。