From 684e4306a08feeae188070f264148e6765da8dcf Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 20 九月 2026 19:25:15 +0800
Subject: [PATCH] feat(account): 更新往来付款回款流水表及接口
---
src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java | 34 ++++++++++++++++++++++++++++++++++
1 files changed, 34 insertions(+), 0 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 5a4d19a..78cb8ba 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -23,6 +23,7 @@
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
import com.ruoyi.procurementrecord.pojo.ReturnManagement;
+import com.ruoyi.sales.dto.CustomerDepositAmountDto;
import com.ruoyi.sales.mapper.SalesLedgerMapper;
import com.ruoyi.sales.mapper.SalesQuotationMapper;
import com.ruoyi.sales.pojo.SalesLedger;
@@ -38,6 +39,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;
@@ -117,7 +119,37 @@
customerVo.setFollowUpList(followUpDtoList);
}
+ fillDepositAmount(Collections.singletonList(customerVo));
+
return customerVo;
+ }
+
+ /**
+ * 濉唬鍌ㄩ噾棰濓紙璇ュ鎴峰叏閮ㄣ�岀被鍨�=浠e偍銆嶇殑閿�鍞彴璐﹀悎鍚岄噾棰濈疮璁★級骞跺垽鏂槸鍚﹀凡瓒呬俊鎵樺熀閲�
+ */
+ private void fillDepositAmount(List<CustomerVo> records) {
+ if (CollectionUtils.isEmpty(records)) {
+ return;
+ }
+ List<Long> customerIds = records.stream()
+ .map(CustomerVo::getId)
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ Map<Long, BigDecimal> depositAmountMap = customerIds.isEmpty()
+ ? Collections.emptyMap()
+ : salesLedgerMapper.selectDepositAmountByCustomerIds(customerIds).stream()
+ .filter(item -> item.getCustomerId() != null)
+ .collect(Collectors.toMap(
+ CustomerDepositAmountDto::getCustomerId,
+ item -> item.getDepositTotalAmount() == null ? BigDecimal.ZERO : item.getDepositTotalAmount(),
+ (existing, replacement) -> existing));
+
+ records.forEach(customer -> {
+ BigDecimal depositTotalAmount = depositAmountMap.getOrDefault(customer.getId(), BigDecimal.ZERO);
+ customer.setDepositTotalAmount(depositTotalAmount);
+ customer.setExceedsTrustFund(customer.getTrustFund() != null
+ && depositTotalAmount.compareTo(customer.getTrustFund()) > 0);
+ });
}
/**
@@ -168,6 +200,8 @@
c.setUserIds(userIds);
}
});
+
+ fillDepositAmount(records);
}
return customerPage;
--
Gitblit v1.9.3