From f71dabccb0e4c2fa410683e6058eb906a7dbf094 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期三, 26 八月 2026 18:12:07 +0800
Subject: [PATCH] feat 采购修正
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java | 24 ++++++++++++++++--------
1 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
index 9611fdd..f15ad92 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java
@@ -25,8 +25,8 @@
import cn.iocoder.yudao.module.mes.service.wm.transaction.dto.MesWmTransactionSaveReqDTO;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
-import cn.iocoder.yudao.module.erp.api.purchase.ErpPurchaseOrderApi;
-import cn.iocoder.yudao.module.erp.api.purchase.ErpSupplierApi;
+import cn.iocoder.yudao.module.erp.api.purchase.PurchaseOrderApi;
+import cn.iocoder.yudao.module.srm.api.supplier.SrmSupplierApi;
import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
import org.springframework.security.core.Authentication;
@@ -67,7 +67,7 @@
private MesWmArrivalNoticeService arrivalNoticeService;
@Resource
@Lazy
- private ErpSupplierApi supplierApi;
+ private SrmSupplierApi srmSupplierApi;
@Resource
@Lazy
private MesQcIqcService iqcService;
@@ -81,7 +81,7 @@
private BpmProcessInstanceApi processInstanceApi;
@Resource
- private ErpPurchaseOrderApi purchaseOrderApi;
+ private PurchaseOrderApi purchaseOrderApi;
@Resource
private MdmItemApi mdmItemApi;
@@ -114,7 +114,7 @@
// 鏍¢獙缂栫爜鍞竴
validateCodeUnique(reqVO.getId(), reqVO.getCode());
// 鏍¢獙渚涘簲鍟嗗瓨鍦紙閲囪喘鍏ュ簱浣跨敤 ERP 渚涘簲鍟嗭級
- supplierApi.validateSupplier(reqVO.getVendorId());
+ srmSupplierApi.getSupplier(reqVO.getVendorId());
// 鏍¢獙鍒拌揣閫氱煡鍗曞瓨鍦�
if (reqVO.getNoticeId() != null) {
MesWmArrivalNoticeDO notice = arrivalNoticeService.validateArrivalNoticeReadyForReceipt(reqVO.getNoticeId());
@@ -184,13 +184,21 @@
if (item == null) {
continue;
}
- // 濡傛灉鐗╂枡寮�鍚壒娆$鐞嗭紝妫�鏌ヨ涓婄殑鎵规鍙锋槸鍚︿负绌�
- if (Boolean.TRUE.equals(item.getIsBatchManaged()) && line.getBatchId() == null) {
- throw exception(WM_ITEM_RECEIPT_BATCH_REQUIRED, item.getCode(), item.getName());
+ // 濡傛灉鐗╂枡寮�鍚壒娆$鐞嗭紝琛屾垨鍏朵笂鏋舵槑缁嗗繀椤绘惡甯︽壒娆″彿锛屽惁鍒欐棤娉曠敓鎴愬簱瀛樹簨鍔�
+ if (Boolean.TRUE.equals(item.getIsBatchManaged())) {
+ boolean hasBatch = line.getBatchId() != null
+ || hasDetailBatch(itemReceiptDetailService.getItemReceiptDetailListByLineId(line.getId()));
+ if (!hasBatch) {
+ throw exception(WM_ITEM_RECEIPT_BATCH_REQUIRED, item.getCode(), item.getName());
+ }
}
}
}
+ private boolean hasDetailBatch(List<MesWmItemReceiptDetailDO> details) {
+ return details.stream().anyMatch(detail -> detail.getBatchId() != null);
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void stockItemReceipt(Long id) {
--
Gitblit v1.9.3