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 < #{year}+1 AND pfd.end_time >= #{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 < '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 < '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 < '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 < '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 < '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 < '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 < #{year}+1 AND pfd.end_time >= #{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