From 8d350f76d9b8ca447f8eef680745cea2b3ec61d8 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期四, 25 六月 2026 09:09:17 +0800
Subject: [PATCH] fix: 报价、审核、采购台账、供应商往来、销售台账、客户往来小数点保留6位小数
---
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 827e3a2..1c27133 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -16,6 +16,7 @@
import com.ruoyi.basic.pojo.CustomerUser;
import com.ruoyi.basic.service.*;
import com.ruoyi.basic.vo.CustomerVo;
+import com.ruoyi.common.utils.AmountUtils;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -34,6 +35,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import java.math.BigDecimal;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@@ -383,12 +385,58 @@
@Override
public IPage<CustomerTransactionsVo> customewTransactions(Page page, String customerName) {
- return customerMapper.customewTransactions(page, customerName);
+ IPage<CustomerTransactionsVo> p = customerMapper.customewTransactions(page, customerName);
+ List<CustomerTransactionsVo> records = p.getRecords();
+ if (!CollectionUtils.isEmpty(records)) {
+ List<Long> customerIds = records.stream().map(CustomerTransactionsVo::getCustomerId).collect(Collectors.toList());
+ List<Map<String, Object>> shippedAmountList = customerMapper.getShippedAmountByCustomerIds(customerIds);
+ Map<Long, BigDecimal> shippedAmountMap = new HashMap<>();
+ for (Map<String, Object> map : shippedAmountList) {
+ if (map.get("outboundAmount") != null) {
+ shippedAmountMap.put(((Number) map.get("customerId")).longValue(), new BigDecimal(String.valueOf(map.get("outboundAmount"))));
+ }
+ }
+ 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);
+ if (unshippedAmount.compareTo(BigDecimal.ZERO) < 0) {
+ unshippedAmount = BigDecimal.ZERO;
+ }
+ vo.setUnshippedAmount(unshippedAmount);
+ AmountUtils.normalizeCustomerTransaction(vo);
+ }
+ }
+ return p;
}
@Override
public IPage<CustomerTransactionsDetailsVo> customewTransactionsDetails(Page page, Long customerId) {
- return customerMapper.customewTransactionsDetails(page, customerId);
+ IPage<CustomerTransactionsDetailsVo> p = customerMapper.customewTransactionsDetails(page, customerId);
+ List<CustomerTransactionsDetailsVo> records = p.getRecords();
+ if (!CollectionUtils.isEmpty(records)) {
+ List<Long> salesLedgerIds = records.stream().map(CustomerTransactionsDetailsVo::getSalesLedgerId).collect(Collectors.toList());
+ List<Map<String, Object>> shippedAmountList = customerMapper.getShippedAmountBySalesLedgerIds(salesLedgerIds);
+ Map<Long, BigDecimal> shippedAmountMap = new HashMap<>();
+ for (Map<String, Object> map : shippedAmountList) {
+ if (map.get("outboundAmount") != null) {
+ shippedAmountMap.put(((Number) map.get("salesLedgerId")).longValue(), new BigDecimal(String.valueOf(map.get("outboundAmount"))));
+ }
+ }
+ 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);
+ if (unshippedAmount.compareTo(BigDecimal.ZERO) < 0) {
+ unshippedAmount = BigDecimal.ZERO;
+ }
+ vo.setUnshippedAmount(unshippedAmount);
+ AmountUtils.normalizeCustomerTransactionDetail(vo);
+ }
+ }
+ return p;
}
/**
--
Gitblit v1.9.3