From c7ea3633e49e501c33f668fc08fab2ffc0e3c38c Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期一, 18 八月 2025 18:10:28 +0800
Subject: [PATCH] 暂存0815

---
 java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml |  100 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 75 insertions(+), 25 deletions(-)

diff --git a/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
index 53c3e02..9aa556d 100644
--- a/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
+++ b/java110-db/src/main/resources/mapper/fee/ReportFeeServiceDaoImplMapper.xml
@@ -4,23 +4,78 @@
 <mapper namespace="reportFeeServiceDaoImpl">
     <select id="repostInFee" resultType="java.util.Map">
         SELECT
-        pfd.community_id as communityId,
-        td.name AS feeTypeName,
-        pf.fee_type_cd AS feeTypeCode,
-        <foreach collection="yearList" item="year" separator=",">
-            SUM(
-            CASE
-            WHEN pfd.start_time &lt; #{year}+1 AND pfd.end_time &gt;= #{year}
-            THEN pfd.received_amount *
-            DATEDIFF(
-            LEAST(pfd.end_time, #{year}-12-31),
-            GREATEST(pfd.start_time, #{year}-01-01)
-            ) / DATEDIFF(pfd.end_time, pfd.start_time)
-            ELSE 0
-            END
-            ) AS 'amount${year}'
-        </foreach>
-        SUM(pfd.received_amount) AS totalAmount
+        pfd.community_id,
+        td.name AS '璐圭敤绫诲瀷鍚嶇О',
+        YEAR(pfd.create_time),
+        pf.fee_type_cd AS '璐圭敤绫诲瀷缂栫爜',
+        -- 璁$畻鍚勫勾浠界殑鏀惰垂閲戦锛堟寜澶╂暟姣斾緥鍒嗛厤锛�
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2021-01-01' AND pfd.end_time >= '2020-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2020-12-31'),
+        GREATEST(pfd.start_time, '2020-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2020骞存敹璐归噾棰�(鍏�)',
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2022-01-01' AND pfd.end_time >= '2021-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2021-12-31'),
+        GREATEST(pfd.start_time, '2021-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2021骞存敹璐归噾棰�(鍏�)',
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2023-01-01' AND pfd.end_time >= '2022-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2022-12-31'),
+        GREATEST(pfd.start_time, '2022-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2022骞存敹璐归噾棰�(鍏�)',
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2024-01-01' AND pfd.end_time >= '2023-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2023-12-31'),
+        GREATEST(pfd.start_time, '2023-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2023骞存敹璐归噾棰�(鍏�)',
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2025-01-01' AND pfd.end_time >= '2024-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2024-12-31'),
+        GREATEST(pfd.start_time, '2024-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2024骞存敹璐归噾棰�(鍏�)',
+        SUM(
+        CASE
+        WHEN pfd.start_time &lt; '2026-01-01' AND pfd.end_time >= '2025-01-01'
+        THEN pfd.received_amount *
+        DATEDIFF(
+        LEAST(pfd.end_time, '2025-12-31'),
+        GREATEST(pfd.start_time, '2025-01-01')
+        ) / DATEDIFF(pfd.end_time, pfd.start_time)
+        ELSE 0
+        END
+        ) AS '2025骞存敹璐归噾棰�(鍏�)',
+        SUM(pfd.received_amount) AS '鎬绘敹璐归噾棰�(鍏�)'
         FROM
         pay_fee_detail pfd
         LEFT JOIN pay_fee pf ON pf.fee_id = pfd.fee_id
@@ -29,15 +84,10 @@
         AND td.status_cd = pf.fee_type_cd
         WHERE
         pfd.status_cd = '0' AND
-        pfd.community_id = #{params.communityId}
-        AND (
-        <foreach collection="yearList" item="year" separator="OR">
-            (pfd.start_time &lt; #{year}+1 AND pfd.end_time &gt;= #{year})
-        </foreach>
-        )
+        pfd.community_id = '2025081537770016'
         GROUP BY
-        td.name, pf.fee_type_cd, pfd.community_id
+        td.name, pf.fee_type_cd, pfd.community_id,YEAR(pfd.create_time)
         ORDER BY
-        td.name
+        td.name;
     </select>
 </mapper>

--
Gitblit v1.8.0