mitao
2025-04-07 18891c60ab1c06a4acc85d0ec54dee50d1b1a19f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?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.TbBasicDataMapper">
 
  <!-- 通用查询映射结果 -->
  <resultMap id="BaseResultMap" type="com.finance.system.domain.TbBasicData">
    <id column="id" property="id"/>
    <result column="quarter" property="quarter"/>
    <result column="dept_area_code" property="deptAreaCode"/>
    <result column="transfer_payment_scale" property="transferPaymentScale"/>
    <result column="current_gdp" property="currentGdp"/>
    <result column="remark" property="remark"/>
    <result column="status" property="status"/>
    <result column="del_flag" property="delFlag"/>
    <result column="create_by" property="createBy"/>
    <result column="create_time" property="createTime"/>
    <result column="update_by" property="updateBy"/>
    <result column="update_time" property="updateTime"/>
    <result column="reporting_time" property="reportingTime"/>
  </resultMap>
 
  <!-- 通用查询结果列 -->
  <sql id="Base_Column_List">
    id, quarter, dept_id, transfer_payment_scale, current_gdp, remark, status, del_flag, create_by, create_time, update_by, update_time,reporting_time
  </sql>
  <select id="fieldsStatics" resultType="com.finance.system.vo.CurrentFieldsVO">
    SELECT
    tbd.id,
    su.area_name,
    IF(tbd.`quarter` IS NULL, CONCAT(YEAR(NOW()), '年',
    CASE
    WHEN MONTH(NOW()) BETWEEN 1 AND 3 THEN '一季度'
    WHEN MONTH(NOW()) BETWEEN 4 AND 6 THEN '二季度'
    WHEN MONTH(NOW()) BETWEEN 7 AND 9 THEN '三季度'
    ELSE '四季度'
    END), tbd.`quarter`) AS `quarter`,
    su.person_in_charge,
    su.phone_number,
    tbd.create_time,
    COALESCE(tbd.`status`, 1) AS `status`
    FROM
    (SELECT * FROM sys_user WHERE user_type = 2) AS su
    LEFT JOIN
    (SELECT * FROM tb_basic_data WHERE `quarter` = #{dto.quarter}) AS tbd ON su.area_code =
    tbd.dept_area_code
    <where>
      tbd.quarter = #{dto.quarter}
      <if test="dto.areaName != null and dto.areaName !=''">
        AND su.area_name LIKE CONCAT('%',#{dto.areaName},'%')
      </if>
      <if test="dto.status != null">
        AND tbd.status = #{dto.status}
      </if>
      <if test="dto.personInCharge != null and dto.personInCharge !=''">
        AND su.person_in_charge LIKE CONCAT('%',#{dto.personInCharge},'%')
      </if>
      <if test="dto.phoneNumber != null and dto.phoneNumber != ''">
        AND su.phone_number LIKE CONCAT('%',#{dto.phoneNumber},'%')
      </if>
    </where>
  </select>
  <select id="transferPaymentScalePage"
    resultType="com.finance.system.vo.TransferPaymentScaleVO">
    SELECT
    tbd.transfer_payment_scale,
    su.area_name
    FROM tb_basic_data tbd
    LEFT JOIN sys_user su
    ON tbd.dept_area_code = su.area_code
    WHERE 1 = 1 AND su.area_name IS NOT NULL
    <if test="quarter != null and quarter !=''">
      AND tbd.quarter = #{quarter}
    </if>
    ORDER BY tbd.transfer_payment_scale
    DESC
 
  </select>
  <select id="selectBasicDataFieldsConfig"
    resultType="com.finance.system.vo.FieldAndScoreDataVO">
    SELECT bdc.id,
           ts.score,
           tbdc.basic_data_category_name,
           bdc.type_name,
           bdc.basic_data_category_id,
           bdc.max_score
    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 tbd.dept_area_code = #{areaCode}
      AND tbd.quarter = #{nowQuarter}
  </select>
  <select id="getFieldAndScoreData" resultType="com.finance.system.vo.FieldAndScoreDataVO">
    SELECT tbdc.id,
    tbdc.type_name,
    ROUND(ts.score,1) AS score,
    tbdc.max_score,
    tbd.dept_area_code,
    tbdc.basic_data_category_id AS basicDataCategoryId,
    tbdc2.basic_data_category_name AS levelTwoIndicator,
    tbdc3.basic_data_category_name AS levelOneIndicator,
    tbdc3.score AS levelOneIndicatorMaxScore
    FROM tb_basic_data tbd
    LEFT JOIN tb_score ts ON tbd.id = ts.basic_data_id
    LEFT JOIN tb_basic_data_config tbdc ON ts.basic_data_config_id = tbdc.id
    LEFT JOIN tb_basic_data_category tbdc2 ON tbdc2.id = tbdc.basic_data_category_id
    LEFT JOIN tb_basic_data_category tbdc3 ON tbdc2.parent_id = tbdc3.id
    LEFT JOIN sys_user su ON tbd.dept_area_code = su.area_code
    <where>
      tbd.`quarter` = #{nowQuarter} AND su.user_id IN (SELECT user_id FROM sys_user WHERE
      area_code
      LIKE CONCAT( SUBSTRING(#{areaCode}, 1, 4 ), '%' ) AND user_type = 2 AND area_level
      in(1,2,3,4))
      <if test="isAll!=null and isAll == 2">
        AND tbd.dept_area_code = #{areaCode}
      </if>
    </where>
  </select>
  <select id="getKuKuanBaoZhangShuiPingByAreaCode" resultType="java.lang.String">
    SELECT
    tbdc.field_value
    FROM tb_basic_data tbd LEFT JOIN tb_basic_data_field tbdc ON tbd.id = tbdc.basic_data_id
    <where>
      tbd.`quarter` LIKE CONCAT(#{year},'%') AND tbd.dept_area_code = #{areaCode} AND tbdc.field_id
      IN (36,37,38)
    </where>
  </select>
 
</mapper>