From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期三, 12 三月 2025 09:35:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
new file mode 100644
index 0000000..4b215ef
--- /dev/null
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
@@ -0,0 +1,82 @@
+package org.dromara.workflow.handler;
+
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.event.ProcessDeleteEvent;
+import org.dromara.common.core.domain.event.ProcessEvent;
+import org.dromara.common.core.domain.event.ProcessTaskEvent;
+import org.dromara.common.core.utils.SpringUtils;
+import org.dromara.common.tenant.helper.TenantHelper;
+import org.dromara.workflow.common.ConditionalOnEnable;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 娴佺▼鐩戝惉鏈嶅姟
+ *
+ * @author may
+ * @date 2024-06-02
+ */
+@ConditionalOnEnable
+@Slf4j
+@Component
+public class FlowProcessEventHandler {
+
+    /**
+     * 鎬讳綋娴佺▼鐩戝惉(渚嬪: 鑽夌锛屾挙閿�锛岄��鍥烇紝浣滃簾锛岀粓姝紝宸插畬鎴愮瓑)
+     *
+     * @param flowCode   娴佺▼瀹氫箟缂栫爜
+     * @param businessId 涓氬姟id
+     * @param status     鐘舵��
+     * @param submit     褰撲负true鏃朵负鐢宠浜鸿妭鐐瑰姙鐞�
+     */
+    public void processHandler(String flowCode, String businessId, String status, Map<String, Object> params, boolean submit) {
+        String tenantId = TenantHelper.getTenantId();
+        log.info("鍙戝竷娴佺▼浜嬩欢锛岀鎴稩D: {}, 娴佺▼鐘舵��: {}, 娴佺▼缂栫爜: {}, 涓氬姟ID: {}, 鏄惁鐢宠浜鸿妭鐐瑰姙鐞�: {}", tenantId, status, flowCode, businessId, submit);
+        ProcessEvent processEvent = new ProcessEvent();
+        processEvent.setTenantId(tenantId);
+        processEvent.setFlowCode(flowCode);
+        processEvent.setBusinessId(businessId);
+        processEvent.setStatus(status);
+        processEvent.setParams(params);
+        processEvent.setSubmit(submit);
+        SpringUtils.context().publishEvent(processEvent);
+    }
+
+    /**
+     * 鎵ц鍔炵悊浠诲姟鐩戝惉
+     *
+     * @param flowCode   娴佺▼瀹氫箟缂栫爜
+     * @param nodeCode   瀹℃壒鑺傜偣缂栫爜
+     * @param taskId     浠诲姟id
+     * @param businessId 涓氬姟id
+     */
+    public void processTaskHandler(String flowCode, String nodeCode, Long taskId, String businessId) {
+        String tenantId = TenantHelper.getTenantId();
+        log.info("鍙戝竷娴佺▼浠诲姟浜嬩欢, 绉熸埛ID: {}, 娴佺▼缂栫爜: {}, 鑺傜偣缂栫爜: {}, 浠诲姟ID: {}, 涓氬姟ID: {}", tenantId, flowCode, nodeCode, taskId, businessId);
+        ProcessTaskEvent processTaskEvent = new ProcessTaskEvent();
+        processTaskEvent.setTenantId(tenantId);
+        processTaskEvent.setFlowCode(flowCode);
+        processTaskEvent.setNodeCode(nodeCode);
+        processTaskEvent.setTaskId(taskId);
+        processTaskEvent.setBusinessId(businessId);
+        SpringUtils.context().publishEvent(processTaskEvent);
+    }
+
+    /**
+     * 鍒犻櫎娴佺▼鐩戝惉
+     *
+     * @param flowCode    娴佺▼瀹氫箟缂栫爜
+     * @param businessId  涓氬姟ID
+     */
+    public void processDeleteHandler(String flowCode, String businessId) {
+        String tenantId = TenantHelper.getTenantId();
+        log.info("鍙戝竷鍒犻櫎娴佺▼浜嬩欢, 绉熸埛ID: {}, 娴佺▼缂栫爜: {}, 涓氬姟ID: {}", tenantId, flowCode, businessId);
+        ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent();
+        processDeleteEvent.setTenantId(tenantId);
+        processDeleteEvent.setFlowCode(flowCode);
+        processDeleteEvent.setBusinessId(businessId);
+        SpringUtils.context().publishEvent(processDeleteEvent);
+    }
+
+}

--
Gitblit v1.9.3