From 5bfe05fa33b82fb055806125c7bacaac688241f8 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期五, 22 八月 2025 09:54:03 +0800
Subject: [PATCH] 暂存0822

---
 java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml |   84 ++++++++++++++++-------------------------
 1 files changed, 33 insertions(+), 51 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
index 26fb689..638f854 100644
--- a/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
@@ -4,67 +4,49 @@
 <mapper namespace="reportFeeServiceDaoImpl">
     <select id="repostInFee" resultType="java.util.Map">
         SELECT
-            fee_type_cd AS 'fee_type_cd',
-            detail_year,
-            -- 褰撳勾搴旀敹娆鹃」鍚堣锛堜繚鐣�2浣嶅皬鏁帮級
-            ROUND(SUM(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN receivable_amount ELSE 0 END), 2) AS '璇ュ勾搴旂即鎬婚',
+        fee_type_cd AS 'fee_type_cd',
+        detail_year,
+        ROUND(SUM(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN receivable_amount ELSE 0 END), 2) AS '璇ュ勾搴旂即鎬婚',
+        ROUND(
+        CASE
+        WHEN SUM(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN receivable_amount ELSE 0 END) = 0 THEN 0
+        ELSE SUM(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN received_amount ELSE 0 END)
+        / SUM(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN receivable_amount ELSE 0 END) * 100
+        END, 2
+        ) AS '褰撳勾鏀剁即鐜�',
 
-            -- 褰撳勾鏀剁即鐜囷紙淇濈暀2浣嶅皬鏁帮紝鐧惧垎姣旀牸寮忥級
-            ROUND(
-                    CASE
-                        WHEN SUM(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN receivable_amount ELSE 0 END) = 0 THEN 0
-                        ELSE SUM(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN received_amount ELSE 0 END)
-                                 / SUM(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN receivable_amount ELSE 0 END) * 100
-                        END, 2
-            ) AS '褰撳勾鏀剁即鐜�',
+        ROUND(SUM(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN discount_amount ELSE 0 END), 2) AS '鎶樻墸閲戦',
 
-            -- 鎬绘姌鎵i噾棰濓紙淇濈暀2浣嶅皬鏁帮級
-            ROUND(SUM(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN discount_amount ELSE 0 END), 2) AS '鎶樻墸閲戦',
+        <foreach collection="yearList" item="year" separator=",">
+            <if test="year != endYear">  <!-- 鎺掗櫎鏈�鍚庝竴骞达紝鏈�鍚庝竴骞村崟鐙鐞嗕负鈥滃綋骞村疄缂粹�� -->
+                ROUND(SUM(CASE WHEN detail_year = ${year} THEN received_amount ELSE 0 END), 2) AS '${year}骞村疄缂�'
+            </if>
+        </foreach>,
 
-            -- 2020-2024骞村疄鏀堕噾棰濓紙淇濈暀2浣嶅皬鏁帮級
-            ROUND(SUM(CASE WHEN detail_year = 2020 THEN received_amount ELSE 0 END), 2) AS '2020骞村疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2021 THEN received_amount ELSE 0 END), 2) AS '2021骞村疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2022 THEN received_amount ELSE 0 END), 2) AS '2022骞村疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2023 THEN received_amount ELSE 0 END), 2) AS '2023骞村疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2024 THEN received_amount ELSE 0 END), 2) AS '2024骞村疄缂�',
+        ROUND(SUM(CASE WHEN detail_year = ${endYear} THEN receivable_amount ELSE 0 END), 2) AS '褰撳勾棰勭畻',
+        ROUND(SUM(CASE WHEN detail_year = ${endYear} THEN received_amount ELSE 0 END), 2) AS '${endYear}骞村疄缂�',
+        ROUND(SUM(CASE WHEN detail_year = ${endYear} THEN discount_amount ELSE 0 END), 2) AS '褰撳勾鎶樻墸鎬婚',
+        ROUND(SUM(CASE WHEN detail_year = ${endYear} THEN receivable_amount - received_amount ELSE 0 END), 2) AS '褰撳勾娆犳',
 
-            -- 2025骞村悎璁℃暟鎹紙淇濈暀2浣嶅皬鏁帮級
-            ROUND(SUM(CASE WHEN detail_year = 2025 THEN receivable_amount ELSE 0 END), 2) AS '褰撳勾棰勭畻',
-            ROUND(SUM(CASE WHEN detail_year = 2025 THEN received_amount ELSE 0 END), 2) AS '2025骞村疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 THEN discount_amount ELSE 0 END), 2) AS '褰撳勾鎶樻墸鎬婚',
-            ROUND(SUM(CASE WHEN detail_year = 2025 THEN receivable_amount - received_amount ELSE 0 END), 2) AS '褰撳勾娆犳',
+        <foreach collection="monthList" item="month" separator=",">
+            ROUND(SUM(CASE WHEN detail_year = ${endYear} AND detail_month = ${month} THEN received_amount ELSE 0 END), 2) AS '褰撳勾${month}鏈堝疄缂�'
+        </foreach>,
 
-            -- 2025骞村悇鏈堜唤瀹炴敹锛堜繚鐣�2浣嶅皬鏁帮級
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 1 THEN received_amount ELSE 0 END), 2) AS '褰撳勾1鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 2 THEN received_amount ELSE 0 END), 2) AS '褰撳勾2鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 3 THEN received_amount ELSE 0 END), 2) AS '褰撳勾3鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 4 THEN received_amount ELSE 0 END), 2) AS '褰撳勾4鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 5 THEN received_amount ELSE 0 END), 2) AS '褰撳勾5鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 6 THEN received_amount ELSE 0 END), 2) AS '褰撳勾6鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 7 THEN received_amount ELSE 0 END), 2) AS '褰撳勾7鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 8 THEN received_amount ELSE 0 END), 2) AS '褰撳勾8鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 9 THEN received_amount ELSE 0 END), 2) AS '褰撳勾9鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 10 THEN received_amount ELSE 0 END), 2) AS '褰撳勾10鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 11 THEN received_amount ELSE 0 END), 2) AS '褰撳勾11鏈堝疄缂�',
-            ROUND(SUM(CASE WHEN detail_year = 2025 AND detail_month = 12 THEN received_amount ELSE 0 END), 2) AS '褰撳勾12鏈堝疄缂�',
+        ROUND(AVG(CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN receivable_amount ELSE NULL END), 2) AS '姣忔湀璐圭敤',
+        COUNT(DISTINCT CASE WHEN detail_year BETWEEN ${startYear} AND ${endYear} THEN CONCAT(detail_year, '-', detail_month) END) AS '搴旀敹鏈堜唤鏁�',
 
-            -- 姣忔湀璐圭敤锛堜繚鐣�2浣嶅皬鏁帮級鍜屽簲鏀舵湀浠芥暟锛堟暣鏁帮紝鏃犻渶澶勭悊锛�
-            ROUND(AVG(CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN receivable_amount ELSE NULL END), 2) AS '姣忔湀璐圭敤',
-            COUNT(DISTINCT CASE WHEN detail_year BETWEEN 2020 AND 2025 THEN CONCAT(detail_year, '-', detail_month) END) AS '搴旀敹鏈堜唤鏁�',
-
-            -- 璐圭敤鎵�灞炲勾浠斤紙鍖哄垎鏅�氳鍜屾眹鎬昏锛�
-            CASE
-                WHEN detail_year IS NULL THEN '绫诲瀷鎬昏'
-                ELSE CAST(detail_year AS CHAR)
-                END AS '璐圭敤鎵�灞炲勾浠�'
+        CASE
+        WHEN detail_year IS NULL THEN '绫诲瀷鎬昏'
+        ELSE CAST(detail_year AS CHAR)
+        END AS '璐圭敤鎵�灞炲勾浠�'
 
         FROM
-            pay_fee_detail_month
+        pay_fee_detail_month
         WHERE
-            community_id = #{communityId}
-            detail_year BETWEEN 2020 AND 2025
+        community_id = #{communityId}
+        AND detail_year BETWEEN ${startYear} AND ${endYear}  <!-- 鍔ㄦ�佸勾浠借繃婊� -->
         GROUP BY
-            fee_type_cd, detail_year
+        fee_type_cd, detail_year
         WITH ROLLUP;
     </select>
     <insert id="saveReport" parameterType="Map">

--
Gitblit v1.8.0