|
@@ -1,111 +0,0 @@
|
1
|
|
-package com.horizon.wf.core.rule;
|
2
|
|
-
|
3
|
|
-import cn.hutool.http.HttpUtil;
|
4
|
|
-import com.horizon.common.constant.Constants;
|
5
|
|
-import com.horizon.wf.bean.WorkParaBean;
|
6
|
|
-import com.horizon.wf.core.runtime.RunningData;
|
7
|
|
-import com.horizon.wf.definition.pub.IFlowNode;
|
8
|
|
-import com.horizon.wf.entity.db.DBTrack;
|
9
|
|
-import com.horizon.wf.entity.db.DBWork;
|
10
|
|
-import com.horizon.wf.entity.user.IRunUser;
|
11
|
|
-import com.horizon.wf.global.StaticVarExtend;
|
12
|
|
-
|
13
|
|
-import java.util.HashMap;
|
14
|
|
-import java.util.List;
|
15
|
|
-import java.util.Map;
|
16
|
|
-
|
17
|
|
-/**
|
18
|
|
- * 合同业务相关的事件触发器
|
19
|
|
- * 用于更新合同状态
|
20
|
|
- */
|
21
|
|
-public class purPurchasePlanRule extends BaseRuleImpl implements IBaseRule {
|
22
|
|
-
|
23
|
|
- /**
|
24
|
|
- * 具体的实现,参考下面方法中的说明,所有的实现都差不多结构,
|
25
|
|
- * 只有自定义的异常处理接口实现中是没有传入 runningdata的.
|
26
|
|
- * 不同的接口 仅仅是额外传入的参数有些差异,额外的参数多数都是可以从runningdata中获取的
|
27
|
|
- * 系统为了方便接口的实现,额外传入了一些认为会用到的参数
|
28
|
|
- *
|
29
|
|
- * @return
|
30
|
|
- */
|
31
|
|
- @Override
|
32
|
|
- public boolean executeRule() {
|
33
|
|
- // 从引擎获取到核心数据对象(如果接口没有额外传入需要的数据时,可以从此对象中获取)
|
34
|
|
- RunningData runningdata = getRunningdata();
|
35
|
|
- Map<String, String> flowVar = runningdata.getFlowVar().getAllFlowVarMap();
|
36
|
|
-
|
37
|
|
- //事件处理类额外传入参数
|
38
|
|
- // 1.执行事件的节点对象
|
39
|
|
- IFlowNode eventNode = (IFlowNode) getParameter(StaticVarExtend.Parameter_IFlowNode);
|
40
|
|
-
|
41
|
|
- // 2.当前节点对象
|
42
|
|
- IFlowNode curNode = (IFlowNode) getParameter(StaticVarExtend.Parameter_Current_IFlowNode);
|
43
|
|
- // 3.引擎调用时,传入的参数对象
|
44
|
|
- WorkParaBean paraBean = (WorkParaBean) getParameter(StaticVarExtend.Parameter_WorkParaBean);
|
45
|
|
- // Map<String, String> varMap = paraBean.getFlowVarMap();
|
46
|
|
- String action = paraBean.getActionname();
|
47
|
|
- // 4.当前实例对象
|
48
|
|
- DBWork work = (DBWork) getParameter(StaticVarExtend.Parameter_DBWork);
|
49
|
|
- // 5.当前执行人对象
|
50
|
|
- IRunUser user = (IRunUser) getParameter(StaticVarExtend.Parameter_RunUser);
|
51
|
|
- // 6.当前路径对象
|
52
|
|
- DBTrack track = (DBTrack) getParameter(StaticVarExtend.Parameter_DBTrack);
|
53
|
|
- int status = track.getFlowstatus();
|
54
|
|
- String nodeId = track.getNodeid();
|
55
|
|
- String statusName = track.getFunname();
|
56
|
|
- String nodeName = track.getNodename();
|
57
|
|
- // 7.需要保存的SQL数据如果需要引擎来保存,请放入此 map中(key=SQL,value=List为SQL中对应的参数)
|
58
|
|
- Map<String, List<Object>> dataMap = (Map<String, List<Object>>) getParameter(StaticVarExtend.Parameter_SaveMap);
|
59
|
|
- // 8.事件类型
|
60
|
|
- String eventType = (String) getParameter("eventType");
|
61
|
|
- // 9.事件实际执行内容
|
62
|
|
- // 10.返回 true 表示执行成功,引擎从第7步中的dataMap里获取需要保存的数据,引擎继续往下执行,
|
63
|
|
- // 返回 false表示执行失败, 引擎会根据事件类型,确定是否继续往下执行
|
64
|
|
-
|
65
|
|
- System.err.println(
|
66
|
|
- ",status:" + status +
|
67
|
|
- ",nodeId:" + nodeId +
|
68
|
|
- ",nodeName:" + nodeName +
|
69
|
|
- ",statusName:" + statusName +
|
70
|
|
- ",action:" + action +
|
71
|
|
- ",eventNodeId:" + eventNode.getNodeid() +
|
72
|
|
- ",eventNodeName:" + eventNode.getNodename());
|
73
|
|
-
|
74
|
|
- if (eventNode.getNodeid().contains("End")) {
|
75
|
|
- status = 170;
|
76
|
|
- } else if (eventNode.getNodeid().equals("Node1")) {
|
77
|
|
- if (statusName.equals("JumpReject") || statusName.equals("Reject")) {
|
78
|
|
- status = 130;
|
79
|
|
- } else if (statusName.equals("Getback")) {
|
80
|
|
- status = 190;
|
81
|
|
- } else if (statusName.equals("autofirst")) {
|
82
|
|
- status = 110;
|
83
|
|
- }
|
84
|
|
- } else {
|
85
|
|
- status = 110;
|
86
|
|
- }
|
87
|
|
-
|
88
|
|
- // 业务使用
|
89
|
|
- // flowVar就是业务传递过来的参数集
|
90
|
|
- // 获取这里面的变量需要在流程中配置——流程建模时,右键——**属性设置——流程变量——添加变量——要不然获取不到变量
|
91
|
|
- final String url = Constants.WF_PRE_URL + "/pur/PurchasePlanHead/horizonApprovalProcess";
|
92
|
|
- System.err.println(flowVar.toString());
|
93
|
|
- String id = flowVar.get("id");
|
94
|
|
- final Map<String, Object> params = new HashMap<>();
|
95
|
|
- params.put("id", id);
|
96
|
|
- params.put("processInstanceStatus", status);
|
97
|
|
- Constants.EXECUTOR_SERVICE.submit(new Runnable() {
|
98
|
|
- @Override
|
99
|
|
- public void run() {
|
100
|
|
- // final url params
|
101
|
|
- String result = HttpUtil.post(url, params);
|
102
|
|
- System.err.println("result:" + result);
|
103
|
|
- }
|
104
|
|
- });
|
105
|
|
-// String result = HttpUtil.post(url, params);
|
106
|
|
-// System.err.println("result:" + result);
|
107
|
|
- return true;
|
108
|
|
- }
|
109
|
|
-}
|
110
|
|
-
|
111
|
|
-
|