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