| | |
| | | package com.ruoyi.purchase.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | |
| | | List<Long> ids = ticketRegistrationList.stream().map(TicketRegistration::getId).collect(Collectors.toList()); |
| | | List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids); |
| | | for (TicketRegistration registration : ticketRegistrationList) { |
| | | BigDecimal paymentAmountTotal = BigDecimal.ZERO; |
| | | for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) { |
| | | if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){ |
| | | BigDecimal paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal(); |
| | | BigDecimal invoiceAmount = registration.getInvoiceAmount(); |
| | | registration.setPaymentAmountTotal(paymentAmountTotal); |
| | | BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal); |
| | | registration.setUnPaymentAmountTotal(subtractAmount); |
| | | paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal(); |
| | | break; |
| | | } |
| | | } |
| | | BigDecimal invoiceAmount = registration.getInvoiceAmount(); |
| | | BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal); |
| | | registration.setPaymentAmountTotal(paymentAmountTotal); |
| | | registration.setUnPaymentAmountTotal(subtractAmount); |
| | | } |
| | | } |
| | | |
| | |
| | | ).collect(Collectors.toList()); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<TicketRegistration> selectTicketRegistrationListPage(Page page, TicketRegistration ticketRegistration) { |
| | | LambdaQueryWrapper<TicketRegistration> queryWrapper = new LambdaQueryWrapper<>(); |
| | | if (StringUtils.isNotBlank(ticketRegistration.getPurchaseContractNumber())) { |
| | | queryWrapper.like(TicketRegistration::getPurchaseContractNumber, ticketRegistration.getPurchaseContractNumber()) |
| | | .like(TicketRegistration::getSupplierName, ticketRegistration.getSupplierName()) |
| | | .eq(TicketRegistration::getIssueDate, ticketRegistration.getIssueDate()); |
| | | } |
| | | IPage<TicketRegistration> ticketRegistrationIPage = ticketRegistrationMapper.selectPage(page, queryWrapper); |
| | | // 计算已付款金额 |
| | | if(CollectionUtils.isNotEmpty(ticketRegistrationIPage.getRecords())){ |
| | | List<Long> ids = ticketRegistrationIPage.getRecords().stream().map(TicketRegistration::getId).collect(Collectors.toList()); |
| | | List<PaymentRegistrationDto> paymentRegistrationDtoList = paymentRegistrationMapper.countPaymentTotalByTicketRegId(ids); |
| | | for (TicketRegistration registration : ticketRegistrationIPage.getRecords()) { |
| | | BigDecimal paymentAmountTotal = BigDecimal.ZERO; |
| | | for (PaymentRegistrationDto paymentRegistrationDto : paymentRegistrationDtoList) { |
| | | if(registration.getId().equals(paymentRegistrationDto.getTicketRegistrationId())){ |
| | | paymentAmountTotal = paymentRegistrationDto.getPaymentAmountTotal(); |
| | | break; |
| | | } |
| | | } |
| | | BigDecimal invoiceAmount = registration.getInvoiceAmount(); |
| | | BigDecimal subtractAmount = invoiceAmount.subtract(paymentAmountTotal); |
| | | registration.setPaymentAmountTotal(paymentAmountTotal); |
| | | registration.setUnPaymentAmountTotal(subtractAmount); |
| | | } |
| | | } |
| | | |
| | | return ticketRegistrationIPage; |
| | | } |
| | | |
| | | private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) { |
| | | if (products == null || products.isEmpty()) { |
| | | return; |