mitao
2024-04-17 d68c61517a3a6d4ec4d47844c21bdc143f99cbab
ruoyi-system/src/main/resources/mapper/system/TbDataScreenScoreMapper.xml
@@ -18,5 +18,92 @@
  <sql id="Base_Column_List">
    id, dept_area_code, basic_data_id, data_screen_config_id, score, score_rate, create_time
  </sql>
  <select id="queryScore4Map" resultType="com.ruoyi.system.vo.RiskMapVO">
    SELECT tdss.score, su.area_code, su.area_name
    FROM tb_data_screen_score tdss
           LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
           LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
           LEFT JOIN sys_user su ON su.area_code = tbd.dept_area_code
    WHERE 1 = 1
      AND tbd.quarter = #{nowQuarter}
      AND tbsc.id = #{dataScreenConfigId}
  </select>
  <select id="queryRiskRanking" resultType="com.ruoyi.system.vo.RiskRankingVO">
    SELECT tdss.score, su.area_code, su.area_name
    FROM tb_data_screen_score tdss
           LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
           LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
           LEFT JOIN sys_user su ON su.area_code = tbd.dept_area_code
    WHERE 1 = 1
      AND tbd.quarter = #{nowQuarter}
      AND tbsc.id = #{dataScreenConfigId}
      AND su.area_level LIKE '县'
    ORDER BY tdss.score DESC
  </select>
  <select id="selectRiskByQuarter" resultType="com.ruoyi.system.domain.TbDataScreenScore">
    SELECT tdss.*
    FROM tb_data_screen_score tdss
    LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
    LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
    WHERE 1 = 1
    AND tbd.quarter = #{nowQuarter}
    AND tbsc.id = #{dataScreenConfigId}
    <if test="areaCode !=null and areaCode !=''">
      AND tbd.dept_area_code = #{areaCode}
    </if>
  </select>
  <select id="queryScoreByAreaAndYear"
    resultType="com.ruoyi.system.vo.DataScreenScoreVO">
    SELECT tdss.*,tbsc.sub_type
    FROM tb_data_screen_score tdss
    LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
    LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
    WHERE 1 = 1
    AND tbd.dept_area_code = #{areaCode}
    AND tbsc.id = #{dataScreenConfigId}
    <if test="yearType==1">
      AND YEAR(tbd.reporting_time) = YEAR(CURDATE())
    </if>
    <if test="yearType==2">
      AND YEAR(tbd.reporting_time) = YEAR(CURDATE())-1
    </if>
  </select>
  <select id="selectIndicators"
    resultType="com.ruoyi.system.vo.DataScreenScoreVO">
    SELECT tdss.*,tbsc.sub_type,tbsc.max_score
    FROM tb_data_screen_score tdss
    LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
    LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
    WHERE 1 = 1
    AND tbd.dept_area_code = #{areaCode}
    AND tbsc.type = #{dataScreenConfigEnum}
    <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>
    <if test="nowQuarter!=null and nowQuarter != ''">
      AND tbd.quarter = #{nowQuarter}
    </if>
  </select>
  <select id="getRankByScore" resultType="java.lang.Integer">
    SET @rank = 0;
    SELECT `rank`,
           score,
           dept_area_code
    FROM (SELECT tdss.score, tdss.dept_area_code, (@rank := @rank + 1) AS `rank`
          FROM tb_data_screen_score tdss
                 LEFT JOIN tb_data_screen_config tbsc ON tbsc.id = tdss.data_screen_config_id
                 LEFT JOIN tb_basic_data tbd ON tbd.id = tdss.basic_data_id
          WHERE 1 = 1
            AND tbsc.type = #{dataScreenConfigEnum}
            AND tbsc.sub_type = #{subType}
            AND tbd.quarter = #{nowQuarter}
          ORDER BY tdss.score DESC) AS rank_data
    WHERE dept_area_code = #{areaCode}
      AND score = #{score}
  </select>
</mapper>