gongchunyi
6 小时以前 3481d209ec847542b73fa16616ffe0e13c949e80
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;
    }