From 000205578dc02b9d9ac0e2e5dee740142f4cff80 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 21 四月 2026 10:36:30 +0800
Subject: [PATCH] fix: 销售发货单打印有多个产品时只展示一个产品名称

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index d8802c7..f9b6d0f 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -13,7 +13,6 @@
 import com.ruoyi.approve.service.IApproveNodeService;
 import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.device.mapper.DeviceRepairMapper;
 import com.ruoyi.device.pojo.DeviceRepair;
@@ -39,6 +38,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -208,16 +208,26 @@
                     purchaseLedger.setApprovalStatus(3);
                     List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>()
                             .lambda().eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2));
+                    boolean hasCheckedProduct = false;
                     for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
                         // 璐ㄦ
                         if (salesLedgerProduct.getIsChecked()) {
+                            hasCheckedProduct = true;
                             purchaseLedgerServiceImpl.addQualityInspect(purchaseLedger, salesLedgerProduct);
                         }else {
                             //鐩存帴鍏ュ簱
                             stockUtils.addStock(null, salesLedgerProduct.getId(), salesLedgerProduct.getProductModelId(),
                                     salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), salesLedgerProduct.getId());
+                            BigDecimal oldStocked = salesLedgerProduct.getStockedQuantity() == null ? BigDecimal.ZERO : salesLedgerProduct.getStockedQuantity();
+                            BigDecimal orderQty = salesLedgerProduct.getQuantity() == null ? BigDecimal.ZERO : salesLedgerProduct.getQuantity();
+                            BigDecimal newStocked = oldStocked.add(orderQty);
+                            salesLedgerProduct.setStockedQuantity(newStocked);
+                            salesLedgerProduct.setProductStockStatus(2);
+                            salesLedgerProduct.fillRemainingQuantity();
+                            salesLedgerProductMapper.updateById(salesLedgerProduct);
                         }
                     }
+                    purchaseLedger.setStockStatus(hasCheckedProduct ? 0 : 2);
                 } else if (status.equals(3)) {
                     // 鎷掔粷
                     purchaseLedger.setApprovalStatus(4);

--
Gitblit v1.9.3