From d39e4f7d839167c16425086dfa2f8747bccfdff9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 05 十一月 2026 17:39:01 +0800
Subject: [PATCH] feat: 打通销售采购财务闭环并完成累计业务优化

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/itemreceipt/MesWmItemReceiptServiceImpl.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 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 4403d20..4346163 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
@@ -431,12 +431,36 @@
             receiptLine.setItemId(noticeLine.getItemId());
             // 浣跨敤鍚堟牸鏁伴噺锛堝鏋滄湁 IQC 鍒欐槸鍚堟牸鏁伴噺锛屽惁鍒欐槸鍒拌揣鏁伴噺锛�
             receiptLine.setReceivedQuantity(noticeLine.getQualifiedQuantity() != null ? noticeLine.getQualifiedQuantity() : noticeLine.getArrivalQuantity());
+            // 鎸夐噰璐鍗曡鍗曚环蹇収閲戦锛屼緵鏉ョエ/瀵硅处浣跨敤
+            fillReceiptLinePrice(receiptLine);
             itemReceiptLineService.createItemReceiptLineFromArrivalNoticeLine(receiptLine);
         }
 
         return receipt.getId();
     }
 
+    /**
+     * 鎸夐噰璐鍗曡鍗曚环鍥炲~鍏ュ簱琛岄噾棰濓紝閬垮厤瀵硅处鏃跺啀鑱旇〃鍙栦环
+     */
+    private void fillReceiptLinePrice(MesWmItemReceiptLineDO receiptLine) {
+        if (receiptLine.getPurchaseOrderItemId() == null) {
+            return;
+        }
+        try {
+            var item = purchaseOrderApi.getPurchaseOrderItem(receiptLine.getPurchaseOrderItemId()).getData();
+            if (item == null || item.getProductPrice() == null) {
+                return;
+            }
+            receiptLine.setPrice(item.getProductPrice());
+            if (receiptLine.getReceivedQuantity() != null) {
+                receiptLine.setTotalPrice(item.getProductPrice().multiply(receiptLine.getReceivedQuantity()));
+            }
+        } catch (Exception ex) {
+            // 浠锋牸鍙槸蹇収锛岄噰璐鍗曡鍙栦笉鍒版椂涓嶉樆鏂叆搴�
+            log.warn("[fillReceiptLinePrice][閲囪喘璁㈠崟琛�({}) 浠锋牸蹇収澶辫触]", receiptLine.getPurchaseOrderItemId(), ex);
+        }
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void submitItemReceiptApproval(Long id, String processDefinitionKey) {

--
Gitblit v1.9.3