From 3990ae574c221e3764ce9cbc2e4e3eb71b7b1b52 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 24 十月 2026 23:41:23 +0800
Subject: [PATCH] fix(mes): 修复批次正反向追溯链路
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/project/listener/MesPdProjectStatusListener.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/project/listener/MesPdProjectStatusListener.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/project/listener/MesPdProjectStatusListener.java
new file mode 100644
index 0000000..16456a7
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pd/project/listener/MesPdProjectStatusListener.java
@@ -0,0 +1,46 @@
+package cn.iocoder.yudao.module.mes.service.pd.project.listener;
+
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
+import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener;
+import cn.iocoder.yudao.module.mes.service.pd.project.MesPdProjectService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * MES 璁捐椤圭洰瀹℃壒鐘舵�佺洃鍚櫒
+ *
+ * 鐩戝惉 BPM 瀹℃壒缁撴灉锛屽洖鍐欒璁¢」鐩姸鎬侊紝浣垮鎵圭粺涓�鍦ㄣ�屽崗鍚屽姙鍏� - 鎴戠殑娴佺▼銆嶄腑娴佽浆銆�
+ */
+@Component
+@Slf4j
+public class MesPdProjectStatusListener extends BpmProcessInstanceStatusEventListener {
+
+ private static final String PROCESS_DEFINITION_KEY = "mes-pd-project-audit";
+
+ @Resource
+ private MesPdProjectService projectService;
+
+ @Override
+ protected String getProcessDefinitionKey() {
+ return PROCESS_DEFINITION_KEY;
+ }
+
+ @Override
+ protected void onEvent(BpmProcessInstanceStatusEvent event) {
+ Long projectId;
+ try {
+ projectId = Long.parseLong(event.getBusinessKey());
+ } catch (NumberFormatException e) {
+ log.warn("[onEvent] businessKey({}) 涓嶆槸鏈夋晥鐨勮璁¢」鐩紪鍙�", event.getBusinessKey());
+ return;
+ }
+ log.info("[onEvent] 鏀跺埌璁捐椤圭洰瀹℃壒浜嬩欢锛宲rojectId={}, status={}", projectId, event.getStatus());
+ try {
+ projectService.updateProjectAuditStatus(projectId, event.getStatus(), event.getReason());
+ } catch (Exception e) {
+ log.error("[onEvent] 鍥炲啓璁捐椤圭洰瀹℃壒鐘舵�佸け璐ワ紝projectId={}", projectId, e);
+ }
+ }
+
+}
--
Gitblit v1.9.3