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