From 8b3c7885598f323b7fd86ba58f31a974a3d7b933 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 15 六月 2026 16:22:21 +0800
Subject: [PATCH] 导出工资明细

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 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 0833069..651cf9e 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -1113,13 +1113,13 @@
                 throw new BaseException("鐞嗚鍏ュ簱鏁伴噺蹇呴』澶т簬0");
             }
 
-            BigDecimal approvedStockInNum = getApprovedPurchaseStockInNum(
+            BigDecimal occupiedStockInNum = getOccupiedPurchaseStockInNum(
                     purchaseLedger.getId(),
                     purchaseLedger.getPurchaseContractNumber(),
                     salesLedgerProduct.getId(),
                     salesLedgerProduct.getProductModelId()
             );
-            BigDecimal remainingStockInNum = salesLedgerProduct.getQuantity().subtract(approvedStockInNum);
+            BigDecimal remainingStockInNum = salesLedgerProduct.getQuantity().subtract(occupiedStockInNum);
             if (remainingStockInNum.compareTo(BigDecimal.ZERO) <= 0) {
                 throw new BaseException("浜у搧銆�" +  productModel.getModel() + "銆戝凡瀹屾垚鍏ュ簱");
             }
@@ -1151,15 +1151,17 @@
         return count;
     }
 
-    private BigDecimal getApprovedPurchaseStockInNum(Long purchaseLedgerId, String purchaseContractNumber, Long productId, Long productModelId) {
+    private BigDecimal getOccupiedPurchaseStockInNum(Long purchaseLedgerId, String purchaseContractNumber, Long productId, Long productModelId) {
         if (purchaseLedgerId == null || productId == null || productModelId == null || !StringUtils.hasText(purchaseContractNumber)) {
             return BigDecimal.ZERO;
         }
         List<StockInRecord> stockRecords = findDirectStockRecords(purchaseLedgerId, purchaseContractNumber, productModelId, productId);
         return stockRecords.stream()
                 .filter(Objects::nonNull)
-                .filter(item -> ReviewStatusEnum.APPROVED.getCode().equals(item.getApprovalStatus()))
-                .map(StockInRecord::getStockInNum)
+                .filter(item -> item.getApprovalStatus() == null
+                        || ReviewStatusEnum.PENDING_REVIEW.getCode().equals(item.getApprovalStatus())
+                        || ReviewStatusEnum.APPROVED.getCode().equals(item.getApprovalStatus()))
+                .map(item -> item.getTheoryStockInNum() != null ? item.getTheoryStockInNum() : item.getStockInNum())
                 .filter(Objects::nonNull)
                 .reduce(BigDecimal.ZERO, BigDecimal::add);
     }

--
Gitblit v1.9.3