From 3481d209ec847542b73fa16616ffe0e13c949e80 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 18 四月 2026 18:11:03 +0800
Subject: [PATCH] fix: 入库与出库数量绑定
---
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java | 36 ++++++++++++++++++++++++++----------
1 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index ac469e8..ac28c29 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -100,7 +100,11 @@
@Override
public SalesLedgerProduct selectSalesLedgerProductById(Long id) {
- return salesLedgerProductMapper.selectById(id);
+ SalesLedgerProduct row = salesLedgerProductMapper.selectById(id);
+ if (row != null) {
+ row.fillRemainingQuantity();
+ }
+ return row;
}
@Override
@@ -189,18 +193,27 @@
if (item.getFutureTicketsAmount() == null || item.getFutureTicketsAmount().compareTo(BigDecimal.ZERO) == 0) {
item.setFutureTicketsAmount(BigDecimal.ZERO);
}
- if (item.getApproveStatus() == null || item.getApproveStatus() != 2) {
- Integer hasSufficientStock = item.getHasSufficientStock();
- if (hasSufficientStock != null && hasSufficientStock == 0) {
- item.setApproveStatus(0);
- } else {
- item.setApproveStatus(1);
- }
- }
BigDecimal returnQuality = finalReturnOrderGroupDtoMap.getOrDefault(item.getId(), BigDecimal.ZERO);
item.setReturnQuality(returnQuality);
BigDecimal quantity = item.getQuantity() == null ? BigDecimal.ZERO : item.getQuantity();
- item.setAvailableQuality(quantity.subtract(returnQuality));
+ BigDecimal shipped = item.getShippedQuantity() == null ? BigDecimal.ZERO : item.getShippedQuantity();
+ BigDecimal available = quantity.subtract(returnQuality).subtract(shipped);
+ item.setAvailableQuality(available.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : available);
+ item.fillRemainingQuantity();
+ if (item.getApproveStatus() == null || item.getApproveStatus() != 2) {
+ BigDecimal remainingShipped = item.getRemainingShippedQuantity() == null ? BigDecimal.ZERO : item.getRemainingShippedQuantity();
+ boolean hasOutbound = shipped.compareTo(BigDecimal.ZERO) > 0;
+ if (hasOutbound && remainingShipped.compareTo(BigDecimal.ZERO) <= 0) {
+ item.setApproveStatus(0);
+ } else {
+ Integer hasSufficientStock = item.getHasSufficientStock();
+ if (hasSufficientStock != null && hasSufficientStock == 0) {
+ item.setApproveStatus(0);
+ } else {
+ item.setApproveStatus(1);
+ }
+ }
+ }
ProductModel productModel = finalProductModelMap.get(item.getProductModelId());
if (productModel != null) {
item.setThickness(productModel.getThickness());
@@ -275,6 +288,7 @@
int result;
Long salesLedgerId = salesLedgerProduct.getSalesLedgerId();
+ salesLedgerProduct.fillRemainingQuantity();
if (salesLedgerProduct.getId() == null) {
salesLedgerProduct.setRegisterDate(LocalDateTime.now());
result = salesLedgerProductMapper.insert(salesLedgerProduct);
@@ -497,6 +511,7 @@
} else {
item.setStatusName("鏈畬鎴愪粯娆�");
}
+ item.fillRemainingQuantity();
});
return salesLedgerProductDtoIPage;
}
@@ -511,6 +526,7 @@
} else {
item.setStatusName("鏈畬鎴愪粯娆�");
}
+ item.fillRemainingQuantity();
});
return salesLedgerProductDtoIPage;
}
--
Gitblit v1.9.3