From 25bdb3fa20edd3b09611ccd5d19244d4e7264ab0 Mon Sep 17 00:00:00 2001
From: lead <lead@local>
Date: 星期二, 03 十一月 2026 10:09:31 +0800
Subject: [PATCH] fix(kyzn): 物料新增 500 —— 修复 MES 物料分类编码重复导致 selectOne 抛 TooManyResultsException

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdItemTypeMapper.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdItemTypeMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdItemTypeMapper.java
index ee5d0cf..5b603be 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdItemTypeMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/item/MesMdItemTypeMapper.java
@@ -6,6 +6,7 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -31,8 +32,21 @@
         return selectOne(MesMdItemTypeDO::getParentId, parentId, MesMdItemTypeDO::getCode, code);
     }
 
+    default List<MesMdItemTypeDO> selectListByCode(String code) {
+        return selectList(MesMdItemTypeDO::getCode, code);
+    }
+
     default MesMdItemTypeDO selectByCode(String code) {
-        return selectOne(MesMdItemTypeDO::getCode, code);
+        // 缂栫爜鍦ㄥ巻鍙叉暟鎹腑骞朵笉鏄敮涓�绾︽潫锛堝鐖跺垎绫讳笅鐨勩�岀紗绾裤�嶄笌椤跺眰銆岃緟鏉愩�嶉兘鏇剧敤杩� IT_002锛夛紝
+        // 鐩存帴鐢� selectOne 浼氬湪鍛戒腑澶氳鏃舵姏 TooManyResultsException锛涜繖閲屾敼涓烘寜鍒楄〃鏌ヨ銆�
+        List<MesMdItemTypeDO> list = selectListByCode(code);
+        if (list.isEmpty()) {
+            return null;
+        }
+        // 鍛戒腑澶氳鏃跺彇 id 鏈�灏忕殑涓�鏉★紙鏈�鏃╁垱寤虹殑鍒嗙被锛夛紝淇濊瘉鍚屾閾捐矾鍙敤
+        return list.stream()
+                .min(Comparator.comparing(MesMdItemTypeDO::getId))
+                .orElse(null);
     }
 
     default Long selectCountByParentId(Long parentId) {

--
Gitblit v1.9.3