SysMessageSalaryMapper.xml 14 KB
Newer Older
hongguangwu's avatar
hongguangwu committed
1 2 3
<?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.yifu.cloud.plus.v1.yifu.salary.mapper.SysMessageSalaryMapper">
fangxinjiang's avatar
fangxinjiang committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
    <resultMap id="sysMessageSalaryMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.SysMessageSalary">
        <id property="id" column="id"/>
        <result property="actualSalary" column="actual_salary"/>
        <result property="salaryBase" column="salary_base"/>
        <result property="salaryMonth" column="salary_month"/>
        <result property="settleMonth" column="settle_month"/>
        <result property="employeeId" column="employee_id"/>
        <result property="employeeName" column="employee_name"/>
        <result property="employeeIdnum" column="employee_idnum"/>
        <result property="salaryMakeMan" column="salary_make_man"/>
        <result property="province" column="province"/>
        <result property="city" column="city"/>
        <result property="town" column="town"/>
        <result property="departId" column="DEPART_ID"/>
        <result property="departName" column="DEPART_NAME"/>
        <result property="departNo" column="DEPART_NO"/>
        <result property="type" column="TYPE"/>
        <result property="customerId" column="CUSTOMER_ID"/>
        <result property="customerName" column="CUSTOMER_NAME"/>
fangxinjiang's avatar
fangxinjiang committed
23 24
		<result property="reasonType" column="REASON_TYPE"/>
		<result property="feedBack" column="FEED_BACK"/>
fangxinjiang's avatar
fangxinjiang committed
25
    </resultMap>
fangxinjiang's avatar
fangxinjiang committed
26 27 28 29 30 31 32 33 34 35 36 37
	<resultMap id="sysMessageSalaryExportMap" type="com.yifu.cloud.plus.v1.yifu.salary.vo.SysMessageSalaryExportVo">
		<result property="actualSalary" column="actual_salary"/>
		<result property="salaryBase" column="salary_base"/>
		<result property="salaryMonth" column="salary_month"/>
		<result property="employeeName" column="employee_name"/>
		<result property="employeeIdnum" column="employee_idnum"/>
		<result property="province" column="province"/>
		<result property="city" column="city"/>
		<result property="town" column="town"/>
		<result property="departName" column="DEPART_NAME"/>
		<result property="customerName" column="CUSTOMER_NAME"/>
	</resultMap>
hongguangwu's avatar
hongguangwu committed
38
    <sql id="Base_Column_List">
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
		a.id,
		a.actual_salary,
		a.relay_salary,
		a.salary_base,
		a.salary_month,
		a.settle_month,
		a.employee_id,
		a.employee_name,
		a.employee_idnum,
		a.salary_make_man,
		a.province,
		a.city,
		a.town,
		a.DEPART_ID,
		a.DEPART_NAME,
		a.DEPART_NO,
		a.type,
		a.FEED_BACK,
		a.CUSTOMER_NAME,
		a.CUSTOMER_ID,
		a.REASON_TYPE,
		a.CREATE_BY,
		a.CREATE_NAME
		,a.CREATE_NAME,
		a.CREATE_TIME
fangxinjiang's avatar
fangxinjiang committed
64
         </sql>
hongguangwu's avatar
hongguangwu committed
65 66
    <sql id="sysMessageSalary_where">
        <if test="sysMessageSalary != null">
fangxinjiang's avatar
fangxinjiang committed
67 68 69 70 71 72
            <if test="sysMessageSalary.id != null and sysMessageSalary.id.trim() != ''">
                AND a.id = #{sysMessageSalary.id}
            </if>
            <if test="sysMessageSalary.actualSalary != null">
                AND a.actual_salary = #{sysMessageSalary.actualSalary}
            </if>
73 74 75
			<if test="sysMessageSalary.createName != null">
				AND a.CREATE_NAME = #{sysMessageSalary.createName}
			</if>
fangxinjiang's avatar
fangxinjiang committed
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
            <if test="sysMessageSalary.salaryBase != null">
                AND a.salary_base = #{sysMessageSalary.salaryBase}
            </if>
            <if test="sysMessageSalary.salaryMonth != null and sysMessageSalary.salaryMonth.trim() != ''">
                AND a.salary_month = #{sysMessageSalary.salaryMonth}
            </if>
            <if test="sysMessageSalary.settleMonth != null and sysMessageSalary.settleMonth.trim() != ''">
                AND a.settle_month = #{sysMessageSalary.settleMonth}
            </if>
            <if test="sysMessageSalary.employeeId != null and sysMessageSalary.employeeId.trim() != ''">
                AND a.employee_id = #{sysMessageSalary.employeeId}
            </if>
            <if test="sysMessageSalary.employeeName != null and sysMessageSalary.employeeName.trim() != ''">
                AND a.employee_name = #{sysMessageSalary.employeeName}
            </if>
            <if test="sysMessageSalary.employeeIdnum != null and sysMessageSalary.employeeIdnum.trim() != ''">
                AND a.employee_idnum = #{sysMessageSalary.employeeIdnum}
            </if>
            <if test="sysMessageSalary.salaryMakeMan != null and sysMessageSalary.salaryMakeMan.trim() != ''">
                AND a.salary_make_man = #{sysMessageSalary.salaryMakeMan}
            </if>
            <if test="sysMessageSalary.province != null">
                AND a.province = #{sysMessageSalary.province}
            </if>
            <if test="sysMessageSalary.city != null">
                AND a.city = #{sysMessageSalary.city}
            </if>
            <if test="sysMessageSalary.town != null">
                AND a.town = #{sysMessageSalary.town}
            </if>
            <if test="sysMessageSalary.departId != null and sysMessageSalary.departId.trim() != ''">
                AND a.DEPART_ID = #{sysMessageSalary.departId}
            </if>
            <if test="sysMessageSalary.departName != null and sysMessageSalary.departName.trim() != ''">
                AND a.DEPART_NAME = #{sysMessageSalary.departName}
            </if>
            <if test="sysMessageSalary.departNo != null and sysMessageSalary.departNo.trim() != ''">
                AND a.DEPART_NO LIKE CONCAT('%',    #{sysMessageSalary.departNo},'%')
            </if>
            <if test="sysMessageSalary.type != null">
                AND a.type = #{sysMessageSalary.type}
            </if>
            <if test="sysMessageSalary.customerId != null and sysMessageSalary.customerId.trim() != ''">
                AND a.CUSTOMER_ID = #{sysMessageSalary.customerId}
            </if>
            <if test="sysMessageSalary.customerName != null and sysMessageSalary.customerName.trim() != ''">
                AND a.CUSTOMER_NAME LIKE CONCAT('%',   #{sysMessageSalary.customerName},'%')
            </if>
hongguangwu's avatar
hongguangwu committed
124 125 126 127
        </if>
    </sql>
    <!--sysMessageSalary简单分页查询-->
    <select id="getSysMessageSalaryPage" resultMap="sysMessageSalaryMap">
fangxinjiang's avatar
fangxinjiang committed
128
        SELECT
fangxinjiang's avatar
fangxinjiang committed
129
        <include refid="Base_Column_List"/>
fangxinjiang's avatar
fangxinjiang committed
130 131 132
        FROM sys_message_salary a
        left join t_feed_back b  on  a.ID=b.RELATE_ID
        <where>
133 134 135 136 137
			<include refid="sysMessageSalarySql"/>
			<include refid="sysMessageSalary_where"/>
			<if test="sysMessageSalary.authSql != null and sysMessageSalary.authSql.trim() != ''">
				${sysMessageSalary.authSql}
			</if>
138
		  order by  a.CREATE_TIME desc
fangxinjiang's avatar
fangxinjiang committed
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185
        </where>
    </select>

    <!--sysMessageSalary简单分页查询-->
    <select id="getSysMessageSalaryHandlePage" resultMap="sysMessageSalaryMap">
        SELECT
        <include refid="Base_Column_List"/>,
        b.*
        FROM sys_message_salary a
        left join t_feed_back b  on  a.ID=b.RELATE_ID
        <where>
            1=1 and ((b.IGNORE_FLAG=1 and b.TYPE=2) or (b.id is null))
            <include refid="sysMessageSalary_where"/>
        </where>
    </select>

    <sql id="sysMessageSalarySql">
        1=1 and ((b.IGNORE_FLAG=1 and b.TYPE=2) or (b.id is null))
        <!--数据权限判断-->
        <if test="settleDomainVos != null">
            <if test="settleDomainVos.size() > 0">
                and a.DEPART_ID in
                <foreach collection="settleDomainVos" item="param" index="index" open="(" close=")" separator=",">
                    #{param.id}
                </foreach>
            </if>
            <if test="settleDomainVos.size() == 0">
                and 1=2
            </if>
        </if>
        <if test="settleDomainVos == null">
            and 1=1
        </if>
    </sql>

    <!--普通工资-->
    <select id="insertSalaryBySettleMonth" resultType="com.yifu.cloud.plus.v1.yifu.salary.entity.SysMessageSalary">
        SELECT
            id,
            actual_salary,
            relay_salary,
            salary_base,
            salary_month,
            settle_month,
            employee_id,
            employee_name,
            employee_idnum,
fangxinjiang's avatar
fangxinjiang committed
186
            create_by,
fangxinjiang's avatar
fangxinjiang committed
187 188 189
            province,
            city,
            town,
fangxinjiang's avatar
fangxinjiang committed
190 191 192
			DEPT_ID as DEPART_ID,
			DEPT_NAME as DEPART_NAME,
			DEPT_NO as DEPART_NO,
193 194 195
            0 as TYPE,
			CREATE_NAME,
			CREATE_TIME
fangxinjiang's avatar
fangxinjiang committed
196 197 198 199 200 201 202
            FROM
                (
                    SELECT
                        a.ID,
                        a.EMP_ID employee_id,
                        a.EMP_IDCARD employee_idnum,
                        a.EMP_NAME employee_name,
fangxinjiang's avatar
fangxinjiang committed
203 204 205 206
						s.DEPT_ID,
						s.DEPT_NAME,
						s.DEPT_NO,
                        a.SALARY_MONTH salary_month,
fangxinjiang's avatar
fangxinjiang committed
207 208 209
                        a.SETTLEMENT_MONTH settle_month,
                        sum(i.SALARY_MONEY) AS actual_salary,
                        sum(l.SALARY_MONEY) AS relay_Salary,
fangxinjiang's avatar
fangxinjiang committed
210
						s.CREATE_BY AS CREATE_BY,
211 212
						s.CREATE_NAME AS CREATE_NAME,
						s.CREATE_TIME AS CREATE_TIME,
fangxinjiang's avatar
fangxinjiang committed
213 214 215 216 217 218 219 220 221 222 223 224
                        min(IFNULL(t.salary_base,c.salary_base)) AS salary_base,
                      a.PROVINCE,
                      a.CITY,
                      a.TOWN
                    FROM
                        t_salary_account a
                    LEFT JOIN t_salary_standard s ON s.id = a.SALARY_FORM_ID
                    LEFT JOIN t_min_salary t ON t.TOWN = a.TOWN AND t.town IS NOT NULL
                    LEFT JOIN t_min_salary c ON c.city = a.city AND c.town IS NULL
                    LEFT JOIN t_salary_account_item i ON i.SALARY_ACCOUNT_ID = a.id and i.JAVA_FIED_NAME = 'actualSalarySum'
                    LEFT JOIN t_salary_account_item l ON l.SALARY_ACCOUNT_ID = a.id and l.JAVA_FIED_NAME = 'relaySalary'
                    WHERE
225
					(t.`STATUS`=1 or t.id is null) and (c.`STATUS`=1 or c.id is null) and
fangxinjiang's avatar
fangxinjiang committed
226
                    a.DELETE_FLAG = 0
fangxinjiang's avatar
fangxinjiang committed
227 228
					and a.FORM_TYPE='0'
                    and	a.SALARY_MONTH = #{settleMonth}
fangxinjiang's avatar
fangxinjiang committed
229
                    AND s.STATUS IN (3, 4)
fangxinjiang's avatar
fangxinjiang committed
230
                    GROUP BY a.EMP_IDCARD,a.SALARY_MONTH
fangxinjiang's avatar
fangxinjiang committed
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
                ) b
            WHERE b.salary_base > b.actual_salary
    </select>
    <!--工程工资-->
    <select id="insertEngineerBySettleMonth" resultType="com.yifu.cloud.plus.v1.yifu.salary.entity.SysMessageSalary">
        SELECT
            id,
            actual_salary,
            relay_salary,
            salary_base,
            salary_month,
            settle_month,
            employee_id,
            employee_name,
            employee_idnum,
            salary_make_man,
            province,
            city,
            town,
            DEPART_ID,
            DEPART_NAME,
            DEPART_NO,
            1 as TYPE
            FROM
                (
                    SELECT
                        a.id,
                        a.EMP_ID employee_id,
                        a.EMP_IDCARD employee_idnum,
                        a.EMP_NAME employee_name,
                        s.DEPART_ID,
                        s.DEPART_NAME,
                        s.DEPART_NO,
                        a.SALARY_DATE salary_month,
                        a.SETTLEMENT_MONTH settle_month,
                        sum(i.SALARY_MONEY) AS actual_salary,
                        sum(l.SALARY_MONEY) AS relay_Salary,
                        s.CREATE_USER AS salary_make_man,
                        min(IFNULL(t.salary_base,c.salary_base)) AS salary_base,
                      a.PROVINCE,
                      a.CITY,
                      a.TOWN
                    FROM
                        t_engineer_account a
                    LEFT JOIN t_salary_engineering s ON s.id = a.SALARY_FORM_ID
                    LEFT JOIN t_min_salary t ON t.TOWN = a.TOWN AND t.town IS NOT NULL
                    LEFT JOIN t_min_salary c ON c.city = a.city AND c.town IS NULL
                    LEFT JOIN t_engineer_account_item i ON i.SALARY_ACCOUNT_ID = a.id and i.JAVA_FIED_NAME = 'actualSalarySum'
                    LEFT JOIN t_engineer_account_item l ON l.SALARY_ACCOUNT_ID = a.id and l.JAVA_FIED_NAME = 'relaySalary'
                    WHERE
                    a.DELETE_FLAG = 0
                    and	a.SETTLEMENT_MONTH = #{settleMonth}
                    AND s.STATUS IN (3, 4)
fangxinjiang's avatar
fangxinjiang committed
284
                    GROUP BY a.EMP_IDCARD,a.SALARY_DATE,a.DEPT_ID
fangxinjiang's avatar
fangxinjiang committed
285 286 287 288 289 290
                ) b
            WHERE b.salary_base > b.actual_salary
    </select>

    <!--生成前,先删除老数据-->
    <delete id="deleteAllBySettleMonth">
fangxinjiang's avatar
fangxinjiang committed
291
        delete from sys_message_salary where SALARY_MONTH = #{settleMonth}
fangxinjiang's avatar
fangxinjiang committed
292 293 294
    </delete>


295
	<!--noPageDiy查询-->
fangxinjiang's avatar
fangxinjiang committed
296
	<select id="noPageDiy" resultMap="sysMessageSalaryExportMap">
297 298 299 300 301 302 303 304
		SELECT
		<include refid="Base_Column_List"/>,
		b.*
		FROM sys_message_salary a
		left join t_feed_back b  on  a.ID=b.RELATE_ID
		<where>
			1=1 and ((b.IGNORE_FLAG=1 and b.TYPE=2) or (b.id is null))
			<include refid="export_sql"/>
305
			<if test="sysMessageSalary != null">
306 307 308
				<if test="sysMessageSalary.authSql != null and sysMessageSalary.authSql.trim() != ''">
					${sysMessageSalary.authSql}
				</if>
309 310 311 312
				<if test="sysMessageSalary.limitStart != null">
					limit #{sysMessageSalary.limitStart},#{sysMessageSalary.limitEnd}
				</if>
			</if>
313 314
		</where>
	</select>
fangxinjiang's avatar
fangxinjiang committed
315

316 317 318 319 320 321 322 323 324
	<!--noPageCountDiy查询-->
	<select id="noPageCountDiy" resultType="java.lang.Integer">
		SELECT
		count(1)
		FROM sys_message_salary a
		left join t_feed_back b  on  a.ID=b.RELATE_ID
		<where>
			1=1 and ((b.IGNORE_FLAG=1 and b.TYPE=2) or (b.id is null))
			<include refid="export_sql"/>
325 326 327
			<if test="sysMessageSalary.authSql != null and sysMessageSalary.authSql.trim() != ''">
				${sysMessageSalary.authSql}
			</if>
328 329 330 331 332 333 334 335 336 337 338 339 340
		</where>
	</select>
	<sql id="export_sql">
		<include refid="sysMessageSalary_where"/>
		<if test="idsStr != null and idsStr.size > 0">
			AND a.ID in
			<foreach item="items" index="index" collection="idsStr" open="(" separator="," close=")">
				#{items}
			</foreach>
		</if>
		<!--数据权限判断-->
		<if test="settleDomainIds != null">
			<if test="settleDomainIds.size() > 0">
341
				and a.DEPART_ID in
342 343 344 345
				<foreach collection="settleDomainIds" item="param" index="index" open="(" close=")" separator=",">
					#{param}
				</foreach>
			</if>
346
			<if test="settleDomainIds.size() == 0">
347 348 349
				and 1=2
			</if>
		</if>
fangxinjiang's avatar
fangxinjiang committed
350
		<if test="settleDomainIds == null">
351 352 353 354 355 356
			and 1=1
		</if>
		<if test='sql != null and sql != ""'>
			and <![CDATA[sql]]>
		</if>
	</sql>
fangxinjiang's avatar
fangxinjiang committed
357

hongguangwu's avatar
hongguangwu committed
358
</mapper>