From ab01a0f611c0adb97662bc8f548ca4a911ec8045 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期五, 06 六月 2025 17:37:39 +0800 Subject: [PATCH] 分页修改 --- src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | 82 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 77 insertions(+), 5 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 667df89..3c58664 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.framework.security.LoginUser; +import com.ruoyi.purchase.dto.PaymentHistoryRecordVo; import com.ruoyi.purchase.dto.PaymentLedgerDto; import com.ruoyi.purchase.dto.PaymentRegistrationDto; import com.ruoyi.purchase.mapper.*; @@ -47,8 +48,6 @@ private PurchaseLedgerMapper purchaseLedgerMapper; - private InvoicePurchaseMapper invoicePurchaseMapper; - private SalesLedgerMapper salesLedgerMapper; private SupplierManageMapper supplierManageMapper; @@ -83,7 +82,8 @@ List<PaymentRegistration> paymentRegistrations = paymentRegistrationMapper.selectList(new QueryWrapper<PaymentRegistration>() .eq("ticket_registration_id", registrationDto.getTicketRegistrationId())); BigDecimal total = paymentRegistrations.stream().map(PaymentRegistration::getCurrentPaymentAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - registrationDto.setUnPaymentAmount(registrationDto.getInvoiceAmount().subtract(total)); + BigDecimal invoiceAmount = (null != registrationDto.getInvoiceAmount())? registrationDto.getInvoiceAmount() : BigDecimal.ZERO; + registrationDto.setUnPaymentAmount(invoiceAmount.subtract(total)); } return list; } @@ -202,6 +202,7 @@ for (SupplierManage supplierManage : supplierManages) { Map<String, Object> res = new HashMap<>(); res.put("supplierName", supplierManage.getSupplierName()); + res.put("supplierId", supplierManage.getId()); // 搴斾粯閲戦璁$畻 BigDecimal payableAmount = BigDecimal.ZERO; @@ -213,7 +214,7 @@ .map(PurchaseLedger::getId) .filter(Objects::nonNull) .flatMap(id -> salesLedgerProductMapper.selectList( - new QueryWrapper<SalesLedgerProduct>().eq("sales_ledger_id", id) + new QueryWrapper<SalesLedgerProduct>().eq("sales_ledger_id", id).eq("type",2) ).stream()) .collect(Collectors.toList()); payableAmount = salesLedgerProducts.stream() @@ -267,7 +268,6 @@ new LambdaQueryWrapper<ProductRecord>().eq(ProductRecord::getTicketRegistrationId, ticketRegistration.getId()) ).stream() .map(ProductRecord::getTicketsNum) - .map(BigDecimal::new) .filter(Objects::nonNull) .reduce(BigDecimal.ZERO, BigDecimal::add); detail.put("voteCount", voteCount); @@ -344,6 +344,78 @@ return result; } + /** + * 鏌ヨ浠樻鐧昏鍒楄〃 + * + * @param paymentRegistrationDto 浠樻鐧昏 + * @return 浠樻鐧昏闆嗗悎 + */ + @Override + public List<PaymentRegistrationDto> paymentHistoryList(PaymentRegistrationDto paymentRegistrationDto) { + return paymentRegistrationMapper.paymentHistoryList(paymentRegistrationDto); + } + + /** + * 鏌ヨ渚涘簲鍟嗗線鏉ヨ褰� + * @param supplierId + * @return + */ + @Override + public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) { + List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId); + 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 result; + } + + /** + * 鏌ヨ浠樻鐧昏鍒楄〃鍒嗛〉 + * + * @param paymentRegistrationDto 浠樻鐧昏 + * @return 浠樻鐧昏闆嗗悎 + */ + @Override + public IPage<PaymentRegistrationDto> paymentHistoryListPage(Page page, PaymentRegistrationDto paymentRegistrationDto) { + return paymentRegistrationMapper.paymentHistoryListPage(page, paymentRegistrationDto); + } + // 鎵归噺鏌ヨ閲囪喘鍙拌处锛堝綋鏈堬級 private Map<Long, List<PurchaseLedger>> batchQueryPurchaseLedgers(List<Long> supplierIds, LocalDate startDate, LocalDate endDate) { LambdaQueryWrapper<PurchaseLedger> query = new LambdaQueryWrapper<>(); -- Gitblit v1.9.3