From db628292cb9b69b901b44b146ac88c5f68e38389 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 08 十月 2026 14:52:54 +0800
Subject: [PATCH] 财务管理系统模块优化
---
src/main/resources/mapper/account/AccountExpenseMapper.xml | 44 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 43 insertions(+), 1 deletions(-)
diff --git a/src/main/resources/mapper/account/AccountExpenseMapper.xml b/src/main/resources/mapper/account/AccountExpenseMapper.xml
index fff6020..4d1efd8 100644
--- a/src/main/resources/mapper/account/AccountExpenseMapper.xml
+++ b/src/main/resources/mapper/account/AccountExpenseMapper.xml
@@ -16,6 +16,9 @@
<if test="accountExpense.expenseType != null and accountExpense.expenseType != '' ">
AND expense_type = #{accountExpense.expenseType}
</if>
+ <if test="accountExpense.expenseCategory != null and accountExpense.expenseCategory != '' ">
+ AND expense_category = #{accountExpense.expenseCategory}
+ </if>
<if test="accountExpense.expenseMethod != null and accountExpense.expenseMethod != '' ">
AND expense_method = #{accountExpense.expenseMethod}
</if>
@@ -35,6 +38,9 @@
<if test="accountExpense.expenseType != null and accountExpense.expenseType != '' ">
AND expense_type = #{accountExpense.expenseType}
</if>
+ <if test="accountExpense.expenseCategory != null and accountExpense.expenseCategory != '' ">
+ AND expense_category = #{accountExpense.expenseCategory}
+ </if>
<if test="accountExpense.expenseMethod != null and accountExpense.expenseMethod != '' ">
AND expense_method = #{accountExpense.expenseMethod}
</if>
@@ -53,7 +59,7 @@
<if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' ">
AND expense_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
</if>
- group by expense_type
+ group by ae.expense_type, sdd.dict_label
</select>
<select id="report1" resultType="java.math.BigDecimal">
@@ -70,4 +76,40 @@
</if>
</select>
+ <select id="reportByCategory" resultType="java.util.Map">
+ SELECT COALESCE(sdd.dict_label, '鏈垎绫�') AS categoryName,
+ ae.expense_category AS categoryValue,
+ SUM(ae.expense_money) AS amount
+ FROM account_expense ae
+ LEFT JOIN sys_dict_data sdd ON ae.expense_category = sdd.dict_value
+ AND sdd.dict_type = 'finance_expense_category'
+ WHERE 1=1
+ <if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != ''">
+ AND ae.expense_date >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
+ </if>
+ <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != ''">
+ AND ae.expense_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
+ </if>
+ GROUP BY ae.expense_category, sdd.dict_label
+ </select>
+
+ <select id="trendByCategory" resultType="java.util.Map">
+ SELECT DATE_FORMAT(ae.expense_date, '%Y-%m') AS month,
+ ae.expense_category AS categoryValue,
+ COALESCE(sdd.dict_label, '鏈垎绫�') AS categoryName,
+ SUM(ae.expense_money) AS amount
+ FROM account_expense ae
+ LEFT JOIN sys_dict_data sdd ON ae.expense_category = sdd.dict_value
+ AND sdd.dict_type = 'finance_expense_category'
+ WHERE 1=1
+ <if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != ''">
+ AND ae.expense_date >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
+ </if>
+ <if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != ''">
+ AND ae.expense_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
+ </if>
+ GROUP BY DATE_FORMAT(ae.expense_date, '%Y-%m'), ae.expense_category, sdd.dict_label
+ ORDER BY month, ae.expense_category
+ </select>
+
</mapper>
--
Gitblit v1.9.3