liyong
3 天以前 279655b6eaade16ad70a755a970816bf7a40c996
src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java
@@ -99,11 +99,12 @@
        PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(paymentRegistration.getPurchaseLedgerId());
        SalesLedger salesLedger = salesLedgerMapper.selectOne(new QueryWrapper<SalesLedger>().
                eq("sales_contract_no", purchaseLedger.getSalesContractNo()));
        if (salesLedger == null) {
            throw new RuntimeException("关联销售合同号不存在");
//        if (salesLedger == null) {
//            throw new RuntimeException("关联销售合同号不存在");
//        }
        if (salesLedger != null) {
            paymentRegistration.setSaleLedgerId(salesLedger.getId());
        }
        paymentRegistration.setSaleLedgerId(salesLedger.getId());
        paymentRegistration.setSupplierId(purchaseLedger.getSupplierId());
        TicketRegistration tr = ticketRegistrationMapper.selectOne(new LambdaQueryWrapper<TicketRegistration>().eq(TicketRegistration::getId, paymentRegistration.getTicketRegistrationId()));
@@ -366,6 +367,7 @@
    public List<PaymentHistoryRecordVo> getPaymentRecordList(Long supplierId) {
        List<PaymentHistoryRecordVo> paymentRecordList = paymentRegistrationMapper.getPaymentRecordList(supplierId);
        List<PaymentHistoryRecordVo> result = new ArrayList<>();
        List<PaymentHistoryRecordVo> newResult = new ArrayList<>();
        // 应付总金额金额计算
        BigDecimal amountTotal = BigDecimal.ZERO;
        if(CollectionUtils.isNotEmpty(paymentRecordList)) {
@@ -397,13 +399,25 @@
                paymentHistoryRecordVo.setHappenTime(localDate);
                paymentHistoryRecordVo.setCurrentPaymentAmount(currentPaymentAmount);
                paymentHistoryRecordVo.setInvoiceAmount(invoiceAmount);
                amountTotal = amountTotal.add(currentDateTotal);
                amountTotal = paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount());
                paymentHistoryRecordVo.setPayableAmount(amountTotal);
                result.add(paymentHistoryRecordVo);
            }
            for (int i = 0; i < result.size(); i++) {
                PaymentHistoryRecordVo paymentHistoryRecordVo = result.get(i);
                if (i == 0) {
                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo.getInvoiceAmount().subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
                }else {
                    PaymentHistoryRecordVo paymentHistoryRecordVo1 = result.get(i-1);
                    paymentHistoryRecordVo.setPayableAmount(paymentHistoryRecordVo1.getPayableAmount()
                            .add(paymentHistoryRecordVo.getInvoiceAmount()).subtract(paymentHistoryRecordVo.getCurrentPaymentAmount()));
                }
                newResult.add(paymentHistoryRecordVo);
            }
        }
        return result;
        return newResult;
    }
    /**
@@ -417,6 +431,24 @@
        return paymentRegistrationMapper.paymentHistoryListPage(page, paymentRegistrationDto);
    }
    @Override
    public Boolean delete(Long[] ids) {
        for (Long id : ids) {
            List<ProductRecord> productRecords = productRecordMapper.selectList(new QueryWrapper<ProductRecord>().lambda().eq(ProductRecord::getTicketRegistrationId, id));
            for (ProductRecord productRecord : productRecords) {
                SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(productRecord.getSaleLedgerProjectId());
                salesLedgerProduct.setTicketsNum(salesLedgerProduct.getTicketsNum().subtract(productRecord.getTicketsNum()));
                salesLedgerProduct.setTicketsAmount(salesLedgerProduct.getTicketsAmount().subtract(productRecord.getTicketsAmount()));
                salesLedgerProduct.setFutureTickets(salesLedgerProduct.getFutureTickets().add(productRecord.getTicketsNum()));
                salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getFutureTicketsAmount().add(productRecord.getTicketsAmount()));
                salesLedgerProductMapper.updateById(salesLedgerProduct);
            }
            ticketRegistrationMapper.delete(new QueryWrapper<TicketRegistration>().lambda().eq(TicketRegistration::getId, id));
            productRecordMapper.delete(new QueryWrapper<ProductRecord>().lambda().eq(ProductRecord::getTicketRegistrationId, id));
        }
        return true;
    }
    // 批量查询采购台账(当月)
    private Map<Long, List<PurchaseLedger>> batchQueryPurchaseLedgers(List<Long> supplierIds, LocalDate startDate, LocalDate endDate) {
        LambdaQueryWrapper<PurchaseLedger> query = new LambdaQueryWrapper<>();