From 6121117080cffd6528b7f233c98e4b1574d8c823 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 10 十一月 2026 13:02:37 +0800
Subject: [PATCH] fix(mes): 部分来料不合格时合格数量仍自动进入采购入库
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 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 83d2a04..dd13518 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
@@ -652,11 +652,12 @@
receipt.setStatus(MesWmItemReceiptStatusEnum.PREPARE.getStatus());
itemReceiptMapper.insert(receipt);
- // 6. 閬嶅巻琛屽垱寤哄叆搴撳崟琛�
+ // 6. 閬嶅巻琛屽垱寤哄叆搴撳崟琛岋細闇�妫�琛屽彧鍏ヨ川妫�鍚堟牸鏁伴噺锛屾棤闇�妫�琛屽叆鍒拌揣鏁伴噺
+ int createdLineCount = 0;
for (MesWmArrivalNoticeLineDO noticeLine : lines) {
- BigDecimal receivable = noticeLine.getQualifiedQuantity() != null
+ BigDecimal receivable = Boolean.TRUE.equals(noticeLine.getIqcCheckFlag())
? noticeLine.getQualifiedQuantity() : noticeLine.getArrivalQuantity();
- // 鏁磋宸查��渚涘簲鍟嗘椂涓嶇敓鎴愰浂鏁伴噺鍏ュ簱琛岋紱鍏朵綑琛屼粛姝e父鏀惰揣銆�
+ // 鏁磋涓嶅悎鏍硷紙鍚堟牸鏁伴噺涓� 0锛夋垨鏃犻渶妫�琛屾湭濉啓鍒拌揣鏁伴噺鏃讹紝涓嶇敓鎴愰浂鏁伴噺鍏ュ簱琛�
if (receivable == null || receivable.signum() <= 0) {
continue;
}
@@ -665,11 +666,16 @@
receiptLine.setArrivalNoticeLineId(noticeLine.getId());
receiptLine.setPurchaseOrderItemId(noticeLine.getPurchaseOrderItemId());
receiptLine.setItemId(noticeLine.getItemId());
- // 浣跨敤鍚堟牸鏁伴噺锛堝鏋滄湁 IQC 鍒欐槸鍚堟牸鏁伴噺锛屽惁鍒欐槸鍒拌揣鏁伴噺锛�
receiptLine.setReceivedQuantity(receivable);
// 鎸夐噰璐鍗曡鍗曚环蹇収閲戦锛屼緵鏉ョエ/瀵硅处浣跨敤
fillReceiptLinePrice(receiptLine);
itemReceiptLineService.createItemReceiptLineFromArrivalNoticeLine(receiptLine);
+ createdLineCount++;
+ }
+ if (createdLineCount == 0) {
+ throw new ServiceException(WM_ARRIVAL_NOTICE_NO_QUALIFIED_LINE.getCode(),
+ "鍒拌揣閫氱煡鍗昜" + notice.getCode() + "]娌℃湁鍙叆搴撶殑鍚堟牸鏁伴噺锛氭墍鏈夐渶妫�琛岀殑璐ㄦ鍚堟牸鏁伴噺鍧囦负 0 鎴栦负绌恒��"
+ + "璇峰厛瀹屾垚涓嶅悎鏍煎搧鐨勫缃紙閫�璐ф垨璁╂鎺ユ敹锛夛紝澶勭疆瀹屾垚鍚庡啀鐢熸垚鍏ュ簱鍗曘��");
}
return receipt.getId();
--
Gitblit v1.9.3