提交 | 用户 | 时间
|
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 |
} |