<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~      Copyright (c) 2018-2025, lengleng All rights reserved.
  ~
  ~  Redistribution and use in source and binary forms, with or without
  ~  modification, are permitted provided that the following conditions are met:
  ~
  ~ Redistributions of source code must retain the above copyright notice,
  ~  this list of conditions and the following disclaimer.
  ~  Redistributions in binary form must reproduce the above copyright
  ~  notice, this list of conditions and the following disclaimer in the
  ~  documentation and/or other materials provided with the distribution.
  ~  Neither the name of the yifu4cloud.com developer nor the names of its
  ~  contributors may be used to endorse or promote products derived from
  ~  this software without specific prior written permission.
  ~  Author: lengleng (wangiegie@gmail.com)
  ~
  -->

<!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.TStatisticsRemunerationMapper">

  <resultMap id="tStatisticsRemunerationMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsRemuneration">
    <id property="id" column="ID"/>
    <result property="declareUnit" column="DECLARE_UNIT"/>
    <result property="declareMonth" column="DECLARE_MONTH"/>
    <result property="empName" column="EMP_NAME"/>
    <result property="empIdcard" column="EMP_IDCARD"/>
    <result property="cardType" column="CARD_TYPE"/>
    <result property="income" column="INCOME"/>
    <result property="personalTax" column="PERSONAL_TAX"/>
  </resultMap>
    <sql id="Base_Column_List">
                a.ID,
                a.DECLARE_UNIT,
                a.DECLARE_MONTH,
                a.EMP_NAME,
                a.EMP_IDCARD,
                a.CARD_TYPE,
                a.INCOME,
                a.PERSONAL_TAX
    </sql>
    <sql id="tStatisticsRemuneration_where">
        <if test="tStatisticsRemuneration != null">
                    <if test="tStatisticsRemuneration.id != null and tStatisticsRemuneration.id.trim() != ''">
                        AND a.ID = #{tStatisticsRemuneration.id}
                    </if>
                    <if test="tStatisticsRemuneration.declareUnit != null and tStatisticsRemuneration.declareUnit.trim() != ''">
                        AND a.DECLARE_UNIT = #{tStatisticsRemuneration.declareUnit}
                    </if>
                    <if test="tStatisticsRemuneration.declareMonth != null and tStatisticsRemuneration.declareMonth.trim() != ''">
                        AND a.DECLARE_MONTH = #{tStatisticsRemuneration.declareMonth}
                    </if>
                    <if test="tStatisticsRemuneration.empName != null and tStatisticsRemuneration.empName.trim() != ''">
                        AND a.EMP_NAME = #{tStatisticsRemuneration.empName}
                    </if>
                    <if test="tStatisticsRemuneration.empIdcard != null and tStatisticsRemuneration.empIdcard.trim() != ''">
                        AND a.EMP_IDCARD = #{tStatisticsRemuneration.empIdcard}
                    </if>
                    <if test="tStatisticsRemuneration.cardType != null and tStatisticsRemuneration.cardType.trim() != ''">
                        AND a.CARD_TYPE = #{tStatisticsRemuneration.cardType}
                    </if>
                    <if test="tStatisticsRemuneration.income != null">
                        AND a.INCOME = #{tStatisticsRemuneration.income}
                    </if>
                    <if test="tStatisticsRemuneration.personalTax != null">
                        AND a.PERSONAL_TAX = #{tStatisticsRemuneration.personalTax}
                    </if>
        </if>
    </sql>
    <!--tStatisticsRemuneration简单分页查询-->
    <select id="getTStatisticsRemunerationPage" resultMap="tStatisticsRemunerationMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM t_statistics_remuneration a
        <where>
            1=1
            <include refid="tStatisticsRemuneration_where"/>
        </where>
		group by a.EMP_IDCARD,a.DECLARE_MONTH,a.EMP_NAME
		order by a.DECLARE_MONTH desc
    </select>

	<!--统计-->
	<select id="doStatisticsRemuneration" resultMap="tStatisticsRemunerationMap">
		select
			#{nowMonth} DECLARE_MONTH,a.EMP_NAME,a.EMP_IDCARD,sum(a.SALARY_TAX) PERSONAL_TAX,
			sum(a.ACTUAL_SALARY) INCOME,a.INVOICE_TITLE DECLARE_UNIT,'居民身份证' CARD_TYPE
		from t_salary_account a
				 left join t_salary_employee b on b.id = a.EMP_ID
		where a.DELETE_FLAG = '1' and a.SETTLEMENT_MONTH like '${lastYear}%' and a.FORM_TYPE = '4'
		GROUP BY a.EMP_IDCARD,a.EMP_NAME
	</select>
</mapper>
