From 7c03ac9182b338a13dce52631b2924da7793dd5e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 17 十月 2026 18:36:50 +0800
Subject: [PATCH] feat(mes): 仓储物流单据跨模块关联字段支持手工填写

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java
index 3ac2683..7cad04f 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/wm/salesnotice/MesWmSalesNoticeMapper.java
@@ -1,11 +1,15 @@
 package cn.iocoder.yudao.module.mes.dal.mysql.wm.salesnotice;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.MesWmSalesNoticePageReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Collection;
+import java.util.List;
 
 /**
  * MES 鍙戣揣閫氱煡鍗� Mapper
@@ -19,8 +23,37 @@
                 .likeIfPresent(MesWmSalesNoticeDO::getName, reqVO.getName())
                 .likeIfPresent(MesWmSalesNoticeDO::getSaleOrderCode, reqVO.getSaleOrderCode())
                 .eqIfPresent(MesWmSalesNoticeDO::getClientId, reqVO.getClientId())
+                .likeIfPresent(MesWmSalesNoticeDO::getClientName, reqVO.getClientName())
                 .eqIfPresent(MesWmSalesNoticeDO::getStatus, reqVO.getStatus())
                 .orderByDesc(MesWmSalesNoticeDO::getId));
+    }
+
+    /**
+     * 鍒嗛〉鏌ヨ锛堝甫瀹㈡埛鏉冮檺杩囨护锛�
+     *
+     * @param reqVO 鏌ヨ鏉′欢
+     * @param permittedClientIds 鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃锛坣ull 琛ㄧず涓嶉檺鍒讹級
+     * @return 鍒嗛〉缁撴灉
+     */
+    default PageResult<MesWmSalesNoticeDO> selectPage(MesWmSalesNoticePageReqVO reqVO, List<Long> permittedClientIds) {
+        LambdaQueryWrapperX<MesWmSalesNoticeDO> wrapper = new LambdaQueryWrapperX<MesWmSalesNoticeDO>()
+                .likeIfPresent(MesWmSalesNoticeDO::getCode, reqVO.getCode())
+                .likeIfPresent(MesWmSalesNoticeDO::getName, reqVO.getName())
+                .likeIfPresent(MesWmSalesNoticeDO::getSaleOrderCode, reqVO.getSaleOrderCode())
+                .eqIfPresent(MesWmSalesNoticeDO::getClientId, reqVO.getClientId())
+                .likeIfPresent(MesWmSalesNoticeDO::getClientName, reqVO.getClientName())
+                .eqIfPresent(MesWmSalesNoticeDO::getStatus, reqVO.getStatus())
+                .orderByDesc(MesWmSalesNoticeDO::getId);
+        // 瀹㈡埛鏉冮檺杩囨护锛涙墜宸ュ~鍐欏鎴峰悕绉帮紙鏈叧鑱斿鎴锋。妗堬級鐨勫崟鎹笉灞炰簬浠讳綍瀹㈡埛鏉冮檺鑼冨洿锛屽缁堝彲瑙�
+        if (permittedClientIds != null) {
+            wrapper.and(w -> {
+                w.isNull(MesWmSalesNoticeDO::getClientId);
+                if (CollUtil.isNotEmpty(permittedClientIds)) {
+                    w.or().in(MesWmSalesNoticeDO::getClientId, permittedClientIds);
+                }
+            });
+        }
+        return selectPage(reqVO, wrapper);
     }
 
     default MesWmSalesNoticeDO selectByCode(String code) {
@@ -31,4 +64,13 @@
         return selectOne(MesWmSalesNoticeDO::getSaleOrderId, saleOrderId);
     }
 
+    /**
+     * 鏌ヨ宸插瓨鍦ㄥ彂璐ч�氱煡鍗曠殑閿�鍞鍗� ID 鍒楄〃
+     */
+    default List<Long> selectExistingSaleOrderIds(Collection<Long> saleOrderIds) {
+        return selectObjs(new LambdaQueryWrapperX<MesWmSalesNoticeDO>()
+                .select(MesWmSalesNoticeDO::getSaleOrderId)
+                .in(MesWmSalesNoticeDO::getSaleOrderId, saleOrderIds));
+    }
+
 }

--
Gitblit v1.9.3