From 704265308b1227dbada5a36b2027b588c062ded2 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 09:14:37 +0800
Subject: [PATCH] feat(mes): 新增业务码支持并优化追溯查询功能

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

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesDetailMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesDetailMapper.java
index 8915751..dc477d3 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesDetailMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/productsales/MesWmProductSalesDetailMapper.java
@@ -14,6 +14,23 @@
 @Mapper
 public interface MesWmProductSalesDetailMapper extends BaseMapperX<MesWmProductSalesDetailDO> {
 
+    // 浠呮湭鍙栨秷涓斿皻鏈畬鎴愮殑鍑哄簱鍗曞崰鐢ㄨ鐮併�傛棫鏁存墭鏄庣粏涔熷弬涓庨噸鍙犲垽鏂��
+    @org.apache.ibatis.annotations.Select("""
+        SELECT d.* FROM mes_wm_product_sales_detail d
+        JOIN mes_wm_product_sales s ON s.id = d.sales_id
+        WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3)
+          AND d.batch_code = #{batchCode}
+        """)
+    List<MesWmProductSalesDetailDO> selectPickingByBatchCode(String batchCode);
+
+    @org.apache.ibatis.annotations.Select("""
+        SELECT d.* FROM mes_wm_product_sales_detail d
+        JOIN mes_wm_product_sales s ON s.id = d.sales_id
+        WHERE d.deleted = 0 AND s.deleted = 0 AND s.status IN (2, 10, 3)
+          AND d.batch_code = #{batchCode} FOR UPDATE
+        """)
+    List<MesWmProductSalesDetailDO> selectPickingByBatchCodeForUpdate(String batchCode);
+
     default List<MesWmProductSalesDetailDO> selectListByLineId(Long lineId) {
         return selectList(MesWmProductSalesDetailDO::getLineId, lineId);
     }
@@ -31,7 +48,7 @@
     default MesWmProductSalesDetailDO selectBySalesIdAndPalletCodeId(Long salesId, Long palletCodeId) {
         return selectOne(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<MesWmProductSalesDetailDO>()
                 .eq(MesWmProductSalesDetailDO::getSalesId, salesId)
-                .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId));
+                .eq(MesWmProductSalesDetailDO::getPalletCodeId, palletCodeId).orderByAsc(MesWmProductSalesDetailDO::getId).last("LIMIT 1"));
     }
 
     default void deleteByLineId(Long lineId) {

--
Gitblit v1.9.3