From e69d2c5c515319500b485a921a17d74457ba0eb4 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期五, 06 六月 2025 15:58:13 +0800
Subject: [PATCH] bug修复
---
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | 48 ++++++++++++++++++-----
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 15 ++++++-
2 files changed, 49 insertions(+), 14 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..ca69eef 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -363,20 +363,46 @@
@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()
+ )
+ );
+ BigDecimal amountDateTotal = BigDecimal.ZERO;
+ 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;
}
// 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index a21870a..a42850d 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -10,9 +10,8 @@
import com.ruoyi.sales.dto.InvoiceRegistrationProductDto;
import com.ruoyi.sales.dto.SalesLedgerDto;
import com.ruoyi.sales.excel.InvoiceRegisAndProductExcelDto;
-import com.ruoyi.sales.mapper.InvoiceRegistrationMapper;
-import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper;
-import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.mapper.*;
+import com.ruoyi.sales.pojo.InvoiceLedger;
import com.ruoyi.sales.pojo.InvoiceRegistration;
import com.ruoyi.sales.pojo.InvoiceRegistrationProduct;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -41,6 +40,9 @@
@Autowired
private SalesLedgerProductMapper salesLedgerProductMapper;
+ @Autowired
+ private InvoiceLedgerMapper invoiceLedgerMapper;
+
/**
* 寮�绁ㄧ櫥璁拌褰曟柊澧�
* @param salesLedgerDto
@@ -56,6 +58,7 @@
invoiceRegistration.setSalesLedgerId(salesLedgerDto.getId().intValue());
invoiceRegistrationMapper.insert(invoiceRegistration);
List<SalesLedgerProduct> productData = salesLedgerDto.getProductData();
+ BigDecimal invoiceAmountTotal = BigDecimal.ZERO;
if(CollectionUtils.isNotEmpty(productData)){
for (SalesLedgerProduct productDatum : productData) {
// 濡傛灉寮�绁ㄦ暟涓�0 璺宠繃
@@ -63,6 +66,7 @@
if(null != currentInvoiceNum && BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
continue;
}
+ invoiceAmountTotal = invoiceAmountTotal.add(currentInvoiceNum);
InvoiceRegistrationProduct invoiceRegistrationProduct = new InvoiceRegistrationProduct();
BeanUtils.copyProperties(productDatum, invoiceRegistrationProduct);
invoiceRegistrationProduct.setId(null);
@@ -73,6 +77,11 @@
invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue());
invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct);
salesLedgerProductMapper.updateById(productDatum);
+ // 鏂板涓�鏉″紑绁ㄥ彴璐︽暟鎹�
+ InvoiceLedger invoiceLedger = new InvoiceLedger();
+ invoiceLedger.setInvoiceRegistrationProductId(invoiceRegistrationProduct.getId());
+ invoiceLedger.setInvoiceTotal(invoiceRegistrationProduct.getInvoiceAmount());
+ invoiceLedgerMapper.insert(invoiceLedger);
}
}
}
--
Gitblit v1.9.3