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