From fa59bd5bf64f818111b26744a3b51b936ab6f389 Mon Sep 17 00:00:00 2001 From: liyong <18434998025@163.com> Date: 星期二, 01 七月 2025 09:50:00 +0800 Subject: [PATCH] 2025-07-01 bug修改 --- src/main/resources/mapper/purchase/InvoicePurchaseMapper.xml | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 108 insertions(+), 9 deletions(-) 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 -- Gitblit v1.9.3