From 5276c9fe5c3e5c2a5bca3ed1510ecdd0e728f516 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 29 十月 2026 16:10:22 +0800
Subject: [PATCH] fix(purchase): 采购审批详情录入日期以采购台账为准

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 5a80184..d9854df 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -1099,7 +1099,11 @@
                     if (snapshot.getProjectName() == null) {
                         snapshot.setProjectName(purchaseLedger.getProjectName());
                     }
-                    if (snapshot.getEntryDate() == null) {
+                    // 褰曞叆鏃堕棿浠ラ噰璐彴璐︿负鍑嗭紝閬垮厤瀹℃壒蹇収閲岀殑褰曞叆鏃ユ湡涓庡彴璐﹀涓嶄笂
+                    if (purchaseLedger.getEntryDate() != null
+                            && (snapshot.getEntryDate() == null
+                            || !DateUtils.toLocalDate(snapshot.getEntryDate())
+                            .equals(DateUtils.toLocalDate(purchaseLedger.getEntryDate())))) {
                         snapshot.setEntryDate(purchaseLedger.getEntryDate());
                     }
                     if (snapshot.getExecutionDate() == null) {
@@ -1108,6 +1112,13 @@
                     if (snapshot.getRemarks() == null) {
                         snapshot.setRemarks(purchaseLedger.getRemarks());
                     }
+                    // 鎻愪氦瀹℃壒鏃惰嫢灏氭湭濉啓鍚堝悓閲戦锛屽揩鐓ч噷浼氭槸0锛岃繖閲岀敤鍙拌处閲岀殑褰撳墠閲戦鍏滃簳
+                    if (snapshot.getContractAmount() == null || snapshot.getContractAmount().compareTo(BigDecimal.ZERO) == 0) {
+                        snapshot.setContractAmount(purchaseLedger.getContractAmount());
+                    }
+                    if (snapshot.getNetContractAmount() == null || snapshot.getNetContractAmount().compareTo(BigDecimal.ZERO) == 0) {
+                        snapshot.setNetContractAmount(purchaseLedger.getNetContractAmount());
+                    }
                     if (snapshot.getRecorderId() == null) {
                         snapshot.setRecorderId(purchaseLedger.getRecorderId());
                     }

--
Gitblit v1.9.3