From ac2e2b5af3726ee64dc37c3ebf26989a0346f22a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 07 十一月 2026 19:16:05 +0800
Subject: [PATCH] feat(feedback): 优化报工审批流程并增加报工人校验

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java |   36 ++++++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
index ffba036..cf91a47 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
@@ -28,7 +28,7 @@
 /**
  * MES 璐ㄦ鏂规-浜у搧鍏宠仈 Service 瀹炵幇绫�
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 @Service
 @Validated
@@ -116,11 +116,35 @@
 
     @Override
     public MesQcTemplateItemDO getRequiredTemplateByItemIdAndType(Long itemId, Integer qcType) {
-        // 1. 鏌ュ嚭 itemId 鍏宠仈鐨勬墍鏈� templateItem
-        MesMdItemDO item1 = mesMdItemService.getItem(itemId);
-        List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(item1.getMdmItemId());
-        if (CollUtil.isEmpty(templateItems)) {
+        MesQcTemplateItemDO matched = findTemplateItem(itemId, qcType);
+        if (matched == null) {
             throw exception(QC_NO_TEMPLATE);
+        }
+        return matched;
+    }
+
+    @Override
+    public boolean hasEnabledTemplate(Long itemId, Integer qcType) {
+        return findTemplateItem(itemId, qcType) != null;
+    }
+
+    /**
+     * 鎸夌墿鏂� + QC 绫诲瀷鏌ユ壘鍚敤鐨勬ā鏉垮叧鑱旓紝鏈懡涓繑鍥� null
+     */
+    private MesQcTemplateItemDO findTemplateItem(Long itemId, Integer qcType) {
+        if (itemId == null || qcType == null) {
+            return null;
+        }
+        // 1. 鏌ュ嚭 itemId 鍏宠仈鐨勬墍鏈� templateItem
+        // 鍏煎涓ゅ鐗╂枡 ID锛氳川妫�/浠撳偍鍗曟嵁浼犲叆 mdm_item.id锛孭RO 宸ュ崟/浠诲姟浼犲叆 mes_md_item.id
+        Long templateItemId = itemId;
+        MesMdItemDO mesItem = mesMdItemService.getItem(itemId);
+        if (mesItem != null && mesItem.getMdmItemId() != null) {
+            templateItemId = mesItem.getMdmItemId();
+        }
+        List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(templateItemId);
+        if (CollUtil.isEmpty(templateItems)) {
+            return null;
         }
         // 2. 绛涢�� types 鍖呭惈 qcType 涓旂姸鎬佷负寮�鍚殑妯℃澘
         List<MesQcTemplateDO> templates = templateService.getTemplateList(
@@ -128,7 +152,7 @@
         MesQcTemplateDO matchedTemplate = findFirst(templates,
                 t -> CommonStatusEnum.isEnable(t.getStatus()) && CollUtil.contains(t.getTypes(), qcType));
         if (matchedTemplate == null) {
-            throw exception(QC_NO_TEMPLATE);
+            return null;
         }
         // 3. 杩斿洖瀵瑰簲鐨� templateItem
         return findFirst(templateItems,

--
Gitblit v1.9.3