Selaa lähdekoodia

销售计划rule

xiechongjian 2 kuukautta sitten
vanhempi
commit
4c8a7dc32c
1 muutettua tiedostoa jossa 103 lisäystä ja 0 poistoa
  1. 103
    0
      src/main/java/com/horizon/wf/core/rule/SalPlanRule.java

+ 103
- 0
src/main/java/com/horizon/wf/core/rule/SalPlanRule.java Näytä tiedosto

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

Loading…
Peruuta
Tallenna