From d80fa460742ddf052844746482801de355e85528 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 07 十一月 2026 14:24:30 +0800
Subject: [PATCH] feat(qc): 拆分部门审批流程并支持扫码自动识别
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/listener/MesQcSeedLineStatusListener.java | 34 +++++++++++++++++++---------------
1 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/listener/MesQcSeedLineStatusListener.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/listener/MesQcSeedLineStatusListener.java
index 1948ab6..ededb08 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/listener/MesQcSeedLineStatusListener.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/seedquality/listener/MesQcSeedLineStatusListener.java
@@ -1,35 +1,39 @@
package cn.iocoder.yudao.module.mes.service.qc.seedquality.listener;
import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
-import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEventListener;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
import cn.iocoder.yudao.module.mes.service.qc.seedquality.MesQcSeedQualityService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
+import java.util.Set;
+
/**
- * 绉嶅瓙璐ㄦ鏈嚎棰嗗瀹℃壒鐘舵�佺洃鍚櫒
+ * 绉嶅瓙璐ㄦ閮ㄩ棬棰嗗瀹℃壒鐘舵�佺洃鍚櫒
*
- * <p>娴佺▼瀹氫箟 key锛歮es_seed_quality_line_approve锛沚usinessKey 鏍煎紡锛歿璐ㄦ绾縸#{鐢熶骇鎵规鍙穧銆�
- * 瀹℃壒閫氳繃鍚庢湰绾胯繘鍏ュ妫�锛岄┏鍥炲悗鏈嚎閲嶆柊鍒濇銆�
+ * <p>鍔犲伐閮ㄣ�侀攢鍞儴鍚勪娇鐢ㄧ嫭绔嬫祦绋嬪畾涔夛紱businessKey 鏍煎紡锛歿璐ㄦ绾縸#{鐢熶骇鎵规鍙穧銆�
+ * 瀹℃壒閫氳繃鍚庢湰绾胯繘鍏ュ叕鍙歌川妫�寰呭锛岄┏鍥炲悗鏈嚎閲嶆柊鍒濇銆�
*/
@Component
@Slf4j
-public class MesQcSeedLineStatusListener extends BpmProcessInstanceStatusEventListener {
+public class MesQcSeedLineStatusListener implements ApplicationListener<BpmProcessInstanceStatusEvent> {
- private static final String BPM_PROCESS_DEFINITION_KEY = "mes_seed_quality_line_approve";
+ /** 鍔犲伐閮ㄩ瀵煎鎵规祦绋嬪畾涔夋爣璇� */
+ private static final String LINE_PROCESS_KEY = "mes_seed_quality_line_approve";
+ /** 閿�鍞儴棰嗗瀹℃壒娴佺▼瀹氫箟鏍囪瘑 */
+ private static final String SALES_LINE_PROCESS_KEY = "mes_seed_quality_sales_line_approve";
+ private static final Set<String> PROCESS_KEYS = Set.of(LINE_PROCESS_KEY, SALES_LINE_PROCESS_KEY);
@Resource
private MesQcSeedQualityService seedQualityService;
@Override
- protected String getProcessDefinitionKey() {
- return BPM_PROCESS_DEFINITION_KEY;
- }
-
- @Override
- protected void onEvent(BpmProcessInstanceStatusEvent event) {
+ public void onApplicationEvent(BpmProcessInstanceStatusEvent event) {
+ if (!PROCESS_KEYS.contains(event.getProcessDefinitionKey())) {
+ return;
+ }
if (!BpmProcessInstanceStatusEnum.isProcessEndStatus(event.getStatus())
|| BpmProcessInstanceStatusEnum.CANCEL.getStatus().equals(event.getStatus())) {
return;
@@ -37,19 +41,19 @@
String businessKey = event.getBusinessKey();
int index = businessKey == null ? -1 : businessKey.indexOf('#');
if (index <= 0 || index == businessKey.length() - 1) {
- log.warn("[onEvent][鏈嚎瀹℃壒 businessKey({}) 鏍煎紡鏃犳晥锛屽簲涓� 璐ㄦ绾�#鎵规鍙穄", businessKey);
+ log.warn("[onApplicationEvent][閮ㄩ棬瀹℃壒 businessKey({}) 鏍煎紡鏃犳晥锛屽簲涓� 璐ㄦ绾�#鎵规鍙穄", businessKey);
return;
}
Integer qcLine;
try {
qcLine = Integer.valueOf(businessKey.substring(0, index));
} catch (NumberFormatException ex) {
- log.warn("[onEvent][鏈嚎瀹℃壒 businessKey({}) 璐ㄦ绾挎棤鏁圿", businessKey);
+ log.warn("[onApplicationEvent][閮ㄩ棬瀹℃壒 businessKey({}) 璐ㄦ绾挎棤鏁圿", businessKey);
return;
}
String batchCode = businessKey.substring(index + 1);
boolean approved = BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(event.getStatus());
- log.info("[onEvent][鏈嚎瀹℃壒瀹屾垚锛屾壒娆�={} 璐ㄦ绾�={} 缁撴灉={}]", batchCode, qcLine, event.getStatus());
+ log.info("[onApplicationEvent][閮ㄩ棬瀹℃壒瀹屾垚锛屾壒娆�={} 璐ㄦ绾�={} 缁撴灉={}]", batchCode, qcLine, event.getStatus());
seedQualityService.handleLineProcessResult(event.getId(), qcLine, batchCode, approved, event.getReason());
}
}
--
Gitblit v1.9.3