From ca1602dc3080ba6aa3043282d6d8b2aee15bf5d3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 29 十月 2026 17:23:13 +0800
Subject: [PATCH] docs(service): 更新方法参数注释

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java
index a5f08ff..94373e8 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.salesnotice.vo.line.MesWmSalesNoticeLinePageReqVO;
@@ -10,7 +11,7 @@
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeLineDO;
 import cn.iocoder.yudao.module.mes.dal.mysql.wm.salesnotice.MesWmSalesNoticeLineMapper;
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
 import cn.iocoder.yudao.module.mes.service.wm.batch.MesWmBatchService;
 import jakarta.annotation.Resource;
 import org.springframework.context.annotation.Lazy;
@@ -39,7 +40,9 @@
     @Resource
     private MesWmBatchService batchService;
     @Resource
-    private MesMdItemService itemService;
+    private MesMdmItemService mdmItemService;
+    @Resource
+    private ErpSaleOrderApi saleOrderApi;
 
     @Override
     public Long createSalesNoticeLine(MesWmSalesNoticeLineSaveReqVO createReqVO) {
@@ -59,6 +62,9 @@
         MesWmSalesNoticeLineDO line = validateSalesNoticeLineExists(updateReqVO.getId());
         // 鏍¢獙鏁版嵁
         updateReqVO.setNoticeId(line.getNoticeId());
+        if (updateReqVO.getSaleOrderItemId() == null) {
+            updateReqVO.setSaleOrderItemId(line.getSaleOrderItemId());
+        }
         validateLineSaveData(updateReqVO);
 
         // 鏇存柊
@@ -120,9 +126,20 @@
     private void validateLineSaveData(MesWmSalesNoticeLineSaveReqVO reqVO) {
         // 鏍¢獙鐖跺崟鎹瓨鍦ㄤ笖涓鸿崏绋跨姸鎬�
         validateNoticeStatusDraft(reqVO.getNoticeId());
+        MesWmSalesNoticeDO notice = salesNoticeService.getSalesNotice(reqVO.getNoticeId());
+        if (notice.getSaleOrderId() != null && reqVO.getSaleOrderItemId() == null) {
+            throw exception(WM_SALES_NOTICE_LINE_SALE_ITEM_REQUIRED);
+        }
+        if (reqVO.getSaleOrderItemId() != null) {
+            var saleItem = saleOrderApi.getSaleOrderItem(reqVO.getSaleOrderItemId()).getCheckedData();
+            if (saleItem == null || !ObjUtil.equal(notice.getSaleOrderId(), saleItem.getOrderId())
+                    || !ObjUtil.equal(reqVO.getItemId(), saleItem.getProductId())) {
+                throw exception(WM_SALES_NOTICE_LINE_SALE_ITEM_MISMATCH);
+            }
+        }
         // 鏍¢獙鐗╂枡瀛樺湪
         if (reqVO.getItemId() != null) {
-            itemService.validateItemExistsAndEnable(reqVO.getItemId());
+            mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
         }
     }
 

--
Gitblit v1.9.3