From bb0b80bd7ca7c1f979ab0125ae01f3faa1d14f4b Mon Sep 17 00:00:00 2001
From: hsy <1029150275@qq.com>
Date: 星期一, 17 八月 2026 09:37:57 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_business' into fix/hsy/20260811

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java
index 9dcc9e4..1659343 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesLineMapper.java
@@ -1,16 +1,18 @@
 package cn.iocoder.yudao.module.mes.dal.mysql.wm.productsales;
 
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesLineDO;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * MES 閿�鍞嚭搴撳崟琛� Mapper
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 @Mapper
 public interface MesWmProductSalesLineMapper extends BaseMapperX<MesWmProductSalesLineDO> {
@@ -31,6 +33,26 @@
                 .orderByDesc(MesWmProductSalesLineDO::getId));
     }
 
+    /**
+     * 鏍规嵁閿�鍞鍗曟槑缁� ID 鍒楄〃鏌ヨ鍑哄簱琛岋紝鎸� saleOrderItemId 鍒嗙粍杩斿洖鎵瑰彿
+     */
+    default Map<Long, String> selectBatchCodesBySaleOrderItemIds(java.util.Collection<Long> saleOrderItemIds) {
+        if (saleOrderItemIds == null || saleOrderItemIds.isEmpty()) {
+            return java.util.Collections.emptyMap();
+        }
+        List<MesWmProductSalesLineDO> lines = selectList(new LambdaQueryWrapperX<MesWmProductSalesLineDO>()
+                .in(MesWmProductSalesLineDO::getSaleOrderItemId, saleOrderItemIds));
+        return lines.stream()
+                .filter(l -> l.getBatchCode() != null && !l.getBatchCode().isEmpty())
+                .collect(java.util.stream.Collectors.groupingBy(
+                        MesWmProductSalesLineDO::getSaleOrderItemId,
+                        java.util.LinkedHashMap::new,
+                        java.util.stream.Collectors.collectingAndThen(
+                                java.util.stream.Collectors.mapping(MesWmProductSalesLineDO::getBatchCode,
+                                        java.util.stream.Collectors.toSet()),
+                                codes -> String.join("銆�", codes))));
+    }
+
     default void updateQualityStatusByIds(List<Long> ids, Integer qualityStatus) {
         update(new MesWmProductSalesLineDO().setQualityStatus(qualityStatus),
                 new LambdaUpdateWrapper<MesWmProductSalesLineDO>().in(MesWmProductSalesLineDO::getId, ids));

--
Gitblit v1.9.3