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 |   24 +++++++++++++++++++++++-
 1 files changed, 23 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 7c25815..d9854df 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -16,9 +16,11 @@
 import com.ruoyi.approve.service.impl.ApproveProcessServiceImpl;
 import com.ruoyi.basic.enums.ApplicationTypeEnum;
 import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.mapper.OilDepotMapper;
 import com.ruoyi.basic.mapper.ProductMapper;
 import com.ruoyi.basic.mapper.ProductModelMapper;
 import com.ruoyi.basic.mapper.SupplierManageMapper;
+import com.ruoyi.basic.pojo.OilDepot;
 import com.ruoyi.basic.pojo.Product;
 import com.ruoyi.basic.pojo.ProductModel;
 import com.ruoyi.basic.pojo.SupplierManage;
@@ -118,6 +120,7 @@
     private final StockInRecordService stockInRecordService;
     private final StockUtils stockUtils;
     private final ApprovalTemplateMapper approvalTemplateMapper;
+    private final OilDepotMapper oilDepotMapper;
 
     @Override
     public List<PurchaseLedger> selectPurchaseLedgerList(PurchaseLedger purchaseLedger) {
@@ -170,6 +173,14 @@
         purchaseLedger.setSalesLedgerId(ObjectUtils.isNotEmpty(salesLedger) ? salesLedger.getId() : -1);
         purchaseLedger.setSupplierName(supplierManage.getSupplierName());
         purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId());
+
+        // 閲囪喘娌瑰簱锛氭牴鎹补搴搃d鍥炲~娌瑰簱鍚嶇О
+        if (purchaseLedgerDto.getOilDepotId() != null) {
+            OilDepot oilDepot = oilDepotMapper.selectById(purchaseLedgerDto.getOilDepotId());
+            if (oilDepot != null) {
+                purchaseLedger.setOilDepotName(oilDepot.getDepotName());
+            }
+        }
 
         purchaseLedger.setApprovalStatus(1);
         // 瀹為檯鍚堝悓閲戦濮嬬粓绛変簬鍚堝悓閲戦
@@ -1088,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) {
@@ -1097,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