懒羊羊
2023-08-30 71e81ed1d12e4d69f53c8ad9e066650ad4186293
提交 | 用户 | 时间
71e81e 1 package cn.stylefeng.guns.workflow.modular.controller.base;
2
3 import cn.stylefeng.roses.core.base.controller.BaseController;
4 import org.activiti.engine.RuntimeService;
5 import org.activiti.engine.runtime.ProcessInstance;
6 import org.springframework.beans.factory.annotation.Autowired;
7
8 import java.util.Map;
9
10 /**
11  * 启动流程用
12  *
13  * @author fengshuonan
14  * @Date 2019-08-27 18:21
15  */
16 public class AcStartController extends BaseController {
17
18     /**
19      * 与正在执行的流程实例和执行对象相关的Service(执行管理,包括启动、推进、删除流程实例等操作)
20      */
21     @Autowired
22     private RuntimeService runtimeService;
23
24     /**
25      * 通过KEY启动流程实例(不带变量)
26      *
27      * @param processInstanceKey 流程定义的KEY
28      * @return 返回流程实例ID
29      */
30     protected String startProcessInstanceByKey(String processInstanceKey) {
31
32         //用流程定义的KEY启动,会自动选择KEY相同的流程定义中最新版本的那个(KEY为模型中的流程唯一标识)
33         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey);
34
35         //返回流程实例ID
36         return processInstance.getId();
37     }
38
39     /**
40      * 通过KEY启动流程实例(带变量)
41      *
42      * @param processInstanceKey 流程定义的KEY
43      * @return 返回流程实例ID
44      */
45     protected String startProcessInstanceByKeyHasVariables(String processInstanceKey, Map<String, Object> map) {
46
47         //map存储变量 用流程定义的KEY启动,会自动选择KEY相同的流程定义中最新版本的那个(KEY为模型中的流程唯一标识)
48         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceKey, map);
49
50         //返回流程实例ID
51         return processInstance.getId();
52     }
53
54     /**
55      * 通过ID启动流程实例
56      *
57      * @param processInstanceId 流程定义的ID
58      * @return 返回流程实例ID
59      */
60     protected String startProcessInstanceById(String processInstanceId) {
61
62         //用流程定义的ID启动
63         ProcessInstance processInstance = runtimeService.startProcessInstanceById(processInstanceId);
64
65         //返回流程实例ID
66         return processInstance.getId();
67     }
68
69 }