From 05de62989998157eab6ae4809ec3a45db6783e10 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期二, 10 六月 2025 15:36:54 +0800
Subject: [PATCH] 开票台账删除功能修改
---
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
index 38e0df3..95a51ff 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -288,6 +288,8 @@
detailPagination.put("pageSize", detailPageSize);
detailPagination.put("pages", (int) Math.ceil((double) totalDetails / detailPageSize));
+ // 搴斾粯閲戦閫昏緫涓嶉噰鐢ㄥ悎鍚岄噾棰濇敼鎴� 鍙戠エ閲戦鍑忎粯娆鹃噾棰�
+ payableAmount = invoiceAmount.subtract(paymentAmount);
res.put("invoiceAmount", invoiceAmount);
res.put("payableAmount", payableAmount);
res.put("paymentAmount", paymentAmount);
@@ -363,20 +365,56 @@
@Override
public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) {
List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId);
- if(!CollectionUtils.isEmpty(paymentRecordList)) {
- // 搴斾粯閲戦璁$畻
- BigDecimal amountTotal = BigDecimal.ZERO;
- for (PaymentHistoryRecordVo paymentHistoryRecordVo : paymentRecordList) {
- if(paymentHistoryRecordVo.getType() == 0){
- amountTotal = amountTotal.subtract(paymentHistoryRecordVo.getCurrentPaymentAmount());
- }
- if(paymentHistoryRecordVo.getType() == 1){
- amountTotal = amountTotal.add(paymentHistoryRecordVo.getInvoiceAmount());
- }
+ List<PaymentHistoryRecordVo> result = new ArrayList<>();
+ // 搴斾粯鎬婚噾棰濋噾棰濊绠�
+ BigDecimal amountTotal = BigDecimal.ZERO;
+ if(CollectionUtils.isNotEmpty(paymentRecordList)) {
+ Map<LocalDate, List<PaymentHistoryRecordVo>> dateListMap = paymentRecordList.stream().collect(
+ Collectors.groupingBy(
+ PaymentHistoryRecordVo::getHappenTime,
+ LinkedHashMap::new,
+ Collectors.toList()
+ )
+ );
+ for (LocalDate localDate : dateListMap.keySet()) {
+ BigDecimal currentPaymentAmount = BigDecimal.ZERO;
+ BigDecimal invoiceAmount = BigDecimal.ZERO;
+ BigDecimal currentDateTotal = BigDecimal.ZERO;
+ List<PaymentHistoryRecordVo> paymentHistoryRecordVos = dateListMap.get(localDate);
+ // 璁$畻褰撳ぉ姹囨鏁�
+ currentPaymentAmount = paymentHistoryRecordVos.stream()
+ .filter(item ->item.getType() == 0)
+ .map(PaymentHistoryRecordVo::getCurrentPaymentAmount)
+ .reduce(BigDecimal.ZERO,BigDecimal::add);
+ // 璁$畻浠婂ぉ鏉ョエ鏁�
+ invoiceAmount = paymentHistoryRecordVos.stream()
+ .filter(item ->item.getType() == 1)
+ .map(PaymentHistoryRecordVo::getInvoiceAmount)
+ .reduce(BigDecimal.ZERO,BigDecimal::add);
+ // 璁$畻褰撴棩姹囨��
+ currentDateTotal = currentDateTotal.add(invoiceAmount).subtract(currentPaymentAmount);
+ PaymentHistoryRecordVo paymentHistoryRecordVo = new PaymentHistoryRecordVo();
+ paymentHistoryRecordVo.setHappenTime(localDate);
+ paymentHistoryRecordVo.setCurrentPaymentAmount(currentPaymentAmount);
+ paymentHistoryRecordVo.setInvoiceAmount(invoiceAmount);
+ amountTotal = amountTotal.add(currentDateTotal);
paymentHistoryRecordVo.setPayableAmount(amountTotal);
+ result.add(paymentHistoryRecordVo);
}
+
}
- return paymentRecordList;
+ return result;
+ }
+
+ /**
+ * 鏌ヨ浠樻鐧昏鍒楄〃鍒嗛〉
+ *
+ * @param paymentRegistrationDto 浠樻鐧昏
+ * @return 浠樻鐧昏闆嗗悎
+ */
+ @Override
+ public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) {
+ return paymentRegistrationMapper.paymentHistoryListPage(page, paymentRegistrationDto);
}
// 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級
--
Gitblit v1.9.3