Selaa lähdekoodia

update 优化 调整监听器事件参数代码

疯狂的狮子Li 1 vuosi sitten
vanhempi
commit
a690ece164

+ 16 - 21
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java

@@ -6,6 +6,7 @@ import org.dromara.common.core.domain.event.ProcessDeleteEvent;
 import org.dromara.common.core.domain.event.ProcessEvent;
 import org.dromara.common.core.domain.event.ProcessEvent;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.tenant.helper.TenantHelper;
 import org.dromara.common.tenant.helper.TenantHelper;
+import org.dromara.warm.flow.core.entity.Instance;
 import org.dromara.workflow.common.ConditionalOnEnable;
 import org.dromara.workflow.common.ConditionalOnEnable;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
@@ -26,28 +27,25 @@ public class FlowProcessEventHandler {
      * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
      * 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
      *
      *
      * @param flowCode   流程定义编码
      * @param flowCode   流程定义编码
-     * @param businessId 业务id
-     * @param nodeType   节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)
-     * @param nodeCode   流程节点编码
-     * @param nodeName   流程节点名称
+     * @param instance   实例数据
      * @param status     流程状态
      * @param status     流程状态
      * @param params     办理参数
      * @param params     办理参数
      * @param submit     当为true时为申请人节点办理
      * @param submit     当为true时为申请人节点办理
      */
      */
-    public void processHandler(String flowCode, String businessId, Integer nodeType, String nodeCode, String nodeName,
+    public void processHandler(String flowCode, Instance instance,
                                String status, Map<String, Object> params, boolean submit) {
                                String status, Map<String, Object> params, boolean submit) {
 
 
         String tenantId = TenantHelper.getTenantId();
         String tenantId = TenantHelper.getTenantId();
         log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
         log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
-            tenantId, flowCode, businessId, status, nodeType, nodeCode, nodeName, submit, params);
+            tenantId, flowCode, instance.getBusinessId(), status, instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), submit, params);
 
 
         ProcessEvent processEvent = new ProcessEvent();
         ProcessEvent processEvent = new ProcessEvent();
         processEvent.setTenantId(tenantId);
         processEvent.setTenantId(tenantId);
         processEvent.setFlowCode(flowCode);
         processEvent.setFlowCode(flowCode);
-        processEvent.setBusinessId(businessId);
-        processEvent.setNodeType(nodeType);
-        processEvent.setNodeCode(nodeCode);
-        processEvent.setNodeName(nodeName);
+        processEvent.setBusinessId(instance.getBusinessId());
+        processEvent.setNodeType(instance.getNodeType());
+        processEvent.setNodeCode(instance.getNodeCode());
+        processEvent.setNodeName(instance.getNodeName());
         processEvent.setStatus(status);
         processEvent.setStatus(status);
         processEvent.setParams(params);
         processEvent.setParams(params);
         processEvent.setSubmit(submit);
         processEvent.setSubmit(submit);
@@ -58,24 +56,21 @@ public class FlowProcessEventHandler {
      * 执行创建任务监听
      * 执行创建任务监听
      *
      *
      * @param flowCode   流程定义编码
      * @param flowCode   流程定义编码
-     * @param nodeType   节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)
-     * @param nodeCode   流程节点编码
-     * @param nodeName   流程节点名称
+     * @param instance   实例数据
      * @param taskId     任务id
      * @param taskId     任务id
-     * @param businessId 业务id
      */
      */
-    public void processCreateTaskHandler(String flowCode, Integer nodeType, String nodeCode, String nodeName, Long taskId, String businessId) {
+    public void processCreateTaskHandler(String flowCode, Instance instance, Long taskId) {
         String tenantId = TenantHelper.getTenantId();
         String tenantId = TenantHelper.getTenantId();
-        log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}, 业务ID: {}",
-            tenantId, flowCode, nodeType, nodeCode, nodeName, taskId, businessId);
+        log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
+            tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId);
         ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
         ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
         processCreateTaskEvent.setTenantId(tenantId);
         processCreateTaskEvent.setTenantId(tenantId);
         processCreateTaskEvent.setFlowCode(flowCode);
         processCreateTaskEvent.setFlowCode(flowCode);
-        processCreateTaskEvent.setNodeType(nodeType);
-        processCreateTaskEvent.setNodeCode(nodeCode);
-        processCreateTaskEvent.setNodeName(nodeName);
+        processCreateTaskEvent.setBusinessId(instance.getBusinessId());
+        processCreateTaskEvent.setNodeType(instance.getNodeType());
+        processCreateTaskEvent.setNodeCode(instance.getNodeCode());
+        processCreateTaskEvent.setNodeName(instance.getNodeName());
         processCreateTaskEvent.setTaskId(taskId);
         processCreateTaskEvent.setTaskId(taskId);
-        processCreateTaskEvent.setBusinessId(businessId);
         SpringUtils.context().publishEvent(processCreateTaskEvent);
         SpringUtils.context().publishEvent(processCreateTaskEvent);
     }
     }
 
 

+ 3 - 7
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java

@@ -47,13 +47,10 @@ public class WorkflowGlobalListener implements GlobalListener {
     public void create(ListenerVariable listenerVariable) {
     public void create(ListenerVariable listenerVariable) {
         Instance instance = listenerVariable.getInstance();
         Instance instance = listenerVariable.getInstance();
         Definition definition = listenerVariable.getDefinition();
         Definition definition = listenerVariable.getDefinition();
-        String businessId = instance.getBusinessId();
-        String flowStatus = instance.getFlowStatus();
         Task task = listenerVariable.getTask();
         Task task = listenerVariable.getTask();
-        if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(flowStatus)) {
+        if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(instance.getFlowStatus())) {
             // 判断流程状态(发布审批中事件)
             // 判断流程状态(发布审批中事件)
-            flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), task.getNodeType(),
-                task.getNodeCode(), task.getNodeName(), task.getId(), businessId);
+            flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId());
         }
         }
     }
     }
 
 
@@ -97,8 +94,7 @@ public class WorkflowGlobalListener implements GlobalListener {
         // 判断流程状态(发布:撤销,退回,作废,终止,已完成事件)
         // 判断流程状态(发布:撤销,退回,作废,终止,已完成事件)
         String status = determineFlowStatus(instance);
         String status = determineFlowStatus(instance);
         if (StringUtils.isNotBlank(status)) {
         if (StringUtils.isNotBlank(status)) {
-            flowProcessEventHandler.processHandler(definition.getFlowCode(), instance.getBusinessId(), instance.getNodeType(),
-                instance.getNodeCode(), instance.getNodeName(), status, params, false);
+            flowProcessEventHandler.processHandler(definition.getFlowCode(), instance, status, params, false);
         }
         }
     }
     }
 
 

+ 1 - 2
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@@ -162,8 +162,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
             Definition definition = defService.getById(flowTask.getDefinitionId());
             Definition definition = defService.getById(flowTask.getDefinitionId());
             // 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听
             // 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听
             if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) {
             if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) {
-                flowProcessEventHandler.processHandler(definition.getFlowCode(), ins.getBusinessId(), ins.getNodeType(),
-                    ins.getNodeCode(), ins.getNodeName(), ins.getFlowStatus(), null, true);
+                flowProcessEventHandler.processHandler(definition.getFlowCode(), ins, ins.getFlowStatus(), null, true);
             }
             }
             // 设置弹窗处理人
             // 设置弹窗处理人
             Map<String, Object> assigneeMap = setPopAssigneeMap(completeTaskBo.getAssigneeMap(), ins.getVariableMap());
             Map<String, Object> assigneeMap = setPopAssigneeMap(completeTaskBo.getAssigneeMap(), ins.getVariableMap());