Procházet zdrojové kódy

update 优化 任务创建监听器 使用下一个节点的任务数据

疯狂的狮子Li před 1 rokem
rodič
revize
c41add355f

+ 1 - 0
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java

@@ -55,6 +55,7 @@ public class FlowProcessEventHandler {
      * @param flowCode   流程定义编码
      * @param instance   实例数据
      * @param taskId     任务id
+     * @param params     上一个任务的办理参数
      */
     public void processTaskHandler(String flowCode, Instance instance, Long taskId, Map<String, Object> params) {
         String tenantId = TenantHelper.getTenantId();

+ 5 - 2
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java

@@ -105,6 +105,7 @@ public class WorkflowGlobalListener implements GlobalListener {
         Instance instance = listenerVariable.getInstance();
         Definition definition = listenerVariable.getDefinition();
         Task task = listenerVariable.getTask();
+        List<Task> nextTasks = listenerVariable.getNextTasks();
         Map<String, Object> params = new HashMap<>();
         FlowParams flowParams = listenerVariable.getFlowParams();
         Map<String, Object> variable = new HashMap<>();
@@ -129,8 +130,10 @@ public class WorkflowGlobalListener implements GlobalListener {
             }
         }
         //发布任务事件
-        if (task != null) {
-            flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), instance, task.getId(), params);
+        if (CollUtil.isNotEmpty(nextTasks)) {
+            for (Task nextTask : nextTasks) {
+                flowProcessEventHandler.processTaskHandler(definition.getFlowCode(), instance, nextTask.getId(), params);
+            }
         }
         if (ObjectUtil.isNull(flowParams)) {
             return;