From d5452f48951a5540d2df44c55e494e75560b3866 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 11:42:39 +0800
Subject: [PATCH] fix(bpm): 审批结果事件带上流程分类,修复历史自定义 Key 流程状态不回写

---
 yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
index 85ff097..84272e3 100644
--- a/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
+++ b/yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
@@ -12,6 +12,7 @@
 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 import cn.iocoder.yudao.framework.common.util.object.PageUtils;
 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
 import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO;
@@ -1025,13 +1026,18 @@
         }
 
         // 3. 鍙戦�佹祦绋嬪疄渚嬬殑鐘舵�佷簨浠�
-        processInstanceEventPublisher.sendProcessInstanceResultEvent(
-                BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, instance, status, reason));
+        BpmProcessInstanceStatusEvent statusEvent = BpmProcessInstanceConvert.INSTANCE
+                .buildProcessInstanceStatusEvent(this, instance, status, reason);
+        // 甯︿笂娴佺▼鍒嗙被锛坆pm_process_definition_info.category锛夛紝渚夸簬涓氬姟妯″潡鍏煎鍚屼竴鍒嗙被涓嬬殑鍘嗗彶鑷畾涔� Key
+        BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService
+                .getProcessDefinitionInfo(instance.getProcessDefinitionId());
+        if (processDefinitionInfo != null) {
+            statusEvent.setProcessDefinitionCategory(processDefinitionInfo.getCategory());
+        }
+        processInstanceEventPublisher.sendProcessInstanceResultEvent(statusEvent);
 
         // 4. 娴佺▼鍚庣疆閫氱煡
         if (Objects.equals(status, BpmProcessInstanceStatusEnum.APPROVE.getStatus())) {
-            BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService.
-                    getProcessDefinitionInfo(instance.getProcessDefinitionId());
             if (ObjUtil.isNotNull(processDefinitionInfo) &&
                     ObjUtil.isNotNull(processDefinitionInfo.getProcessAfterTriggerSetting())) {
                 BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getProcessAfterTriggerSetting();

--
Gitblit v1.9.3