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 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 97 insertions(+), 17 deletions(-) diff --git a/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml b/finance-system/src/main/resources/mapper/system/TbScoreMapper.xml index f4d2eea..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,6 +114,83 @@ <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, + su.area_code, + su.area_name, + su.area_level + FROM tb_score ts + 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} AND su.area_level != 0 + <if test="areaCode != null and areaCode != ''"> + AND tbd.dept_area_code = #{areaCode} + </if> + </where> + GROUP BY tbd.id + </select> + <select id="queryRiskRanking" resultType="com.finance.system.vo.RiskRankingVO" + parameterType="java.lang.String"> + SELECT * + FROM (SELECT SUM(ts.score) score, su.area_code, su.area_name + FROM tb_score ts + 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> + AND tbd.quarter = #{nowQuarter} + # AND su.area_level = '${@com.finance.common.enums.AreaLevelEnum@COUNTY.getCode()}' + </where> + GROUP BY tbd.id) rs + ORDER BY rs.score ASC + </select> + <select id="getScoreByYearType" resultType="com.finance.system.vo.RiskMapVO"> + SELECT * + FROM (SELECT SUM(ts.score) score, su.area_code, su.area_name + FROM tb_score ts + 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} 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