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/sales/service/impl/InvoiceLedgerServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 77 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java index 2d1bdf7..a67ec3a 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java @@ -92,7 +92,7 @@ BigDecimal currentNoInvoiceNum = invoiceRegistrationProduct.getNoInvoiceNum().add(invoiceRegistrationProduct.getInvoiceNum()).subtract(invoiceNum); BigDecimal currentNoInvoiceAmount = invoiceRegistrationProduct.getNoInvoiceAmount().add(invoiceRegistrationProduct.getInvoiceAmount()).subtract(productDto.getInvoiceTotal()); invoiceRegistrationProduct.setInvoiceNum(invoiceNum); - invoiceRegistrationProduct.setInvoiceAmount(productDto.getInvoiceAmount()); + invoiceRegistrationProduct.setInvoiceAmount(productDto.getInvoiceTotal()); invoiceRegistrationProduct.setNoInvoiceNum(currentNoInvoiceNum); invoiceRegistrationProduct.setNoInvoiceAmount(currentNoInvoiceAmount); invoiceRegistrationProductMapper.updateById(invoiceRegistrationProduct); @@ -341,13 +341,39 @@ if(!CollectionUtils.isEmpty(receiptPaymentList)){ throw new RuntimeException("璇峰厛鍒犻櫎鍥炴璁板綍"); } - // 鍒ゆ柇鏄惁鏈夊紑绁ㄥ彴璐� + // 鍒ゆ柇鏄惁鏈夊紑绁ㄧ櫥璁拌褰� InvoiceRegistrationProduct invoiceRegistrationProduct = invoiceRegistrationProductMapper.selectById(invoiceRegistrationProductId); if(ObjectUtils.isEmpty(invoiceRegistrationProduct)){ - throw new RuntimeException("寮�绁ㄥ彴璐︽煡鎵惧け璐�"); + throw new RuntimeException("寮�绁ㄧ櫥璁拌褰曟煡鎵惧け璐�"); } // 鍒ゆ柇璇ュ紑绁ㄥ彴璐︽槸鍚︽湭褰撴湀锛屽鏋滀负褰撴湀鐩存帴鍒犻櫎鍚﹀垯鏂板涓�鏉$浉鍙嶈礋鏁版暟鎹� + QueryWrapper<InvoiceLedger> ledgerQueryWrapper = new QueryWrapper<>(); + ledgerQueryWrapper.eq("invoice_registration_product_id", invoiceRegistrationProductId); + InvoiceLedger invoiceLedger = invoiceLedgerMapper.selectOne(ledgerQueryWrapper); + if(ObjectUtils.isEmpty(invoiceLedger)){ + throw new RuntimeException("寮�绁ㄥ彴璐︽煡鎵惧け璐�"); + } + if( invoiceLedger.getInvoiceDate() == null){ + dealCurrentMonthDel(invoiceRegistrationProductId,invoiceRegistrationProduct); + return; + } + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 浣跨敤YearMonth姣旇緝骞翠唤鍜屾湀浠芥槸鍚︾浉鍚� + boolean equalsFlag = YearMonth.from(invoiceLedger.getInvoiceDate()).equals(YearMonth.from(today)); + if(equalsFlag){ + dealCurrentMonthDel(invoiceRegistrationProductId,invoiceRegistrationProduct); + }else { + dealOtherMonthDel(invoiceRegistrationProduct,invoiceLedger); + } + } + /** + * 澶勭悊褰撴湀寮�绁ㄥ彴璐﹀垹闄� + * @param invoiceRegistrationProductId + * @param invoiceRegistrationProduct + */ + private void dealCurrentMonthDel(Integer invoiceRegistrationProductId,InvoiceRegistrationProduct invoiceRegistrationProduct){ // 鍒犻櫎寮�绁ㄥ彴璐� QueryWrapper<InvoiceLedger> delMapper = new QueryWrapper<>(); delMapper.eq("invoice_registration_product_id", invoiceRegistrationProductId); @@ -394,4 +420,52 @@ } salesLedgerProductMapper.updateById(salesLedgerProduct); } + + /** + * 澶勭悊鍏朵粬鏈堜唤寮�绁ㄥ彴璐﹀垹闄� + * @param invoiceRegistrationProduct + * @param invoiceLedger + */ + private void dealOtherMonthDel(InvoiceRegistrationProduct invoiceRegistrationProduct,InvoiceLedger invoiceLedger ){ + InvoiceRegistrationProduct copyRegProduct = new InvoiceRegistrationProduct(); + BeanUtils.copyProperties(invoiceRegistrationProduct, copyRegProduct); + BigDecimal invoiceNum = copyRegProduct.getInvoiceNum().negate(); + BigDecimal invoiceAmount = copyRegProduct.getInvoiceAmount().negate(); + // invoice_registration_product + // 鍒犻櫎寮�绁ㄧ櫥璁板苟鍥炴粴 + QueryWrapper<InvoiceRegistrationProduct> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("sales_ledger_id", invoiceRegistrationProduct.getSalesLedgerId()); + queryWrapper.eq("sales_ledger_product_id", invoiceRegistrationProduct.getSalesLedgerProductId()); + queryWrapper.orderByAsc("create_time"); + List<InvoiceRegistrationProduct> invoiceRegistrationProductList = invoiceRegistrationProductMapper.selectList(queryWrapper); + InvoiceRegistrationProduct lastInvoiceRegistrationProduct = invoiceRegistrationProductList.get(invoiceRegistrationProductList.size() - 1); + BigDecimal noInvoiceNum = lastInvoiceRegistrationProduct.getNoInvoiceNum().subtract(invoiceNum); + BigDecimal noInvoiceAmount = lastInvoiceRegistrationProduct.getNoInvoiceAmount().subtract(invoiceAmount); + copyRegProduct.setInvoiceNum(invoiceNum); + copyRegProduct.setInvoiceAmount(invoiceAmount); + copyRegProduct.setNoInvoiceNum(noInvoiceNum); + copyRegProduct.setNoInvoiceAmount(noInvoiceAmount); + copyRegProduct.setId(null); + invoiceRegistrationProductMapper.insert(copyRegProduct); + // 澶嶅埗寮�绁ㄥ彴璐� + InvoiceLedger invoiceLedgerCopy = new InvoiceLedger(); + BeanUtils.copyProperties(invoiceLedger, invoiceLedgerCopy); + invoiceLedgerCopy.setInvoiceRegistrationProductId(copyRegProduct.getId()); + BigDecimal invoiceTotal = invoiceLedgerCopy.getInvoiceTotal().negate(); + invoiceLedgerCopy.setInvoiceTotal(invoiceTotal); + invoiceLedgerCopy.setId(null); + invoiceLedgerCopy.setInvoiceDate(LocalDate.now()); + invoiceLedgerMapper.insert(invoiceLedgerCopy); + // 鏇存柊sales_leger_product + QueryWrapper<SalesLedgerProduct> salesLedgerProductQueryWrapper = new QueryWrapper<>(); + salesLedgerProductQueryWrapper.eq("id", invoiceRegistrationProduct.getSalesLedgerProductId()); + SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectOne(salesLedgerProductQueryWrapper); + salesLedgerProduct.setNoInvoiceNum(noInvoiceNum); + salesLedgerProduct.setNoInvoiceAmount(noInvoiceAmount); + BigDecimal newInvoiceNum = salesLedgerProduct.getInvoiceNum().add(invoiceNum); + BigDecimal newInvocieAmount = salesLedgerProduct.getInvoiceAmount().add(invoiceAmount); + salesLedgerProduct.setInvoiceNum(newInvoiceNum); + salesLedgerProduct.setInvoiceAmount(newInvocieAmount); + salesLedgerProductMapper.updateById(salesLedgerProduct); + } } -- Gitblit v1.9.3