From 103f10ed038b7398633b919f0efc5486f1e30267 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 22 六月 2026 21:18:27 +0800
Subject: [PATCH] feat: 交付日期修改为入库日期起始

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index ec49c7d..faaae71 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -27,6 +27,7 @@
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
+import com.ruoyi.common.utils.excel.ExcelUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.other.mapper.TempFileMapper;
@@ -822,7 +823,11 @@
             record.setSalesLedgerProcessRouteId(route.getId());
             Integer isCompleted = inputRecord != null && inputRecord.getIsCompleted() != null ? inputRecord.getIsCompleted() : 0;
             record.setIsCompleted(isCompleted);
-            record.setCompletedTime(Objects.equals(isCompleted, 1) ? LocalDateTime.now() : null);
+            if (Objects.equals(isCompleted, 1)) {
+                record.setCompletedTime(inputRecord != null && inputRecord.getCompletedTime() != null ? inputRecord.getCompletedTime() : LocalDateTime.now());
+            } else {
+                record.setCompletedTime(null);
+            }
             routeRecordList.add(record);
         }
         salesLedgerProcessRouteRecordService.saveBatch(routeRecordList);
@@ -1905,7 +1910,11 @@
             BigDecimal stockedQty = item.getStockedQuantity() == null ? BigDecimal.ZERO : item.getStockedQuantity();
             return orderQty.compareTo(BigDecimal.ZERO) <= 0 || stockedQty.compareTo(orderQty) >= 0;
         });
-        ledger.setStockStatus(allStocked ? 2 : (hasStocked ? 1 : 0));
+        int newStockStatus = allStocked ? 2 : (hasStocked ? 1 : 0);
+        if (newStockStatus > 0 && ledger.getDeliveryDate() == null) {
+            ledger.setDeliveryDate(LocalDate.now().plusDays(7));
+        }
+        ledger.setStockStatus(newStockStatus);
         baseMapper.updateById(ledger);
     }
 
@@ -2070,7 +2079,11 @@
             return sq != null && sq.compareTo(BigDecimal.ZERO) > 0;
         });
         boolean allLinesFull = ledgerAllProducts.stream().allMatch(p -> Objects.equals(p.getProductStockStatus(), 2));
-        salesLedger.setStockStatus(allLinesFull ? 2 : (anyInbound ? 1 : 0));
+        int newStockStatus = allLinesFull ? 2 : (anyInbound ? 1 : 0);
+        if (newStockStatus > 0 && salesLedger.getDeliveryDate() == null) {
+            salesLedger.setDeliveryDate(LocalDate.now().plusDays(7));
+        }
+        salesLedger.setStockStatus(newStockStatus);
         baseMapper.updateById(salesLedger);
     }
 
@@ -4441,7 +4454,7 @@
                 sheetMap.put("宸ヨ壓璺嚎", sheetData);
             }
 
-            com.ruoyi.common.utils.excel.ExcelUtils.exportManySheet(response, "閿�鍞彴璐﹀伐鑹鸿矾绾垮鍑�", sheetMap);
+            ExcelUtils.exportManySheet(response, "閿�鍞彴璐﹀伐鑹鸿矾绾垮鍑�", sheetMap);
         } catch (Exception e) {
             log.error("瀵煎嚭鍞悗鍙拌处宸ヨ壓璺嚎澶辫触", e);
             throw new ServiceException("瀵煎嚭鍞悗鍙拌处宸ヨ壓璺嚎澶辫触锛�" + e.getMessage());
@@ -4487,7 +4500,7 @@
 
     private List<Object> buildProcessRouteRow(SalesLedger salesLedger, SalesLedgerProduct product, SalesLedgerProcessRouteRecord route) {
         List<Object> row = new ArrayList<>();
-        row.add(salesLedger.getEntryDate() == null ? "" : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, salesLedger.getEntryDate()));
+        row.add(route.getCompletedTime() == null ? "" : route.getCompletedTime().format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd")));
         row.add(salesLedger.getSalesContractNo());
         row.add(salesLedger.getCustomerName());
         row.add(product == null ? "" : product.getSpecificationModel());

--
Gitblit v1.9.3