潘志宝
2024-11-11 31bd2c17088ec34072deabe106ff1d695c8b2b49
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.bpm.service.definition;
H 2
3 import com.iailab.framework.common.pojo.PageResult;
4 import com.iailab.module.bpm.controller.admin.definition.vo.process.BpmProcessDefinitionPageReqVO;
5 import com.iailab.module.bpm.dal.dataobject.definition.BpmFormDO;
6 import com.iailab.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
7 import com.iailab.module.bpm.service.definition.dto.BpmModelMetaInfoRespDTO;
8 import org.flowable.bpmn.model.BpmnModel;
9 import org.flowable.engine.repository.Deployment;
10 import org.flowable.engine.repository.Model;
11 import org.flowable.engine.repository.ProcessDefinition;
12
13 import java.util.Collection;
14 import java.util.List;
15 import java.util.Map;
16 import java.util.Set;
17
18 import static com.iailab.framework.common.util.collection.CollectionUtils.convertMap;
19
20 /**
21  * Flowable流程定义接口
22  *
23  * @author yunlong.li
24  * @author ZJQ
25  * @author iailab
26  */
27 public interface BpmProcessDefinitionService {
28
29     /**
30      * 获得流程定义分页
31      *
32      * @param pageReqVO 分页入参
33      * @return 流程定义 Page
34      */
35     PageResult<ProcessDefinition> getProcessDefinitionPage(BpmProcessDefinitionPageReqVO pageReqVO);
36
37     /**
38      * 获得流程定义列表
39      *
40      * @param suspensionState 中断状态
41      * @return 流程定义列表
42      */
43     List<ProcessDefinition> getProcessDefinitionListBySuspensionState(Integer suspensionState);
44
45     /**
46      * 基于流程模型,创建流程定义
47      *
48      * @param model 流程模型
49      * @param modelMetaInfo 流程模型元信息
50      * @param bpmnBytes BPMN XML 字节数组
51      * @param form 表单
52      * @return 流程编号
53      */
54     String createProcessDefinition(Model model, BpmModelMetaInfoRespDTO modelMetaInfo, byte[] bpmnBytes, BpmFormDO form);
55
56     /**
57      * 更新流程定义状态
58      *
59      * @param id 流程定义的编号
60      * @param state 状态
61      */
62     void updateProcessDefinitionState(String id, Integer state);
63
64     /**
65      * 获得流程定义对应的 BPMN
66      *
67      * @param id 流程定义编号
68      * @return BPMN
69      */
70     BpmnModel getProcessDefinitionBpmnModel(String id);
71
72     /**
73      * 获得流程定义的信息
74      *
75      * @param id 流程定义编号
76      * @return 流程定义信息
77      */
78     BpmProcessDefinitionInfoDO getProcessDefinitionInfo(String id);
79
80     /**
81      * 获得流程定义的信息 List
82      *
83      * @param ids 流程定义编号数组
84      * @return 流程额定义信息数组
85      */
86     List<BpmProcessDefinitionInfoDO> getProcessDefinitionInfoList(Collection<String> ids);
87
88     default Map<String, BpmProcessDefinitionInfoDO> getProcessDefinitionInfoMap(Set<String> ids) {
89         return convertMap(getProcessDefinitionInfoList(ids), BpmProcessDefinitionInfoDO::getProcessDefinitionId);
90     }
91
92     /**
93      * 获得流程定义编号对应的 ProcessDefinition
94      *
95      * @param id 流程定义编号
96      * @return 流程定义
97      */
98     ProcessDefinition getProcessDefinition(String id);
99
100     /**
101      * 获得 ids 对应的 ProcessDefinition 数组
102      *
103      * @param ids 编号的数组
104      * @return 流程定义的数组
105      */
106     List<ProcessDefinition> getProcessDefinitionList(Set<String> ids);
107
108     default Map<String, ProcessDefinition> getProcessDefinitionMap(Set<String> ids) {
109         return convertMap(getProcessDefinitionList(ids), ProcessDefinition::getId);
110     }
111
112     /**
113      * 获得 deploymentId 对应的 ProcessDefinition
114      *
115      * @param deploymentId 部署编号
116      * @return 流程定义
117      */
118     ProcessDefinition getProcessDefinitionByDeploymentId(String deploymentId);
119
120     /**
121      * 获得 deploymentIds 对应的 ProcessDefinition 数组
122      *
123      * @param deploymentIds 部署编号的数组
124      * @return 流程定义的数组
125      */
126     List<ProcessDefinition> getProcessDefinitionListByDeploymentIds(Set<String> deploymentIds);
127
128     /**
129      * 获得流程定义标识对应的激活的流程定义
130      *
131      * @param key 流程定义的标识
132      * @return 流程定义
133      */
134     ProcessDefinition getActiveProcessDefinition(String key);
135
136     /**
137      * 获得 ids 对应的 Deployment Map
138      *
139      * @param ids 部署编号的数组
140      * @return 流程部署 Map
141      */
142     default Map<String, Deployment> getDeploymentMap(Set<String> ids) {
143         return convertMap(getDeploymentList(ids), Deployment::getId);
144     }
145
146     /**
147      * 获得 ids 对应的 Deployment 数组
148      *
149      * @param ids 部署编号的数组
150      * @return 流程部署的数组
151      */
152     List<Deployment> getDeploymentList(Set<String> ids);
153
154     /**
155      * 获得 id 对应的 Deployment
156      *
157      * @param id 部署编号
158      * @return 流程部署
159      */
160     Deployment getDeployment(String id);
161
162 }