From 6ed42390d7231b0d26700898ee2922732043effa Mon Sep 17 00:00:00 2001 From: liyong <18434998025@163.com> Date: 星期四, 19 六月 2025 16:20:34 +0800 Subject: [PATCH] 2025-06-19 增值税对比 + 问题修改 --- src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java | 1 src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml | 2 src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 1 src/main/java/com/ruoyi/purchase/dto/VatDto.java | 9 + src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java | 3 src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java | 10 + src/main/resources/mapper/purchase/ProductRecordMapper.xml | 4 src/main/resources/mapper/sales/ReceiptPaymentMapper.xml | 123 +++++++++++++------- src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java | 6 + src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java | 2 src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java | 2 src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java | 8 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 7 src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java | 2 src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java | 4 src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml | 117 ++++++++++++++++++- src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml | 2 17 files changed, 230 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java index 08733c7..5f62c97 100644 --- a/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java +++ b/src/main/java/com/ruoyi/purchase/controller/AccountingReportController.java @@ -5,8 +5,8 @@ import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.AjaxResult; -import com.ruoyi.purchase.dto.InvoicePurchaseDto; import com.ruoyi.purchase.dto.InvoicePurchaseReportDto; +import com.ruoyi.purchase.dto.VatDto; import com.ruoyi.purchase.pojo.InvoicePurchase; import com.ruoyi.purchase.service.IInvoicePurchaseService; import io.swagger.annotations.Api; @@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import java.util.List; @RestController @Api(tags = "閲囪喘鎶ヨ〃") @@ -34,8 +36,8 @@ @Log(title = "閲囪喘鎶ヨ〃-澧炲�肩◣姣斿", businessType = BusinessType.OTHER) @GetMapping("/listVat") - public AjaxResult listVat(Page page, InvoicePurchase invoicePurchase) { - IPage<InvoicePurchase> result = invoicePurchaseService.listVat(page, invoicePurchase); + public AjaxResult listVat(Page page,String month) { + IPage<VatDto> result = invoicePurchaseService.listVat(page, month); return AjaxResult.success(result); } } diff --git a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java b/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java index 62978e3..ddd681b 100644 --- a/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java +++ b/src/main/java/com/ruoyi/purchase/dto/TicketRegistrationDto.java @@ -70,6 +70,5 @@ @TableField(exist = false) private String createdAtStart; @TableField(exist = false) - private String createdAtEnd; } diff --git a/src/main/java/com/ruoyi/purchase/dto/VatDto.java b/src/main/java/com/ruoyi/purchase/dto/VatDto.java index 4ad3dc1..8eb273a 100644 --- a/src/main/java/com/ruoyi/purchase/dto/VatDto.java +++ b/src/main/java/com/ruoyi/purchase/dto/VatDto.java @@ -2,18 +2,21 @@ import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDate; @Data public class VatDto { //鏈堜唤 - private LocalDate month ; + private String month ; //杩涢」绋� - private String jTaxAmount; + private BigDecimal jTaxAmount; //閿�椤圭◣ - private String xTaxAmount; + private BigDecimal xTaxAmount; + + private BigDecimal taxAmount; } diff --git a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java index c80c41a..b1dc03c 100644 --- a/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java +++ b/src/main/java/com/ruoyi/purchase/mapper/InvoicePurchaseMapper.java @@ -22,5 +22,7 @@ IPage<InvoicePurchaseReportDto> selectPurchaseReport(IPage page, @Param("c") InvoicePurchaseReportDto invoicePurchaseReportDto); - List<VatDto> listVat(Page page, InvoicePurchase invoicePurchase); + IPage<VatDto> listVat(Page page,@Param("month") String month); + + List<VatDto> listVat1(); } diff --git a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java index 7e7a074..cc17fc2 100644 --- a/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java +++ b/src/main/java/com/ruoyi/purchase/service/IInvoicePurchaseService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.purchase.dto.InvoicePurchaseDto; import com.ruoyi.purchase.dto.InvoicePurchaseReportDto; +import com.ruoyi.purchase.dto.VatDto; import com.ruoyi.purchase.pojo.InvoicePurchase; import java.io.IOException; @@ -30,5 +31,5 @@ IPage<InvoicePurchaseReportDto> listPurchaseReport(Page page, InvoicePurchaseReportDto invoicePurchaseReportDto); - IPage<InvoicePurchase> listVat(Page page, InvoicePurchase invoicePurchase); + IPage<VatDto> listVat(Page page,String month); } diff --git a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java index 6d4728d..cc8bb73 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/InvoicePurchaseServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.project.system.mapper.SysUserMapper; import com.ruoyi.purchase.dto.InvoicePurchaseDto; import com.ruoyi.purchase.dto.InvoicePurchaseReportDto; +import com.ruoyi.purchase.dto.VatDto; import com.ruoyi.purchase.mapper.InvoicePurchaseMapper; import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; import com.ruoyi.purchase.pojo.InvoicePurchase; @@ -169,8 +170,11 @@ } @Override - public IPage<InvoicePurchase> listVat(Page page, InvoicePurchase invoicePurchase) { - invoicePurchaseMapper.listVat(page, invoicePurchase); - return null; + public IPage<VatDto> listVat(Page page, String month) { + IPage<VatDto> vatDtos = invoicePurchaseMapper.listVat(page,month); + vatDtos.getRecords().forEach(vatDto -> { + vatDto.setTaxAmount(vatDto.getJTaxAmount().subtract(vatDto.getXTaxAmount())); + }); + return vatDtos; } } 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 9cab585..cbc5b53 100644 --- a/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java +++ b/src/main/java/com/ruoyi/purchase/service/impl/PaymentRegistrationServiceImpl.java @@ -397,7 +397,7 @@ 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); } diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java index 7b478d1..3f78018 100644 --- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java +++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java @@ -161,4 +161,10 @@ @ApiModelProperty(value = "涓存椂鏈潵绁ㄩ噾棰�") @TableField(exist = false) private BigDecimal tempFutureTicketsAmount; + + @ApiModelProperty("鐧昏浜�") + private String register; + + @ApiModelProperty("鐧昏鏃ユ湡") + private String registerDate; } 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 f8bbc22..c7ecbe9 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceLedgerServiceImpl.java @@ -304,7 +304,7 @@ public IPage<InvoiceRegistrationProductDto> registrationProductPage(Page page, InvoiceRegistrationProductDto registrationProductDto) { IPage<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoIPage = invoiceRegistrationProductMapper.invoiceRegistrationProductPage(page, registrationProductDto); if (registrationProductDto.getStatus()) { - invoiceRegistrationProductDtoIPage.getRecords().removeIf(invoiceRegistrationProduct -> StringUtils.isEmpty(invoiceRegistrationProduct.getInvoiceNo())); + invoiceRegistrationProductDtoIPage.getRecords().removeIf(invoiceRegistrationProduct -> !StringUtils.isEmpty(invoiceRegistrationProduct.getInvoiceNo())); } return invoiceRegistrationProductDtoIPage; } 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 a42850d..bb576cc 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java @@ -75,6 +75,7 @@ invoiceRegistrationProduct.setInvoiceAmount(productDatum.getCurrentInvoiceAmount()); invoiceRegistrationProduct.setInvoiceNum(productDatum.getCurrentInvoiceNum()); invoiceRegistrationProduct.setSalesLedgerProductId(productDatum.getId().intValue()); + invoiceRegistrationProductMapper.insert(invoiceRegistrationProduct); salesLedgerProductMapper.updateById(productDatum); // 鏂板涓�鏉″紑绁ㄥ彴璐︽暟鎹� diff --git a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java index e6f459a..f65d7ce 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/ReceiptPaymentServiceImpl.java @@ -239,7 +239,7 @@ customerInteractionDto.setHappenTime(localDate); customerInteractionDto.setInvoiceAmount(invoiceAmount); customerInteractionDto.setReceiptAmount(currentReceiptAmount); - amountTotal = amountTotal.add(currentDateTotal); + amountTotal = customerInteractionDto.getInvoiceAmount().subtract(customerInteractionDto.getReceiptAmount()); customerInteractionDto.setUnReceiptAmount(amountTotal); result.add(customerInteractionDto); } diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java index 6a2536e..a85755e 100644 --- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java +++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java @@ -91,6 +91,7 @@ return salesLedgerMapper.selectSalesLedgerList(salesLedgerDto); } + @Override public SalesLedgerDto getSalesLedgerWithProducts(SalesLedgerDto salesLedgerDto) { // 1. 鏌ヨ涓昏〃 SalesLedger salesLedger = salesLedgerMapper.selectById(salesLedgerDto.getId()); @@ -107,6 +108,8 @@ // 鎻愪緵涓存椂鏈紑绁ㄦ暟锛屾湭寮�绁ㄩ噾棰濅緵鍓嶆璁$畻 product.setTempnoInvoiceAmount(product.getNoInvoiceAmount()); product.setTempNoInvoiceNum(product.getNoInvoiceNum()); + product.setRegister(SecurityUtils.getLoginUser().getUser().getNickName()); + product.setRegisterDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); } // 3.鏌ヨ涓婁紶鏂囦欢 @@ -505,10 +508,10 @@ // 2. 鏌ヨ褰撳ぉ/鍏徃宸插瓨鍦ㄧ殑搴忓垪鍙凤紙涓庡師閫昏緫涓�鑷达級 Long tenantId = SecurityUtils.getLoginUser().getTenantId(); - if(null != tenantId){ + if (null != tenantId) { //鑾峰彇鍏徃缂栧彿 SysDept sysDept = sysDeptMapper.selectDeptById(tenantId.longValue()); - if(!ObjectUtils.isEmpty(sysDept)){ + if (!ObjectUtils.isEmpty(sysDept)) { datePart = (StringUtils.isEmpty(sysDept.getDeptNick()) ? "" : sysDept.getDeptNick()) + datePart; } } diff --git a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml index 5d3b24c..fe0b44c 100644 --- a/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml +++ b/src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml @@ -30,15 +30,114 @@ </where> </select> <select id="listVat" resultType="com.ruoyi.purchase.dto.VatDto"> - SELECT - DATE_FORMAT(il.invoice_date, '%Y-%m') AS month, - ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount - FROM invoice_ledger il - LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id - WHERE il.invoice_no IS NOT NULL - AND invoice_type = '澧炰笓绁�' - GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m') - ORDER BY month; + select * + from (SELECT + COALESCE(a1.month, a2.month) AS month, + IFNULL(a1.tax_amount, 0) AS j_tax_amount, + IFNULL(a2.x_tax_amount, 0) AS x_tax_amount + FROM ( + -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰� + SELECT + DATE_FORMAT(il.invoice_date, '%Y-%m') AS month, + ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount + FROM invoice_ledger il + LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id + WHERE il.invoice_no IS NOT NULL + AND invoice_type = '澧炰笓绁�' + GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m') + ) a1 + LEFT JOIN ( + -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰� + SELECT + DATE_FORMAT(a.issue_date, '%Y-%m') AS month, + SUM(a.invoice_amount) AS x_tax_amount + FROM ( + SELECT DISTINCT pr.id, + tr.issue_date, + ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price, + ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount + FROM product_record pr + LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id + LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id + LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id + LEFT JOIN product_model pm ON pm.id = pr.product_model_id + WHERE type = 2 + AND tr.invoice_number IS NOT NULL + ) a + GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m') + ) a2 ON a1.month = a2.month + + UNION ALL + + SELECT + COALESCE(a1.month, a2.month) AS month, + IFNULL(a1.tax_amount, 0) AS tax_amount, + IFNULL(a2.x_tax_amount, 0) AS x_tax_amount + FROM ( + -- 绗簩涓煡璇細鏉ヨ嚜 ticket_registration 鐨勭◣棰濓紙鍙嶈繃鏉ヨˉ鍏ㄦ病鏈夊尮閰嶅埌鐨勶級 + SELECT + DATE_FORMAT(a.issue_date, '%Y-%m') AS month, + SUM(a.invoice_amount) AS x_tax_amount + FROM ( + SELECT DISTINCT pr.id, + tr.issue_date, + ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price, + ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS invoice_amount + FROM product_record pr + LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id + LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id + LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id + LEFT JOIN product_model pm ON pm.id = pr.product_model_id + WHERE type = 2 + AND tr.invoice_number IS NOT NULL + ) a + GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m') + ) a2 + LEFT JOIN ( + -- 绗竴涓煡璇細鏉ヨ嚜 invoice_ledger 鐨勭◣棰� + SELECT + DATE_FORMAT(il.invoice_date, '%Y-%m') AS month, + ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount + FROM invoice_ledger il + LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id + WHERE il.invoice_no IS NOT NULL + AND invoice_type = '澧炰笓绁�' + GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m') + ) a1 ON a1.month = a2.month + WHERE a1.month IS NULL + ORDER BY month + )as a + <where> + <if test="month != null"> + and a.month = date_format(#{month}) + </if> + </where> + + </select> + <select id="listVat1" resultType="com.ruoyi.purchase.dto.VatDto"> + # SELECT +# DATE_FORMAT(il.invoice_date, '%Y-%m') AS month, +# ROUND(SUM(pr.invoice_amount - pr.invoice_amount / (1 + pr.tax_rate / 100)), 2) AS tax_amount +# FROM invoice_ledger il +# LEFT JOIN invoice_registration_product pr ON pr.id = il.invoice_registration_product_id +# WHERE il.invoice_no IS NOT NULL +# AND invoice_type = '澧炰笓绁�' +# GROUP BY DATE_FORMAT(il.invoice_date, '%Y-%m') +# ORDER BY month; +# select DATE_FORMAT(a.issue_date, '%Y-%m'), sum(a.invoice_amount) as xTaxAmount +# from (SELECT distinct pr.id, +# tr.issue_date, +# ROUND(pr.tickets_amount / (1 + pr.tax_rate / 100), 2) AS un_tickets_price, +# ROUND(pr.tickets_amount - pr.tickets_amount / (1 + pr.tax_rate / 100), +# 2) AS invoice_amount +# FROM product_record pr +# LEFT JOIN purchase_ledger pl ON pl.id = pr.purchase_ledger_id +# LEFT JOIN sales_ledger sl ON sl.id = pl.sales_ledger_id +# LEFT JOIN ticket_registration tr ON tr.purchase_ledger_id = pl.id +# LEFT JOIN product_model pm ON pm.id = pr.product_model_id +# WHERE type = 2 +# and tr.invoice_number is not null) a +# GROUP BY DATE_FORMAT(a.issue_date, '%Y-%m') </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml index 33a04be..d245389 100644 --- a/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml +++ b/src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml @@ -171,7 +171,7 @@ AND T1.payment_date >= date_format(#{params.paymentDateStart},'%Y-%m-%d') </if> <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' "> - AND T1.payment_date < date_format(#{params.paymentDateEnd},'%Y-%m-%d') + AND T1.payment_date <= date_format(#{params.paymentDateEnd},'%Y-%m-%d') </if> </where> ORDER BY T1.payment_date,T1.create_time DESC diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml index c42e777..80133ac 100644 --- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml +++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml @@ -32,10 +32,10 @@ and sl.supplier_name = #{c.supplierName} </if> <if test="c.createdAtStart != null and c.createdAtStart != ''"> - and pr.created_at >= date_format(#{c.createdAtStart},'%Y-%m-%d') + and pr.created_at >= date_format(#{c.createdAtStart},'%Y-%m-%d hh:mm:ss') </if> <if test="c.createdAtEnd != null and c.createdAtEnd != ''"> - and pr.created_at < date_format(#{c.createdAtEnd},'%Y-%m-%d') + and pr.created_at <= date_format(#{c.createdAtEnd},'%Y-%m-%d hh:mm:ss') </if> </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml index 5222d6e..ad56ec9 100644 --- a/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml +++ b/src/main/resources/mapper/sales/InvoiceRegistrationProductMapper.xml @@ -111,7 +111,7 @@ AND T3.invoice_date >= date_format(#{invoiceRegistrationProductDto.invoiceDateStart}, '%Y-%m-%d') </if> <if test="invoiceRegistrationProductDto.invoiceDateEnd != null and invoiceRegistrationProductDto.invoiceDateEnd != ''"> - AND T3.invoice_date < date_format(#{invoiceRegistrationProductDto.invoiceDateEnd}, '%Y-%m-%d') + AND T3.invoice_date <= date_format(#{invoiceRegistrationProductDto.invoiceDateEnd}, '%Y-%m-%d') </if> </where> ORDER BY T1.create_time DESC diff --git a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml index b7ae6a2..ea21141 100644 --- a/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml +++ b/src/main/resources/mapper/sales/ReceiptPaymentMapper.xml @@ -190,57 +190,94 @@ AND T1.receipt_payment_date >= date_format(#{params.receiptPaymentDateStart},'%Y-%m-%d') </if> <if test="params.receiptPaymentDateEnd != null and params.receiptPaymentDateEnd != '' "> - AND T1.receipt_payment_date < date_format(#{params.receiptPaymentDateEnd}, '%Y-%m-%d') + AND T1.receipt_payment_date <= date_format(#{params.receiptPaymentDateEnd}, '%Y-%m-%d') </if> </where> ORDER BY T1.receipt_payment_date DESC </select> + + + +<!-- SELECT--> +<!-- *--> +<!-- FROM--> +<!-- (--> +<!-- SELECT--> +<!-- receipt_payment_amount AS receiptAmount,--> +<!-- receipt_payment_date AS happenTime,--> +<!-- 0 AS type,--> +<!-- 0 AS invoiceAmount--> +<!-- FROM--> +<!-- receipt_payment--> +<!-- WHERE--> +<!-- invoice_ledger_id IN (--> +<!-- SELECT--> +<!-- id--> +<!-- FROM--> +<!-- invoice_ledger--> +<!-- WHERE--> +<!-- invoice_registration_product_id IN (--> +<!-- SELECT--> +<!-- id--> +<!-- FROM--> +<!-- invoice_registration_product--> +<!-- WHERE--> +<!-- sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))) UNION--> +<!-- SELECT--> +<!-- 0 AS receiptAmount,--> +<!-- invoice_date AS happenTime,--> +<!-- 1 AS type,--> +<!-- invoice_total AS invoiceAmount--> +<!-- FROM--> +<!-- invoice_ledger--> +<!-- WHERE--> +<!-- invoice_registration_product_id IN (--> +<!-- SELECT--> +<!-- id--> +<!-- FROM--> +<!-- invoice_registration_product--> +<!-- WHERE--> +<!-- sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))--> +<!-- AND invoice_date IS NOT NULL--> +<!-- ) T1--> +<!-- ORDER BY--> +<!-- T1.happenTime ASC--> + + <select id="customerInteractions" resultType="com.ruoyi.sales.dto.CustomerInteractionDto"> SELECT - * + rp.receipt_payment_amount AS receiptAmount, + rp.receipt_payment_date AS happenTime, + 0 AS type, + 0 AS invoiceAmount FROM - ( - SELECT - receipt_payment_amount AS receiptAmount, - receipt_payment_date AS happenTime, - 0 AS type, - 0 AS invoiceAmount - FROM - receipt_payment - WHERE - invoice_ledger_id IN ( - SELECT - id - FROM - invoice_ledger - WHERE - invoice_registration_product_id IN ( - SELECT - id - FROM - invoice_registration_product - WHERE - sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} ))) UNION - SELECT - 0 AS receiptAmount, - invoice_date AS happenTime, - 1 AS type, - invoice_total AS invoiceAmount - FROM - invoice_ledger - WHERE - invoice_registration_product_id IN ( - SELECT - id - FROM - invoice_registration_product - WHERE - sales_ledger_id IN ( SELECT id FROM sales_ledger WHERE customer_id = #{customerId} )) - AND invoice_date IS NOT NULL - ) T1 - ORDER BY - T1.happenTime ASC + receipt_payment rp + WHERE EXISTS ( + SELECT 1 + FROM invoice_ledger il + JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id + JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id + WHERE sl.customer_id =22 + AND rp.invoice_ledger_id = il.id + ) + + UNION ALL + + SELECT + 0 AS receiptAmount, + il.invoice_date AS happenTime, + 1 AS type, + il.invoice_total AS invoiceAmount + FROM + invoice_ledger il + JOIN invoice_registration_product irp ON il.invoice_registration_product_id = irp.id + JOIN sales_ledger sl ON irp.sales_ledger_id = sl.id + WHERE + sl.customer_id = 22 + AND il.invoice_date IS NOT NULL + + ORDER BY happenTime ASC; </select> <select id="receiptPaymentHistoryListNoPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto"> -- Gitblit v1.9.3