<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.finance.system.mapper.TbScoreMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.finance.system.domain.TbScore">
|
<id column="id" property="id"/>
|
<result column="basic_data_config_id" property="basicDataConfigId"/>
|
<result column="basic_data_id" property="basicDataId"/>
|
<result column="score" property="score"/>
|
<result column="del_flag" property="delFlag"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_time" property="updateTime"/>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, basic_data_config_id, basic_data_id, score, del_flag, create_by, create_time, update_by, update_time
|
</sql>
|
<select id="pageScore" resultType="com.finance.system.vo.ScoreVO">
|
SELECT
|
tbdc.type_name,
|
tbdc.calculate_type,
|
ts.score
|
FROM
|
tb_score ts
|
LEFT JOIN tb_basic_data tbd ON ts.basic_data_id = tbd.id
|
LEFT JOIN tb_basic_data_config tbdc ON ts.basic_data_config_id = tbdc.id
|
WHERE
|
1=1
|
AND tbd.id = #{query.basicDataId}
|
<if test="query.typeName !=null and query.typeName!=''">
|
AND tbdc.type_name like Concat('%',#{query.typeName},'%')
|
</if>
|
<if test="query.type !=null and query.type!=''">
|
AND tbdc.calculate_type = #{query.type}
|
</if>
|
|
</select>
|
<select id="scoreCalculateDetail" resultType="com.finance.system.vo.ScoreDetailVO">
|
SELECT
|
su.area_name,
|
su.area_code,
|
ts.score,
|
su.person_in_charge,
|
su.phone_number
|
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>
|
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>
|
</where>
|
</select>
|
<select id="queryTotalScoreList" resultType="com.finance.system.vo.ScoreRankVO">
|
|
</select>
|
<select id="queryRankAndScoreByAreaCode" resultType="com.finance.system.vo.ScoreRankVO">
|
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,
|
ts.score,
|
bdc.type_name,
|
bdc.calculate_type
|
FROM tb_basic_data_category tbdc
|
LEFT JOIN tb_basic_data_config bdc ON tbdc.id = bdc.basic_data_category_id
|
LEFT JOIN tb_score ts ON ts.basic_data_config_id = bdc.id
|
LEFT JOIN tb_basic_data tbd ON tbd.id = ts.basic_data_id
|
WHERE 1 = 1
|
AND tbdc.id = #{query.basicDataCategoryId}
|
AND tbd.quarter = #{nowQuarter}
|
<if test="query.areaCode != null and query.areaCode !=''">
|
AND tbd.dept_area_code = #{query.areaCode}
|
</if>
|
</select>
|
<select id="fieldsDetail" resultType="com.finance.system.vo.ScoreDetailVO">
|
SELECT
|
su.area_name,
|
su.area_code,
|
ts.score,
|
su.person_in_charge,
|
su.phone_number
|
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>
|
ts.basic_data_config_id = #{query.id} AND su.area_name IS NOT NULL
|
AND su.area_code IN
|
<foreach collection="countyList" item="code" open="(" separator="," close=")">
|
#{code}
|
</foreach>
|
<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>
|