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/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java
index 67cb907..3bd691a 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/outsourcereceipt/MesWmOutsourceReceiptServiceImpl.java
@@ -10,7 +10,7 @@
 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWmOutsourceReceiptPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourcereceipt.vo.MesWmOutsourceReceiptSaveReqVO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.outsourcereceipt.MesWmOutsourceReceiptDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.outsourcereceipt.MesWmOutsourceReceiptDetailDO;
@@ -20,8 +20,8 @@
 import cn.iocoder.yudao.module.mes.enums.wm.MesWmOutsourceReceiptStatusEnum;
 import cn.iocoder.yudao.module.mes.enums.wm.MesWmQualityStatusEnum;
 import cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum;
-import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
-import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
+import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
+import cn.iocoder.yudao.module.srm.api.supplier.SrmSupplierApi;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.MesWmTransactionService;
 import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
@@ -56,9 +56,9 @@
     @Resource
     private MesWmTransactionService wmTransactionService;
     @Resource
-    private MesMdVendorService vendorService;
+    private SrmSupplierApi srmSupplierApi;
     @Resource
-    private MesMdItemService itemService;
+    private MesMdmItemService mdmItemService;
     @Resource
     private MesProWorkOrderService workOrderService;
 
@@ -108,11 +108,11 @@
     public PageResult<MesWmOutsourceReceiptDO> getOutsourceReceiptPage(MesWmOutsourceReceiptPageReqVO pageReqVO) {
         List<Long> workOrderIds = null;
         if (StrUtil.isNotBlank(pageReqVO.getWorkOrderCode())) {
+            // 宸ュ崟鍙锋棦鍙兘鏄叧鑱斿伐鍗曪紝涔熷彲鑳芥槸鎵嬪伐濉啓鏂囨湰锛氭壘鍒板伐鍗曟寜 ID 杩囨护锛屾壘涓嶅埌鍒欐寜鏂囨湰妯$硦鍖归厤
             MesProWorkOrderDO workOrder = workOrderService.getWorkOrder(pageReqVO.getWorkOrderCode());
-            if (workOrder == null) {
-                return PageResult.empty();
+            if (workOrder != null) {
+                workOrderIds = java.util.Collections.singletonList(workOrder.getId());
             }
-            workOrderIds = java.util.Collections.singletonList(workOrder.getId());
         }
         return outsourceReceiptMapper.selectPage(pageReqVO, workOrderIds);
     }
@@ -160,7 +160,7 @@
                         MesWmOutsourceReceiptDetailDO::getQuantity, BigDecimal::add, BigDecimal.ZERO);
                 // 瀵规瘮琛屾暟閲忎笌鏄庣粏鎬绘暟閲忥紝涓嶆弧瓒崇洿鎺ユ姏鍑�
                 if (line.getQuantity().compareTo(totalDetailQuantity) > 0) {
-                    MesMdItemDO item = itemService.validateItemExistsAndEnable(line.getItemId());
+                    MesMdmItemDO item = mdmItemService.validateItemExistsAndEnable(line.getItemId());
                     throw exception(WM_OUTSOURCE_RECEIPT_DETAIL_QUANTITY_MISMATCH,
                             item.getCode() + " " + item.getName() + " 鏈畬鎴愪笂鏋�");
                 }
@@ -308,8 +308,10 @@
     private void validateOutsourceReceiptSaveData(Long id, MesWmOutsourceReceiptSaveReqVO reqVO) {
         // 鏍¢獙缂栫爜鍞竴
         validateCodeUnique(id, reqVO.getCode());
-        // 鏍¢獙渚涘簲鍟嗗瓨鍦�
-        vendorService.validateVendorExistsAndEnable(reqVO.getVendorId());
+        // 鏍¢獙渚涘簲鍟嗗瓨鍦紙浠呭叧鑱斾緵搴斿晢妗f鏃讹紱鎵嬪伐濉啓渚涘簲鍟嗗悕绉颁笉鏍¢獙锛�
+        if (reqVO.getVendorId() != null) {
+            srmSupplierApi.getSupplier(reqVO.getVendorId());
+        }
         // 鏍¢獙澶栧崗宸ュ崟瀛樺湪
         if (reqVO.getWorkOrderId() != null) {
             workOrderService.validateWorkOrderConfirmed(reqVO.getWorkOrderId());

--
Gitblit v1.9.3