소스 검색

根据流程实例id获取子流程id列表

lamphua 2 달 전
부모
커밋
579b00f223

+ 9
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/controller/FlowInstanceController.java 파일 보기

@@ -8,9 +8,11 @@ import io.swagger.annotations.Api;
8 8
 import io.swagger.annotations.ApiOperation;
9 9
 import io.swagger.annotations.ApiParam;
10 10
 import lombok.extern.slf4j.Slf4j;
11
+import org.flowable.engine.history.HistoricProcessInstance;
11 12
 import org.springframework.beans.factory.annotation.Autowired;
12 13
 import org.springframework.web.bind.annotation.*;
13 14
 
15
+import java.util.List;
14 16
 import java.util.Map;
15 17
 
16 18
 /**
@@ -45,6 +47,13 @@ public class FlowInstanceController {
45 47
         return AjaxResult.success();
46 48
     }
47 49
 
50
+    @ApiOperation(value = "根据流程实例id获取子流程id列表")
51
+    @PostMapping(value = "/listSubProcInstId")
52
+    public AjaxResult listSubProcInstId(@ApiParam(value = "流程实例ID", required = true) @RequestParam String instanceId) {
53
+        List<HistoricProcessInstance> subProcInstIdList = flowInstanceService.listSubProcInstId(instanceId);
54
+        return AjaxResult.success(subProcInstIdList);
55
+    }
56
+
48 57
     @ApiOperation("结束流程实例")
49 58
     @PostMapping(value = "/stopProcessInstance")
50 59
     public AjaxResult stopProcessInstance(@RequestBody FlowTaskVo flowTaskVo) {

+ 7
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/IFlowInstanceService.java 파일 보기

@@ -29,6 +29,13 @@ public interface IFlowInstanceService {
29 29
      */
30 30
     void updateState(Integer state, String instanceId);
31 31
 
32
+    /**
33
+     * 根据流程实例id获取子流程id列表
34
+     *
35
+     * @param instanceId 流程实例ID
36
+     */
37
+    List<HistoricProcessInstance> listSubProcInstId(String instanceId);
38
+
32 39
     /**
33 40
      * 删除流程实例ID
34 41
      *

+ 17
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowInstanceServiceImpl.java 파일 보기

@@ -58,6 +58,23 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
58 58
         }
59 59
     }
60 60
 
61
+    /**
62
+     * 根据流程实例id获取子流程id列表
63
+     *
64
+     * @param instanceId 流程实例ID
65
+     */
66
+    @Override
67
+    public List<HistoricProcessInstance> listSubProcInstId(String instanceId) {
68
+        List<HistoricProcessInstance> historicProcessInstance =
69
+                historyService.createHistoricProcessInstanceQuery().superProcessInstanceId(instanceId).list();
70
+        for (HistoricProcessInstance processInstance : historicProcessInstance) {
71
+            if (processInstance.getProcessDefinitionId().contains("tech_plan")) {
72
+                historicProcessInstance.addAll(historyService.createHistoricProcessInstanceQuery().superProcessInstanceId(processInstance.getId()).list());
73
+            }
74
+        }
75
+        return historicProcessInstance;
76
+    }
77
+
61 78
     /**
62 79
      * 删除流程实例ID
63 80
      *

Loading…
취소
저장