| | |
| | | <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 '折扣金额', |
| | | |
| | | -- 总折扣金额(保留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"> |