From 23b349e9e8ac448b507c3f286483ac06a47e5ea4 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 23 六月 2026 11:56:02 +0800
Subject: [PATCH] fix: 额外加工费用可以自定义

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 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 4f28ad7..4ed1bed 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -274,8 +274,12 @@
             if (!bindList.isEmpty()) {
                 List<Integer> processIds = bindList.stream().map(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId).collect(Collectors.toList());
                 Map<Integer, Integer> processQuantityMap = bindList.stream().collect(Collectors.toMap(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, SalesLedgerProductProcessBind::getQuantity, (a, b) -> a));
+                Map<Integer, BigDecimal> processAmountMap = bindList.stream().collect(Collectors.toMap(SalesLedgerProductProcessBind::getSalesLedgerProductProcessId, SalesLedgerProductProcessBind::getAmount, (a, b) -> a));
                 List<SalesLedgerProductProcess> processList = salesLedgerProductProcessService.listByIds(processIds);
-                processList.forEach(p -> p.setQuantity(processQuantityMap.get(p.getId())));
+                processList.forEach(p -> {
+                    p.setQuantity(processQuantityMap.get(p.getId()));
+                    if (processAmountMap.get(p.getId()) != null) p.setUnitPrice(processAmountMap.get(p.getId()));
+                });
                 product.setSalesProductProcessList(processList);
             }
             ProductModel productModel = productModelMap.get(product.getProductModelId());
@@ -652,6 +656,7 @@
                                         SalesLedgerProductProcess p = new SalesLedgerProductProcess();
                                         p.setId(process.getId());
                                         p.setQuantity(processQty.intValue());
+                                        p.setUnitPrice(process.getUnitPrice());
                                         processList.add(p);
                                         extraProcessAmountPerPiece = extraProcessAmountPerPiece.add(defaultDecimal(process.getUnitPrice()).multiply(processQty));
                                     }
@@ -1910,7 +1915,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);
     }
 
@@ -2075,7 +2084,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);
     }
 
@@ -3082,6 +3095,7 @@
             SalesLedgerProductProcess bind = new SalesLedgerProductProcess();
             bind.setId(process.getId());
             bind.setQuantity(entry.getValue());
+            bind.setUnitPrice(process.getUnitPrice());
             result.add(bind);
         }
         return result;
@@ -4667,3 +4681,4 @@
     }
 
 }
+

--
Gitblit v1.9.3