gongchunyi
15 小时以前 71e05a80df83069c9611ba5ef0fdc2a37eb6a3ae
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -398,12 +398,15 @@
            }
            for (CustomerTransactionsVo vo : records) {
                BigDecimal outboundAmount = shippedAmountMap.getOrDefault(vo.getCustomerId(), BigDecimal.ZERO);
                vo.setShippedAmount(outboundAmount);
                BigDecimal contractAmounts = vo.getContractAmounts() == null ? BigDecimal.ZERO : vo.getContractAmounts();
                BigDecimal unshippedAmount = contractAmounts.subtract(outboundAmount);
                BigDecimal contractAmounts = AmountUtils.scaleMoney(vo.getContractAmounts());
                // 已出库金额按分(2位小数)处理,避免按含税单价累计出库金额产生误差导致全部发货后仍有未出库零头
                BigDecimal shippedAmount = AmountUtils.scaleMoney(outboundAmount);
                BigDecimal unshippedAmount = contractAmounts.subtract(shippedAmount);
                if (unshippedAmount.compareTo(BigDecimal.ZERO) < 0) {
                    unshippedAmount = BigDecimal.ZERO;
                }
                vo.setContractAmounts(contractAmounts);
                vo.setShippedAmount(shippedAmount);
                vo.setUnshippedAmount(unshippedAmount);
                AmountUtils.normalizeCustomerTransaction(vo);
            }
@@ -426,12 +429,15 @@
            }
            for (CustomerTransactionsDetailsVo vo : records) {
                BigDecimal outboundAmount = shippedAmountMap.getOrDefault(vo.getSalesLedgerId(), BigDecimal.ZERO);
                vo.setShippedAmount(outboundAmount);
                BigDecimal contractAmount = vo.getContractAmount() == null ? BigDecimal.ZERO : vo.getContractAmount();
                BigDecimal unshippedAmount = contractAmount.subtract(outboundAmount);
                BigDecimal contractAmount = AmountUtils.scaleMoney(vo.getContractAmount());
                // 已出库金额按分(2位小数)处理,避免按含税单价累计出库金额产生误差导致全部发货后仍有未出库零头
                BigDecimal shippedAmount = AmountUtils.scaleMoney(outboundAmount);
                BigDecimal unshippedAmount = contractAmount.subtract(shippedAmount);
                if (unshippedAmount.compareTo(BigDecimal.ZERO) < 0) {
                    unshippedAmount = BigDecimal.ZERO;
                }
                vo.setContractAmount(contractAmount);
                vo.setShippedAmount(shippedAmount);
                vo.setUnshippedAmount(unshippedAmount);
                AmountUtils.normalizeCustomerTransactionDetail(vo);
            }