From b4fc4408fae3f46edeb6c5421224c484bb149a89 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 15 六月 2026 16:22:40 +0800
Subject: [PATCH] 同一月份工资不可以发放多次
---
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 16 +++++++++++-----
1 files changed, 11 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 a3458b8..651cf9e 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -27,6 +27,7 @@
import com.ruoyi.common.enums.ReviewStatusEnum;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.FreightUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -678,6 +679,7 @@
// 鎵ц鏇存柊鎿嶄綔
if (!updateList.isEmpty()) {
for (SalesLedgerProduct product : updateList) {
+ FreightUtils.fillFreightAmount(product);
product.setType(ledgerType);
salesLedgerProductMapper.updateById(product);
}
@@ -685,6 +687,7 @@
// 鎵ц鎻掑叆鎿嶄綔
if (!insertList.isEmpty()) {
for (SalesLedgerProduct salesLedgerProduct : insertList) {
+ FreightUtils.fillFreightAmount(salesLedgerProduct);
salesLedgerProduct.setType(ledgerType);
Date entryDate = purchaseLedger.getEntryDate();
@@ -974,6 +977,7 @@
for (PurchaseLedgerProductImportDto salesLedgerProductImportDto : salesLedgerProductImportDtos) {
SalesLedgerProduct salesLedgerProduct = new SalesLedgerProduct();
BeanUtils.copyProperties(salesLedgerProductImportDto, salesLedgerProduct);
+ FreightUtils.fillFreightAmount(salesLedgerProduct);
salesLedgerProduct.setSalesLedgerId(salesLedger.getId());
salesLedgerProduct.setType(2);
// 璁$畻涓嶅惈绋庢�讳环
@@ -1109,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() + "銆戝凡瀹屾垚鍏ュ簱");
}
@@ -1147,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