<?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.TStatisticsLaborMapper">

  <resultMap id="tStatisticsLaborMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsLabor">
    <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"/>
    <result property="incomeItem" column="INCOME_ITEM"/>
  </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,
                a.INCOME_ITEM
    </sql>
    <sql id="tStatisticsLabor_where">
        <if test="tStatisticsLabor != null">
                    <if test="tStatisticsLabor.id != null and tStatisticsLabor.id.trim() != ''">
                        AND a.ID = #{tStatisticsLabor.id}
                    </if>
                    <if test="tStatisticsLabor.declareUnit != null and tStatisticsLabor.declareUnit.trim() != ''">
                        AND a.DECLARE_UNIT = #{tStatisticsLabor.declareUnit}
                    </if>
                    <if test="tStatisticsLabor.declareMonth != null and tStatisticsLabor.declareMonth.trim() != ''">
                        AND a.DECLARE_MONTH = #{tStatisticsLabor.declareMonth}
                    </if>
                    <if test="tStatisticsLabor.empName != null and tStatisticsLabor.empName.trim() != ''">
                        AND a.EMP_NAME = #{tStatisticsLabor.empName}
                    </if>
                    <if test="tStatisticsLabor.empIdcard != null and tStatisticsLabor.empIdcard.trim() != ''">
                        AND a.EMP_IDCARD = #{tStatisticsLabor.empIdcard}
                    </if>
                    <if test="tStatisticsLabor.cardType != null and tStatisticsLabor.cardType.trim() != ''">
                        AND a.CARD_TYPE = #{tStatisticsLabor.cardType}
                    </if>
                    <if test="tStatisticsLabor.income != null">
                        AND a.INCOME = #{tStatisticsLabor.income}
                    </if>
                    <if test="tStatisticsLabor.personalTax != null">
                        AND a.PERSONAL_TAX = #{tStatisticsLabor.personalTax}
                    </if>
                    <if test="tStatisticsLabor.incomeItem != null and tStatisticsLabor.incomeItem.trim() != ''">
                        AND a.INCOME_ITEM = #{tStatisticsLabor.incomeItem}
                    </if>
        </if>
    </sql>
    <!--tStatisticsLabor简单分页查询-->
    <select id="getTStatisticsLaborPage" resultMap="tStatisticsLaborMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM t_statistics_labor a
        <where>
            1=1
            <include refid="tStatisticsLabor_where"/>
        </where>
		order by a.DECLARE_MONTH desc
    </select>

	<!--统计-->
	<select id="doStatisticsLabor" resultMap="tStatisticsLaborMap">
		select
			#{nowMonth} DECLARE_MONTH,a.EMP_NAME,a.EMP_IDCARD,sum(IFNULL(a.SALARY_TAX,0) + IFNULL(a.SALARY_TAX_UNIT,0)) PERSONAL_TAX,sum(a.RELAY_SALARY_UNIT) INCOME,
			a.INVOICE_TITLE DECLARE_UNIT,'一般劳务报酬所得' INCOME_ITEM,'居民身份证' CARD_TYPE
		from t_salary_account a
		where a.DELETE_FLAG = 0 and a.SETTLEMENT_MONTH = #{lastMonth} and a.FORM_TYPE = '3'
		GROUP BY a.EMP_IDCARD,DECLARE_UNIT
	</select>
</mapper>
