mitao
2024-07-24 4b5624af301dfbdcf54b65dc55aadde1b6a8efd5
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,26 @@
  </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 YEAR(tbc.reporting_time) = YEAR(
      CURDATE())
      AND su.user_id in (SELECT user_id
      FROM sys_user
      WHERE area_code LIKE CONCAT(SUBSTRING(#{areaCode}, 0, 4), '%')
      AND user_type = 2
      AND area_level = 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 +116,10 @@
      <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=#{previousQuarter}
      </if>
      group by su.area_code
    </where>
  </select>
  <select id="getCurrentScoreList" resultType="com.finance.system.vo.RiskMapVO">
@@ -122,7 +131,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>
@@ -141,7 +150,7 @@
      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,13 +159,7 @@
    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