From 18891c60ab1c06a4acc85d0ec54dee50d1b1a19f Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 07 四月 2025 17:20:07 +0800 Subject: [PATCH] bug修改 --- finance-system/src/main/resources/mapper/system/TbScoreMapper.xml | 85 +++++++++++++++++++++++++++++------------- 1 files changed, 58 insertions(+), 27 deletions(-) diff --git a/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml b/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml index 60c0875..f2334d7 100644 --- a/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml +++ b/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml @@ -33,7 +33,7 @@ <if test="query.typeName !=null and query.typeName!=''"> AND tbdc.type_name like Concat('%',#{query.typeName},'%') </if> - <if test="query.typeName !=null and query.typeName!=''"> + <if test="query.type !=null and query.type!=''"> AND tbdc.calculate_type = #{query.type} </if> @@ -50,6 +50,7 @@ LEFT JOIN sys_user su ON tbd.dept_area_code = su.area_code <where> ts.basic_data_config_id = #{query.id} AND su.area_name IS NOT NULL + AND tbd.quarter = #{query.previousQuarter} <if test="query.areaName != null and query.areaName != ''"> AND su.area_name LIKE CONCAT('%',#{query.areaName},'%') </if> @@ -59,22 +60,24 @@ </select> <select id="queryRankAndScoreByAreaCode" resultType="com.finance.system.vo.ScoreRankVO"> - SET @rank = 0; - SELECT dept_area_code AS areaCode, - COALESCE(score, 0) AS score, - `rank` - FROM (SELECT tbc.dept_area_code, - SUM(ts.score) AS score, - (@rank := @rank + 1) AS `rank` - FROM tb_score ts - LEFT JOIN tb_basic_data tbc ON ts.basic_data_id = tbc.id - LEFT JOIN tb_basic_data_config tbdc ON ts.basic_data_config_id = tbdc.id - WHERE YEAR(tbc.reporting_time) = YEAR( - CURDATE()) - GROUP BY tbc.dept_area_code - ORDER BY score - DESC) AS ranked_data - WHERE dept_area_code = #{areaCode} + SELECT tbc.dept_area_code AS areaCode, + ROUND(SUM(ts.score), 2) AS score + FROM tb_score ts + LEFT JOIN tb_basic_data tbc ON ts.basic_data_id = tbc.id + LEFT JOIN tb_basic_data_config tbdc ON ts.basic_data_config_id = tbdc.id + LEFT JOIN sys_user su ON tbc.dept_area_code = su.area_code + <where> + tbc.quarter = #{previousQuarter} + AND su.user_id in (SELECT user_id + FROM sys_user + WHERE user_type = 2 + AND area_level in (1,2,3,4) + ) + </where> + + GROUP BY tbc.dept_area_code + ORDER BY score DESC + </select> <select id="deptCalculateDetail" resultType="com.finance.system.vo.DeptCalculateDetailVO"> SELECT bdc.id, @@ -111,7 +114,17 @@ <if test="query.areaCode != null and query.areaCode != ''"> AND su.area_code=#{query.areaCode} </if> + <if test="query.previousQuarter != null and query.previousQuarter != ''"> + AND tbd.quarter=#{query.previousQuarter} + </if> + group by su.area_code </where> + <if test="query.sort == 1"> + ORDER BY ts.score ASC + </if> + <if test="query.sort == 2"> + ORDER BY ts.score DESC + </if> </select> <select id="getCurrentScoreList" resultType="com.finance.system.vo.RiskMapVO"> SELECT SUM(ts.score) score, @@ -122,7 +135,7 @@ LEFT JOIN tb_basic_data tbd ON ts.basic_data_id = tbd.id LEFT JOIN sys_user su ON tbd.dept_area_code = su.area_code <where> - tbd.`quarter` = #{nowQuarter} + tbd.`quarter` = #{nowQuarter} AND su.area_level != 0 <if test="areaCode != null and areaCode != ''"> AND tbd.dept_area_code = #{areaCode} </if> @@ -138,10 +151,10 @@ LEFT JOIN sys_user su ON su.area_code = tbd.dept_area_code <where> AND tbd.quarter = #{nowQuarter} - AND su.area_level = '${@com.finance.common.enums.AreaLevelEnum@COUNTY.getCode()}' + # AND su.area_level = '${@com.finance.common.enums.AreaLevelEnum@COUNTY.getCode()}' </where> GROUP BY tbd.id) rs - ORDER BY rs.score DESC + ORDER BY rs.score ASC </select> <select id="getScoreByYearType" resultType="com.finance.system.vo.RiskMapVO"> SELECT * @@ -150,16 +163,34 @@ LEFT JOIN tb_basic_data tbd ON tbd.id = ts.basic_data_id LEFT JOIN sys_user su ON su.area_code = tbd.dept_area_code <where> - tbd.dept_area_code = #{areaCode} - <if test="yearType!=null and yearType==1"> - AND YEAR(tbd.reporting_time) = YEAR(CURDATE()) - </if> - <if test="yearType!=null and yearType==2"> - AND YEAR(tbd.reporting_time) = YEAR(CURDATE())-1 - </if> + tbd.dept_area_code = #{areaCode} AND tbd.quarter = #{quarter} </where> GROUP BY tbd.id) rs ORDER BY rs.score DESC </select> + <select id="getCityAverageScore" resultType="java.lang.Double"> + SELECT IFNULL(ROUND(SUM(res.score), 2), 0) AS total_score + FROM (SELECT SUM(ts.score) / COUNT(DISTINCT ts.basic_data_id) AS score + FROM tb_score ts + JOIN tb_basic_data tbd ON tbd.id = ts.basic_data_id + WHERE tbd.quarter = #{previousQuarter} + AND ( + tbd.dept_area_code LIKE CONCAT(#{areaCode}, '%') + OR ( + #{areaCode} = '5101' + AND tbd.dept_area_code IN ('510008', '510015', '510017', '510025') + ) + ) + GROUP BY ts.basic_data_config_id) AS res + + </select> + <select id="getCountyScoreList" resultType="java.lang.Double"> + SELECT IFNULL(ROUND(SUM(ts.score), 2), 0) AS score + FROM tb_score ts + JOIN tb_basic_data tbd ON tbd.id = ts.basic_data_id + WHERE tbd.quarter = #{previousQuarter} + AND tbd.dept_area_code LIKE CONCAT(#{areaCode}, '%') + GROUP BY ts.basic_data_id + </select> </mapper> -- Gitblit v1.7.1