<?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.social.mapper.TPaymentInfoMapper">
	<resultMap id="tPaymentInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo">
		<id property="id" column="ID"/>
		<result property="empName" column="EMP_NAME"/>
		<result property="empNo" column="EMP_NO"/>
		<result property="empId" column="EMP_ID"/>
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="unitId" column="UNIT_ID"/>
		<result property="unitName" column="UNIT_NAME"/>
		<result property="settleDomainName" column="SETTLE_DOMAIN_NAME"/>
		<result property="settleDomainCode" column="SETTLE_DOMAIN_CODE"/>
		<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
		<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
		<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
		<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
		<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
		<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
		<result property="lockStatus" column="LOCK_STATUS"/>
		<result property="pushStatus" column="PUSH_STATUS"/>
		<result property="sumAll" column="SUM_ALL"/>
		<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
		<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
		<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
		<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
		<result property="fundProvince" column="FUND_PROVINCE"/>
		<result property="fundCity" column="FUND_CITY"/>
		<result property="fundTown" column="FUND_TOWN"/>
		<result property="socialProvince" column="SOCIAL_PROVINCE"/>
		<result property="socialCity" column="SOCIAL_CITY"/>
		<result property="socialTown" column="SOCIAL_TOWN"/>
		<result property="socialId" column="SOCIAL_ID"/>
		<result property="fundId" column="FUND_ID"/>
		<result property="socialSum" column="SOCIAL_SUM"/>
		<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
		<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
		<result property="providentSum" column="PROVIDENT_SUM"/>
		<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
		<result property="sortTime" column="SORT_TIME"/>
		<result property="companyAccrual" column="COMPANY_ACCRUAL"/>
		<result property="personalAccrual" column="PERSONAL_ACCRUAL"/>
		<result property="unitPensionSet" column="UNIT_PENSION_SET"/>
		<result property="unitMedicalSet" column="UNIT_MEDICAL_SET"/>
		<result property="unitUnemploymentSet" column="UNIT_UNEMPLOYMENT_SET"/>
		<result property="unitInjurySet" column="UNIT_INJURY_SET"/>
		<result property="unitBirthSet" column="UNIT_BIRTH_SET"/>
		<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
		<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
		<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
		<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
		<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
		<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
		<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
		<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
		<result property="unitBigailmentPer" column="UNIT_BIGAILMENT_PER"/>
		<result property="personalBigailmentPer" column="PERSONAL_BIGAILMENT_PER"/>
		<result property="unitPensionMoney" column="UNIT_PENSION_MONEY"/>
		<result property="unitMedicalMoney" column="UNIT_MEDICAL_MONEY"/>
		<result property="unitUnemploymentMoney" column="UNIT_UNEMPLOYMENT_MONEY"/>
		<result property="unitInjuryMoney" column="UNIT_INJURY_MONEY"/>
		<result property="unitBirthMoney" column="UNIT_BIRTH_MONEY"/>
		<result property="unitBigmailmentMoney" column="UNIT_BIGMAILMENT_MONEY"/>
		<result property="personalPensionMoney" column="PERSONAL_PENSION_MONEY"/>
		<result property="personalMedicalMoney" column="PERSONAL_MEDICAL_MONEY"/>
		<result property="personalUnemploymentMoney" column="PERSONAL_UNEMPLOYMENT_MONEY"/>
		<result property="personalBigmailmentMoney" column="PERSONAL_BIGMAILMENT_MONEY"/>
		<result property="providentNo" column="PROVIDENT_NO"/>
		<result property="salarySocialFlag" column="SALARY_SOCIAL_FLAG"/>
		<result property="salaryFundFlag" column="SALARY_FUND_FLAG"/>
		<result property="unitProvidentSet" column="UNIT_PROVIDENT_SET"/>
		<result property="providentPercent" column="PROVIDENT_PERCENT"/>
		<result property="unitProvidentSum" column="UNIT_PROVIDENT_SUM"/>
		<result property="personalProidentSet" column="PERSONAL_PROIDENT_SET"/>
		<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
		<result property="createBy" column="CREATE_BY"/>
		<result property="updateTime" column="UPDATE_TIME"/>
		<result property="updateBy" column="UPDATE_BY"/>
		<result property="createName" column="CREATE_NAME"/>
		<result property="createTime" column="CREATE_TIME"/>
		<result property="incomeStatus" column="INCOME_STATUS"/>
	</resultMap>
	<resultMap id="tPaymentInfoSumMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoExportVo">
		<result property="empName" column="EMP_NAME"/>
		<result property="empNo" column="EMP_NO"/>
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="unitName" column="UNIT_NAME"/>
		<result property="settleDomainName" column="SETTLE_DOMAIN_NAME"/>
		<result property="settleDomainCode" column="SETTLE_DOMAIN_CODE"/>
		<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
		<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
		<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
		<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
		<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
		<result property="sumAll" column="SUM_ALL"/>
		<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
		<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
		<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
		<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
		<result property="fundProvince" column="FUND_PROVINCE"/>
		<result property="fundCity" column="FUND_CITY"/>
		<result property="fundTown" column="FUND_TOWN"/>
		<result property="socialProvince" column="SOCIAL_PROVINCE"/>
		<result property="socialCity" column="SOCIAL_CITY"/>
		<result property="socialTown" column="SOCIAL_TOWN"/>
		<result property="socialSum" column="SOCIAL_SUM"/>
		<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
		<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
		<result property="providentSum" column="PROVIDENT_SUM"/>
		<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
		<result property="companyAccrual" column="COMPANY_ACCRUAL"/>
		<result property="personalAccrual" column="PERSONAL_ACCRUAL"/>
		<result property="unitPensionSet" column="UNIT_PENSION_SET"/>
		<result property="unitMedicalSet" column="UNIT_MEDICAL_SET"/>
		<result property="unitUnemploymentSet" column="UNIT_UNEMPLOYMENT_SET"/>
		<result property="unitInjurySet" column="UNIT_INJURY_SET"/>
		<result property="unitBirthSet" column="UNIT_BIRTH_SET"/>
		<result property="unitPensionMoney" column="UNIT_PENSION_MONEY"/>
		<result property="unitMedicalMoney" column="UNIT_MEDICAL_MONEY"/>
		<result property="unitUnemploymentMoney" column="UNIT_UNEMPLOYMENT_MONEY"/>
		<result property="unitInjuryMoney" column="UNIT_INJURY_MONEY"/>
		<result property="unitBirthMoney" column="UNIT_BIRTH_MONEY"/>
		<result property="unitBigmailmentMoney" column="UNIT_BIGMAILMENT_MONEY"/>
		<result property="personalPensionMoney" column="PERSONAL_PENSION_MONEY"/>
		<result property="personalMedicalMoney" column="PERSONAL_MEDICAL_MONEY"/>
		<result property="personalUnemploymentMoney" column="PERSONAL_UNEMPLOYMENT_MONEY"/>
		<result property="personalBigmailmentMoney" column="PERSONAL_BIGMAILMENT_MONEY"/>
		<result property="providentNo" column="PROVIDENT_NO"/>
		<result property="unitProvidentSet" column="UNIT_PROVIDENT_SET"/>
		<result property="providentPercent" column="PROVIDENT_PERCENT"/>
		<result property="unitProvidentSum" column="UNIT_PROVIDENT_SUM"/>
		<result property="personalProidentSet" column="PERSONAL_PROIDENT_SET"/>
		<result property="socialCreateName" column="SOCIAL_CREATE_NAME"/>
		<result property="socialCreateTime" column="SOCIAL_CREATE_TIME"/>
		<result property="fundCreateName" column="FUND_CREATE_NAME"/>
		<result property="fundCreateTime" column="FUND_CREATE_TIME"/>
		<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
		<result property="keyGroup" column="keyGroup"/>
	</resultMap>
	<sql id="Base_Column_List">
				a.ID,
                a.EMP_NAME,
                a.EMP_NO,
                a.EMP_ID,
                a.EMP_IDCARD,
                a.UNIT_ID,
                a.UNIT_NAME,
                a.SETTLE_DOMAIN_CODE,
                a.SETTLE_DOMAIN_NAME,
                a.SETTLE_DOMAIN_ID,
                a.SOCIAL_HOUSEHOLD,
                a.SOCIAL_SECURITY_NO,
                a.SOCIAL_PAY_ADDR,
                a.SOCIAL_PAY_MONTH,
                a.SOCIAL_CREATE_MONTH,
                a.LOCK_STATUS,
                a.PUSH_STATUS,
                a.SUM_ALL,
                a.PROVIDENT_PAY_MONTH,
                a.PROVIDENT_CREATE_MONTH,
                a.PROVIDENT_HOUSEHOLD,
                a.PROVIDENT_PAY_ADDR,
                a.FUND_PROVINCE,
                a.FUND_CITY,
                a.FUND_TOWN,
                a.SOCIAL_PROVINCE,
                a.SOCIAL_CITY,
                a.SOCIAL_TOWN,
                a.SOCIAL_ID,
                a.FUND_ID,
                a.SOCIAL_SUM,
                a.UNIT_SOCIAL_SUM,
                a.SOCIAL_SECURITY_PERSONAL_SUM,
                a.PROVIDENT_SUM,
                a.INAUGURAL_TEAM,
                a.SORT_TIME,
                a.SALARY_SOCIAL_FLAG,
        		a.SALARY_FUND_FLAG,
                a.COMPANY_ACCRUAL,
                a.PERSONAL_ACCRUAL,
                a.UNIT_PENSION_SET,
                a.UNIT_MEDICAL_SET,
                a.UNIT_UNEMPLOYMENT_SET,
                a.UNIT_INJURY_SET,
                a.UNIT_BIRTH_SET,
                a.UNIT_PENSION_PER,
                a.UNIT_MEDICAL_PER,
                a.UNIT_UNEMPLOYMENT_PER,
                a.UNIT_INJURY_PER,
                a.UNIT_BIRTH_PER,
                a.PERSONAL_PENSION_PER,
                a.PERSONAL_MEDICAL_PER,
                a.PERSONAL_UNEMPLOYMENT_PER,
                a.UNIT_BIGAILMENT_PER,
                a.PERSONAL_BIGAILMENT_PER,
                a.UNIT_PENSION_MONEY,
                a.UNIT_MEDICAL_MONEY,
                a.UNIT_UNEMPLOYMENT_MONEY,
                a.UNIT_INJURY_MONEY,
                a.UNIT_BIRTH_MONEY,
                a.UNIT_BIGMAILMENT_MONEY,
                a.PERSONAL_PENSION_MONEY,
                a.PERSONAL_MEDICAL_MONEY,
                a.PERSONAL_UNEMPLOYMENT_MONEY,
                a.PERSONAL_BIGMAILMENT_MONEY,
                a.PROVIDENT_NO,
                a.UNIT_PROVIDENT_SET,
                a.PROVIDENT_PERCENT,
                a.UNIT_PROVIDENT_SUM,
                a.PERSONAL_PROIDENT_SET,
                a.PERSONAL_PROVIDENT_SUM,
                a.CREATE_BY,
                a.UPDATE_TIME,
                a.UPDATE_BY,
                a.CREATE_NAME,
                a.CREATE_TIME
	</sql>
	<sql id="tPaymentInfo_where">
		<if test="tPaymentInfo != null">
			<if test="tPaymentInfo.id != null and tPaymentInfo.id.trim() != ''">
				AND a.ID = #{tPaymentInfo.id}
			</if>
			<if test="tPaymentInfo.empName != null and tPaymentInfo.empName.trim() != ''">
				AND a.EMP_NAME like concat('%',#{tPaymentInfo.empName},'%')
			</if>
			<if test="tPaymentInfo.empNo != null and tPaymentInfo.empNo.trim() != ''">
				AND a.EMP_NO like CONCAT(#{tPaymentInfo.empNo},'%')
			</if>
			<if test="tPaymentInfo.empId != null and tPaymentInfo.empId.trim() != ''">
				AND a.EMP_ID = #{tPaymentInfo.empId}
			</if>
			<if test="tPaymentInfo.empIdcard != null and tPaymentInfo.empIdcard.trim() != ''">
				AND a.EMP_IDCARD like concat('%',#{tPaymentInfo.empIdcard},'%')
			</if>
			<if test="tPaymentInfo.unitId != null and tPaymentInfo.unitId.trim() != ''">
				AND a.UNIT_ID = #{tPaymentInfo.unitId}
			</if>
			<if test="tPaymentInfo.settleDomainName != null and tPaymentInfo.settleDomainName.trim() != ''">
				AND a.SETTLE_DOMAIN_NAME = #{tPaymentInfo.settleDomainName}
			</if>
			<if test="tPaymentInfo.settleDomainCode != null and tPaymentInfo.settleDomainCode.trim() != ''">
				AND a.SETTLE_DOMAIN_CODE = #{tPaymentInfo.settleDomainCode}
			</if>
			<if test="tPaymentInfo.unitName != null and tPaymentInfo.unitName.trim() != ''">
				AND a.UNIT_NAME = #{tPaymentInfo.unitName}
			</if>
			<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
				AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
			</if>
			<if test="tPaymentInfo.socialHousehold != null and tPaymentInfo.socialHousehold.trim() != ''">
				AND a.SOCIAL_HOUSEHOLD like CONCAT(#{tPaymentInfo.socialHousehold},'%')
			</if>
			<if test="tPaymentInfo.socialSecurityNo != null and tPaymentInfo.socialSecurityNo.trim() != ''">
				AND a.SOCIAL_SECURITY_NO like CONCAT(#{tPaymentInfo.socialSecurityNo},'%')
			</if>
			<if test="tPaymentInfo.socialPayAddr != null and tPaymentInfo.socialPayAddr.trim() != ''">
				AND a.SOCIAL_PAY_ADDR = #{tPaymentInfo.socialPayAddr}
			</if>
			<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
				AND (a.SOCIAL_PAY_MONTH = '${tPaymentInfo.socialPayMonth}' or a.PROVIDENT_PAY_MONTH = '${tPaymentInfo.socialPayMonth}')
			</if>
			<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
				AND (a.SOCIAL_CREATE_MONTH = '${tPaymentInfo.socialCreateMonth}' or a.PROVIDENT_CREATE_MONTH = '${tPaymentInfo.socialCreateMonth}')
			</if>
			<if test="tPaymentInfo.lockStatus != null and tPaymentInfo.lockStatus.trim() != ''">
				AND a.LOCK_STATUS = #{tPaymentInfo.lockStatus}
			</if>
			<if test="tPaymentInfo.pushStatus != null and tPaymentInfo.pushStatus.trim() != ''">
				AND a.PUSH_STATUS = #{tPaymentInfo.pushStatus}
			</if>
			<if test="tPaymentInfo.sumAll != null">
				AND a.SUM_ALL = #{tPaymentInfo.sumAll}
			</if>
			<if test="tPaymentInfo.providentHousehold != null and tPaymentInfo.providentHousehold.trim() != ''">
				AND a.PROVIDENT_HOUSEHOLD like CONCAT(#{tPaymentInfo.providentHousehold},'%')
			</if>
			<if test="tPaymentInfo.providentPayAddr != null and tPaymentInfo.providentPayAddr.trim() != ''">
				AND a.PROVIDENT_PAY_ADDR = #{tPaymentInfo.providentPayAddr}
			</if>
			<if test="tPaymentInfo.socialProvince != null and tPaymentInfo.socialProvince.trim() != ''">
				AND (a.SOCIAL_PROVINCE = '${tPaymentInfo.socialProvince}' or a.FUND_PROVINCE = '${tPaymentInfo.socialProvince}')
			</if>
			<if test="tPaymentInfo.socialCity != null and tPaymentInfo.socialCity.trim() != ''">
				AND (a.SOCIAL_CITY = '${tPaymentInfo.socialCity}' or a.FUND_CITY = '${tPaymentInfo.socialCity}')
			</if>
			<if test="tPaymentInfo.socialTown == null">
				<if test="tPaymentInfo.socialCity != null">
					AND (a.SOCIAL_CITY = '${tPaymentInfo.socialCity}' or a.FUND_CITY = '${tPaymentInfo.socialCity}')
				</if>
				<if test="tPaymentInfo.socialCity == null">
					<if test="tPaymentInfo.socialProvince != null">
						AND (a.SOCIAL_PROVINCE = '${tPaymentInfo.socialProvince}' or a.FUND_PROVINCE = '${tPaymentInfo.socialProvince}')
					</if>
				</if>
			</if>
			<if test="tPaymentInfo.socialTown != null and tPaymentInfo.socialTown.trim() != ''">
				AND (a.SOCIAL_TOWN = '${tPaymentInfo.socialTown}' or a.FUND_TOWN = '${tPaymentInfo.socialTown}')
			</if>
			<if test="tPaymentInfo.socialId != null and tPaymentInfo.socialId.trim() != ''">
				AND a.SOCIAL_ID = #{tPaymentInfo.socialId}
			</if>
			<if test="tPaymentInfo.fundId != null and tPaymentInfo.fundId.trim() != ''">
				AND a.FUND_ID = #{tPaymentInfo.fundId}
			</if>
			<if test="tPaymentInfo.socialSum != null">
				AND a.SOCIAL_SUM = #{tPaymentInfo.socialSum}
			</if>
			<if test="tPaymentInfo.unitSocialSum != null">
				AND a.UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum}
			</if>
			<if test="tPaymentInfo.socialSecurityPersonalSum != null">
				AND a.SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum}
			</if>
			<if test="tPaymentInfo.providentSum != null">
				AND a.PROVIDENT_SUM = #{tPaymentInfo.providentSum}
			</if>
			<if test="tPaymentInfo.inauguralTeam != null and tPaymentInfo.inauguralTeam.trim() != ''">
				AND a.INAUGURAL_TEAM = #{tPaymentInfo.inauguralTeam}
			</if>
			<if test="tPaymentInfo.sortTime != null and tPaymentInfo.sortTime.trim() != ''">
				AND a.SORT_TIME = #{tPaymentInfo.sortTime}
			</if>
			<if test="tPaymentInfo.companyAccrual != null">
				AND a.COMPANY_ACCRUAL = #{tPaymentInfo.companyAccrual}
			</if>
			<if test="tPaymentInfo.personalAccrual != null">
				AND a.PERSONAL_ACCRUAL = #{tPaymentInfo.personalAccrual}
			</if>
			<if test="tPaymentInfo.unitPensionSet != null">
				AND a.UNIT_PENSION_SET = #{tPaymentInfo.unitPensionSet}
			</if>
			<if test="tPaymentInfo.unitMedicalSet != null">
				AND a.UNIT_MEDICAL_SET = #{tPaymentInfo.unitMedicalSet}
			</if>
			<if test="tPaymentInfo.unitUnemploymentSet != null">
				AND a.UNIT_UNEMPLOYMENT_SET = #{tPaymentInfo.unitUnemploymentSet}
			</if>
			<if test="tPaymentInfo.unitInjurySet != null">
				AND a.UNIT_INJURY_SET = #{tPaymentInfo.unitInjurySet}
			</if>
			<if test="tPaymentInfo.unitBirthSet != null">
				AND a.UNIT_BIRTH_SET = #{tPaymentInfo.unitBirthSet}
			</if>
			<if test="tPaymentInfo.unitPensionPer != null">
				AND a.UNIT_PENSION_PER = #{tPaymentInfo.unitPensionPer}
			</if>
			<if test="tPaymentInfo.unitMedicalPer != null">
				AND a.UNIT_MEDICAL_PER = #{tPaymentInfo.unitMedicalPer}
			</if>
			<if test="tPaymentInfo.unitUnemploymentPer != null">
				AND a.UNIT_UNEMPLOYMENT_PER = #{tPaymentInfo.unitUnemploymentPer}
			</if>
			<if test="tPaymentInfo.unitInjuryPer != null">
				AND a.UNIT_INJURY_PER = #{tPaymentInfo.unitInjuryPer}
			</if>
			<if test="tPaymentInfo.unitBirthPer != null">
				AND a.UNIT_BIRTH_PER = #{tPaymentInfo.unitBirthPer}
			</if>
			<if test="tPaymentInfo.personalPensionPer != null">
				AND a.PERSONAL_PENSION_PER = #{tPaymentInfo.personalPensionPer}
			</if>
			<if test="tPaymentInfo.personalMedicalPer != null">
				AND a.PERSONAL_MEDICAL_PER = #{tPaymentInfo.personalMedicalPer}
			</if>
			<if test="tPaymentInfo.personalUnemploymentPer != null">
				AND a.PERSONAL_UNEMPLOYMENT_PER = #{tPaymentInfo.personalUnemploymentPer}
			</if>
			<if test="tPaymentInfo.unitBigailmentPer != null">
				AND a.UNIT_BIGAILMENT_PER = #{tPaymentInfo.unitBigailmentPer}
			</if>
			<if test="tPaymentInfo.personalBigailmentPer != null">
				AND a.PERSONAL_BIGAILMENT_PER = #{tPaymentInfo.personalBigailmentPer}
			</if>
			<if test="tPaymentInfo.unitPensionMoney != null">
				AND a.UNIT_PENSION_MONEY = #{tPaymentInfo.unitPensionMoney}
			</if>
			<if test="tPaymentInfo.unitMedicalMoney != null">
				AND a.UNIT_MEDICAL_MONEY = #{tPaymentInfo.unitMedicalMoney}
			</if>
			<if test="tPaymentInfo.unitUnemploymentMoney != null">
				AND a.UNIT_UNEMPLOYMENT_MONEY = #{tPaymentInfo.unitUnemploymentMoney}
			</if>
			<if test="tPaymentInfo.unitInjuryMoney != null">
				AND a.UNIT_INJURY_MONEY = #{tPaymentInfo.unitInjuryMoney}
			</if>
			<if test="tPaymentInfo.unitBirthMoney != null">
				AND a.UNIT_BIRTH_MONEY = #{tPaymentInfo.unitBirthMoney}
			</if>
			<if test="tPaymentInfo.unitBigmailmentMoney != null">
				AND a.UNIT_BIGMAILMENT_MONEY = #{tPaymentInfo.unitBigmailmentMoney}
			</if>
			<if test="tPaymentInfo.personalPensionMoney != null">
				AND a.PERSONAL_PENSION_MONEY = #{tPaymentInfo.personalPensionMoney}
			</if>
			<if test="tPaymentInfo.personalMedicalMoney != null">
				AND a.PERSONAL_MEDICAL_MONEY = #{tPaymentInfo.personalMedicalMoney}
			</if>
			<if test="tPaymentInfo.personalUnemploymentMoney != null">
				AND a.PERSONAL_UNEMPLOYMENT_MONEY = #{tPaymentInfo.personalUnemploymentMoney}
			</if>
			<if test="tPaymentInfo.personalBigmailmentMoney != null">
				AND a.PERSONAL_BIGMAILMENT_MONEY = #{tPaymentInfo.personalBigmailmentMoney}
			</if>
			<if test="tPaymentInfo.providentNo != null and tPaymentInfo.providentNo.trim() != ''">
				AND a.PROVIDENT_NO = #{tPaymentInfo.providentNo}
			</if>
			<if test="tPaymentInfo.unitProvidentSet != null">
				AND a.UNIT_PROVIDENT_SET = #{tPaymentInfo.unitProvidentSet}
			</if>
			<if test="tPaymentInfo.providentPercent != null">
				AND a.PROVIDENT_PERCENT = #{tPaymentInfo.providentPercent}
			</if>
			<if test="tPaymentInfo.unitProvidentSum != null">
				AND a.UNIT_PROVIDENT_SUM = #{tPaymentInfo.unitProvidentSum}
			</if>
			<if test="tPaymentInfo.personalProidentSet != null">
				AND a.PERSONAL_PROIDENT_SET = #{tPaymentInfo.personalProidentSet}
			</if>
			<if test="tPaymentInfo.personalProvidentSum != null">
				AND a.PERSONAL_PROVIDENT_SUM = #{tPaymentInfo.personalProvidentSum}
			</if>
			<if test="tPaymentInfo.createBy != null and tPaymentInfo.createBy.trim() != ''">
				AND a.CREATE_BY = #{tPaymentInfo.createBy}
			</if>
			<if test="tPaymentInfo.updateTime != null">
				AND a.UPDATE_TIME = #{tPaymentInfo.updateTime}
			</if>
			<if test="tPaymentInfo.updateBy != null and tPaymentInfo.updateBy.trim() != ''">
				AND a.UPDATE_BY = #{tPaymentInfo.updateBy}
			</if>
			<if test="tPaymentInfo.createName != null and tPaymentInfo.createName.trim() != ''">
				AND a.CREATE_NAME = #{tPaymentInfo.createName}
			</if>
			<if test="tPaymentInfo.createTime != null">
				AND a.CREATE_TIME = #{tPaymentInfo.createTime}
			</if>
		</if>
	</sql>

	<sql id="tPaymentInfo_export_where">
		<if test="tPaymentInfo != null">
			<if test="tPaymentInfo.idList != null">
				AND a.id in
				<foreach item="idStr" index="index" collection="tPaymentInfo.idList" open="(" separator="," close=")">
					#{idStr}
				</foreach>
			</if>
		<if test="tPaymentInfo.idList == null">
			<if test="tPaymentInfo.id != null and tPaymentInfo.id.trim() != ''">
				AND a.ID = #{tPaymentInfo.id}
			</if>
			<if test="tPaymentInfo.empName != null and tPaymentInfo.empName.trim() != ''">
				AND a.EMP_NAME like concat('%',#{tPaymentInfo.empName},'%')
			</if>
			<if test="tPaymentInfo.empNo != null and tPaymentInfo.empNo.trim() != ''">
				AND a.EMP_NO like CONCAT(#{tPaymentInfo.empNo},'%')
			</if>
			<if test="tPaymentInfo.empIdcard != null and tPaymentInfo.empIdcard.trim() != ''">
				AND a.EMP_IDCARD like concat('%',#{tPaymentInfo.empIdcard},'%')
			</if>
			<if test="tPaymentInfo.settleDomainName != null and tPaymentInfo.settleDomainName.trim() != ''">
				AND a.SETTLE_DOMAIN_NAME = #{tPaymentInfo.settleDomainName}
			</if>
			<if test="tPaymentInfo.settleDomainCode != null and tPaymentInfo.settleDomainCode.trim() != ''">
				AND a.SETTLE_DOMAIN_CODE = #{tPaymentInfo.settleDomainCode}
			</if>
			<if test="tPaymentInfo.unitName != null and tPaymentInfo.unitName.trim() != ''">
				AND a.UNIT_NAME = #{tPaymentInfo.unitName}
			</if>
			<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
				AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
			</if>
			<if test="tPaymentInfo.socialHousehold != null and tPaymentInfo.socialHousehold.trim() != ''">
				AND a.SOCIAL_HOUSEHOLD like CONCAT(#{tPaymentInfo.socialHousehold},'%')
			</if>
			<if test="tPaymentInfo.socialSecurityNo != null and tPaymentInfo.socialSecurityNo.trim() != ''">
				AND a.SOCIAL_SECURITY_NO like CONCAT(#{tPaymentInfo.socialSecurityNo},'%')
			</if>
			<if test="tPaymentInfo.socialPayAddr != null and tPaymentInfo.socialPayAddr.trim() != ''">
				AND a.SOCIAL_PAY_ADDR = #{tPaymentInfo.socialPayAddr}
			</if>
			<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
				AND (a.SOCIAL_PAY_MONTH = '${tPaymentInfo.socialPayMonth}' or a.PROVIDENT_PAY_MONTH = '${tPaymentInfo.socialPayMonth}')
			</if>
			<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
				AND (a.SOCIAL_CREATE_MONTH = '${tPaymentInfo.socialCreateMonth}' or a.PROVIDENT_CREATE_MONTH = '${tPaymentInfo.socialCreateMonth}')
			</if>
			<if test="tPaymentInfo.providentHousehold != null and tPaymentInfo.providentHousehold.trim() != ''">
				AND a.PROVIDENT_HOUSEHOLD like CONCAT(#{tPaymentInfo.providentHousehold},'%')
			</if>
			<if test="tPaymentInfo.providentPayAddr != null and tPaymentInfo.providentPayAddr.trim() != ''">
				AND a.PROVIDENT_PAY_ADDR = #{tPaymentInfo.providentPayAddr}
			</if>
			<if test="tPaymentInfo.fundProvince != null and tPaymentInfo.fundProvince.trim() != ''">
				AND a.FUND_PROVINCE = #{tPaymentInfo.fundProvince}
			</if>
			<if test="tPaymentInfo.fundCity != null and tPaymentInfo.fundCity.trim() != ''">
				AND a.FUND_CITY = #{tPaymentInfo.fundCity}
			</if>
			<if test="tPaymentInfo.fundTown != null and tPaymentInfo.fundTown.trim() != ''">
				AND a.FUND_TOWN = #{tPaymentInfo.fundTown}
			</if>
			<if test="tPaymentInfo.socialProvince != null and tPaymentInfo.socialProvince.trim() != ''">
				AND a.SOCIAL_PROVINCE = #{tPaymentInfo.socialProvince}
			</if>
			<if test="tPaymentInfo.socialCity != null and tPaymentInfo.socialCity.trim() != ''">
				AND a.SOCIAL_CITY = #{tPaymentInfo.socialCity}
			</if>
			<if test="tPaymentInfo.socialTown == null">
				<if test="tPaymentInfo.socialCity != null">
					AND (a.SOCIAL_CITY = '${tPaymentInfo.socialCity}' or a.FUND_CITY = '${tPaymentInfo.socialCity}')
				</if>
				<if test="tPaymentInfo.socialCity == null">
					<if test="tPaymentInfo.socialProvince != null">
						AND (a.SOCIAL_PROVINCE = '${tPaymentInfo.socialProvince}' or a.FUND_PROVINCE = '${tPaymentInfo.socialProvince}')
					</if>
				</if>
			</if>
			<if test="tPaymentInfo.socialTown != null and tPaymentInfo.socialTown.trim() != ''">
				AND (a.SOCIAL_TOWN = '${tPaymentInfo.socialTown}' or a.FUND_TOWN = '${tPaymentInfo.socialTown}')
			</if>
			<if test="tPaymentInfo.providentNo != null and tPaymentInfo.providentNo.trim() != ''">
				AND a.PROVIDENT_NO = #{tPaymentInfo.providentNo}
			</if>
		</if>
		</if>
	</sql>

	<resultMap id="tPaymentAllInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.vo.TPaymentInfoVo">

		<id property="id" column="ID"/>
		<result property="empName" column="EMP_NAME"/>
		<result property="empNo" column="EMP_NO"/>
		<result property="empId" column="EMP_ID"/>
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="unitId" column="UNIT_ID"/>
		<result property="unitName" column="UNIT_NAME"/>
		<result property="settleDomainName" column="SETTLE_DOMAIN_NAME"/>
		<result property="settleDomainCode" column="SETTLE_DOMAIN_CODE"/>
		<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
		<result property="socialHousehold" column="SOCIAL_HOUSEHOLD"/>
		<result property="socialSecurityNo" column="SOCIAL_SECURITY_NO"/>
		<result property="socialPayAddr" column="SOCIAL_PAY_ADDR"/>
		<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
		<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
		<result property="lockStatus" column="LOCK_STATUS"/>
		<result property="sumAll" column="SUM_ALL"/>
		<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
		<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
		<result property="providentHousehold" column="PROVIDENT_HOUSEHOLD"/>
		<result property="providentPayAddr" column="PROVIDENT_PAY_ADDR"/>
		<result property="socialId" column="SOCIAL_ID"/>
		<result property="fundId" column="FUND_ID"/>
		<result property="socialSum" column="SOCIAL_SUM"/>
		<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
		<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
		<result property="providentSum" column="PROVIDENT_SUM"/>

		<result property="companyAccrual" column="COMPANY_ACCRUAL"/>
		<result property="personalAccrual" column="PERSONAL_ACCRUAL"/>
		<result property="unitPensionSet" column="UNIT_PENSION_SET"/>
		<result property="unitMedicalSet" column="UNIT_MEDICAL_SET"/>
		<result property="unitUnemploymentSet" column="UNIT_UNEMPLOYMENT_SET"/>
		<result property="unitInjurySet" column="UNIT_INJURY_SET"/>
		<result property="unitBirthSet" column="UNIT_BIRTH_SET"/>
		<result property="unitPensionPer" column="UNIT_PENSION_PER"/>
		<result property="unitMedicalPer" column="UNIT_MEDICAL_PER"/>
		<result property="unitUnemploymentPer" column="UNIT_UNEMPLOYMENT_PER"/>
		<result property="unitInjuryPer" column="UNIT_INJURY_PER"/>
		<result property="unitBirthPer" column="UNIT_BIRTH_PER"/>
		<result property="personalPensionPer" column="PERSONAL_PENSION_PER"/>
		<result property="personalMedicalPer" column="PERSONAL_MEDICAL_PER"/>
		<result property="personalUnemploymentPer" column="PERSONAL_UNEMPLOYMENT_PER"/>
		<result property="unitBigailmentPer" column="UNIT_BIGAILMENT_PER"/>
		<result property="personalBigailmentPer" column="PERSONAL_BIGAILMENT_PER"/>
		<result property="unitPensionMoney" column="UNIT_PENSION_MONEY"/>
		<result property="unitMedicalMoney" column="UNIT_MEDICAL_MONEY"/>
		<result property="unitUnemploymentMoney" column="UNIT_UNEMPLOYMENT_MONEY"/>
		<result property="unitInjuryMoney" column="UNIT_INJURY_MONEY"/>
		<result property="unitBirthMoney" column="UNIT_BIRTH_MONEY"/>
		<result property="unitBigmailmentMoney" column="UNIT_BIGMAILMENT_MONEY"/>
		<result property="personalPensionMoney" column="PERSONAL_PENSION_MONEY"/>
		<result property="personalMedicalMoney" column="PERSONAL_MEDICAL_MONEY"/>
		<result property="personalUnemploymentMoney" column="PERSONAL_UNEMPLOYMENT_MONEY"/>
		<result property="personalBigmailmentMoney" column="PERSONAL_BIGMAILMENT_MONEY"/>
		<result property="socialSum" column="SOCIAL_SUM"/>
		<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
		<result property="socialSecurityPersonalSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
		<result property="socialProvince" column="SOCIAL_PROVINCE"/>
		<result property="socialCity" column="SOCIAL_CITY"/>
		<result property="socialTown" column="SOCIAL_TOWN"/>
		<result property="createBy" column="CREATE_BY"/>
		<result property="createName" column="CREATE_NAME"/>
		<result property="createTime" column="CREATE_TIME"/>
		<result property="updateBy" column="UPDATE_BY"/>
		<result property="updateTime" column="UPDATE_TIME"/>

		<result property="providentNo" column="PROVIDENT_NO"/>
		<result property="unitProvidentSet" column="UNIT_PROVIDENT_SET"/>
		<result property="providentPercent" column="PROVIDENT_PERCENT"/>
		<result property="unitProvidentSum" column="UNIT_PROVIDENT_SUM"/>
		<result property="personalProidentSet" column="PERSONAL_PROIDENT_SET"/>
		<result property="personalProvidentSum" column="PERSONAL_PROVIDENT_SUM"/>
		<result property="providentSum" column="PROVIDENT_SUM"/>
		<result property="fundProvince" column="FUND_PROVINCE"/>
		<result property="fundCity" column="FUND_CITY"/>
		<result property="fundTown" column="FUND_TOWN"/>
		<result property="inauguralTeam" column="INAUGURAL_TEAM"/>
	</resultMap>
	<!--tPaymentInfo简单分页查询-->
	<select id="getTPaymentInfoPage" resultMap="tPaymentInfoMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_payment_info a
		<where>
			1=1
			<include refid="tPaymentInfo_where"/>
		</where>
		ORDER BY a.CREATE_TIME desc
	</select>

	<!--tPaymentInfo不分页查询-->
	<select id="getTPaymentInfoNoPage" resultMap="tPaymentInfoMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_payment_info a
		<where>
			1=1
			<include refid="tPaymentInfo_export_where"/>
		</where>
		ORDER BY a.CREATE_TIME desc
		limit #{tPaymentInfo.limitStart},#{tPaymentInfo.limitEnd}
	</select>

	<!--tPaymentInfo数量查询-->
	<select id="selectCountTPaymentInfo" resultType="java.lang.Integer">
		SELECT
		count(1)
		FROM t_payment_info a
		<where>
			1=1
			<include refid="tPaymentInfo_export_where"/>
		</where>
	</select>

	<!--tPaymentInfo合并查询-->
	<select id="getTPaymentInfoSumNoPage" resultMap="tPaymentInfoSumMap">
		SELECT
		w.keyGroup,
		w.EMP_IDCARD,
		w.EMP_NO,
		w.EMP_NAME,
		w.UNIT_NAME,
		w.SETTLE_DOMAIN_CODE,
		w.SETTLE_DOMAIN_NAME,
		w.SOCIAL_HOUSEHOLD,
		w.SOCIAL_SECURITY_NO,
		w.SOCIAL_PAY_ADDR,
		w.SOCIAL_PAY_MONTH,
		w.SOCIAL_CREATE_MONTH,
		SUM( w.PERSONAL_PROVIDENT_SUM) AS PERSONAL_PROVIDENT_SUM,
		SUM( w.SUM_ALL ) AS SUM_ALL,
		MAX( w.PROVIDENT_PAY_MONTH ) AS PROVIDENT_PAY_MONTH,
		MAX( w.PROVIDENT_CREATE_MONTH ) AS PROVIDENT_CREATE_MONTH,
		MAX( w.PROVIDENT_HOUSEHOLD ) AS PROVIDENT_HOUSEHOLD,
		MAX( w.PROVIDENT_PAY_ADDR ) AS PROVIDENT_PAY_ADDR,
		MAX( w.FUND_PROVINCE ) AS FUND_PROVINCE,
		MAX( w.FUND_CITY ) AS FUND_CITY,
		MAX( w.FUND_TOWN ) AS FUND_TOWN,
		w.SOCIAL_PROVINCE,
		w.SOCIAL_CITY,
		w.SOCIAL_TOWN,
		w.SOCIAL_SUM,
		w.UNIT_SOCIAL_SUM,
		w.SOCIAL_SECURITY_PERSONAL_SUM,
		SUM( w.PROVIDENT_SUM ) AS PROVIDENT_SUM,
		w.INAUGURAL_TEAM,
		w.COMPANY_ACCRUAL,
		w.PERSONAL_ACCRUAL,
		w.UNIT_PENSION_SET,
		w.UNIT_MEDICAL_SET,
		w.UNIT_UNEMPLOYMENT_SET,
		w.UNIT_INJURY_SET,
		w.UNIT_BIRTH_SET,
		w.UNIT_PENSION_MONEY,
		w.UNIT_MEDICAL_MONEY,
		w.UNIT_UNEMPLOYMENT_MONEY,
		w.UNIT_INJURY_MONEY,
		w.UNIT_BIRTH_MONEY,
		w.UNIT_BIGMAILMENT_MONEY,
		w.PERSONAL_PENSION_MONEY,
		w.PERSONAL_MEDICAL_MONEY,
		w.PERSONAL_UNEMPLOYMENT_MONEY,
		w.PERSONAL_BIGMAILMENT_MONEY,
		MAX( w.PROVIDENT_NO ) AS PROVIDENT_NO,
		MAX( w.PERSONAL_PROIDENT_SET ) AS PERSONAL_PROIDENT_SET,
		SUM( w.UNIT_PROVIDENT_SET ) AS UNIT_PROVIDENT_SET,
		SUM( w.PROVIDENT_PERCENT ) AS PROVIDENT_PERCENT,
		w.SOCIAL_CREATE_NAME,
		w.SOCIAL_CREATE_TIME,
		MAX( w.FUND_CREATE_NAME ) AS FUND_CREATE_NAME,
		MAX( w.FUND_CREATE_TIME ) AS FUND_CREATE_TIME,
		SUM( w.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM
		FROM (
		(SELECT
		CONCAT( a.EMP_IDCARD, '_', a.SOCIAL_PAY_MONTH, '_', a.SOCIAL_CREATE_MONTH ) AS keyGroup,
		a.EMP_NAME,
		a.EMP_NO,
		a.EMP_IDCARD,
		a.UNIT_NAME,
		a.SETTLE_DOMAIN_CODE,
		a.SETTLE_DOMAIN_NAME,
		a.SOCIAL_HOUSEHOLD,
		a.SOCIAL_SECURITY_NO,
		a.SOCIAL_PAY_ADDR,
		a.SOCIAL_PAY_MONTH,
		a.SOCIAL_CREATE_MONTH,
		a.PERSONAL_PROVIDENT_SUM,
		SUM( a.SUM_ALL ) AS SUM_ALL,
		a.PROVIDENT_PAY_MONTH,
		a.PROVIDENT_CREATE_MONTH,
		a.PROVIDENT_HOUSEHOLD,
		a.PROVIDENT_PAY_ADDR,
		a.FUND_PROVINCE,
		a.FUND_CITY,
		a.FUND_TOWN,
		a.SOCIAL_PROVINCE,
		a.SOCIAL_CITY,
		a.SOCIAL_TOWN,
		SUM( a.SOCIAL_SUM ) AS SOCIAL_SUM,
		SUM( a.UNIT_SOCIAL_SUM ) AS UNIT_SOCIAL_SUM,
		SUM( a.SOCIAL_SECURITY_PERSONAL_SUM ) AS SOCIAL_SECURITY_PERSONAL_SUM,
		a.PROVIDENT_SUM,
		a.INAUGURAL_TEAM,
		SUM( a.COMPANY_ACCRUAL ) AS COMPANY_ACCRUAL,
		SUM( a.PERSONAL_ACCRUAL ) AS PERSONAL_ACCRUAL,
		MAX(a.UNIT_PENSION_SET ) AS UNIT_PENSION_SET,
		MAX(a.UNIT_MEDICAL_SET ) AS UNIT_MEDICAL_SET,
		MAX(a.UNIT_UNEMPLOYMENT_SET ) AS UNIT_UNEMPLOYMENT_SET,
		MAX(a.UNIT_INJURY_SET ) AS UNIT_INJURY_SET,
		MAX(a.UNIT_BIRTH_SET ) AS UNIT_BIRTH_SET,
		SUM( a.UNIT_PENSION_MONEY ) AS UNIT_PENSION_MONEY,
		SUM( a.UNIT_MEDICAL_MONEY ) AS UNIT_MEDICAL_MONEY,
		SUM( a.UNIT_UNEMPLOYMENT_MONEY ) AS UNIT_UNEMPLOYMENT_MONEY,
		SUM( a.UNIT_INJURY_MONEY ) AS UNIT_INJURY_MONEY,
		SUM( a.UNIT_BIRTH_MONEY ) AS UNIT_BIRTH_MONEY,
		SUM( a.UNIT_BIGMAILMENT_MONEY ) AS UNIT_BIGMAILMENT_MONEY,
		SUM( a.PERSONAL_PENSION_MONEY ) AS PERSONAL_PENSION_MONEY,
		SUM( a.PERSONAL_MEDICAL_MONEY ) AS PERSONAL_MEDICAL_MONEY,
		SUM( a.PERSONAL_UNEMPLOYMENT_MONEY ) AS PERSONAL_UNEMPLOYMENT_MONEY,
		SUM( a.PERSONAL_BIGMAILMENT_MONEY ) AS PERSONAL_BIGMAILMENT_MONEY,
		a.PROVIDENT_NO,
		a.UNIT_PROVIDENT_SET,
		a.PROVIDENT_PERCENT,
		a.PERSONAL_PROIDENT_SET,
		a.CREATE_NAME AS SOCIAL_CREATE_NAME,
		DATE_FORMAT(a.CREATE_TIME,'%Y-%m-%d') AS SOCIAL_CREATE_TIME,
		NULL AS FUND_CREATE_NAME,
		NULL AS FUND_CREATE_TIME,
		a.UNIT_PROVIDENT_SUM
		FROM t_payment_info a
		<where>
			a.SOCIAL_ID is not null
			<include refid="tPaymentInfo_export_where"/>
		</where>
		GROUP BY a.EMP_IDCARD,a.SOCIAL_PAY_MONTH,a.SOCIAL_CREATE_MONTH
		)
		union all
		(SELECT
		CONCAT( a.EMP_IDCARD, '_', a.PROVIDENT_PAY_MONTH, '_', a.PROVIDENT_CREATE_MONTH ) AS keyGroup,
		a.EMP_NAME,
		a.EMP_NO,
		a.EMP_IDCARD,
		a.UNIT_NAME,
		a.SETTLE_DOMAIN_CODE,
		a.SETTLE_DOMAIN_NAME,
		a.SOCIAL_HOUSEHOLD,
		a.SOCIAL_SECURITY_NO,
		a.SOCIAL_PAY_ADDR,
		a.SOCIAL_PAY_MONTH,
		a.SOCIAL_CREATE_MONTH,
		SUM(a.PERSONAL_PROVIDENT_SUM) AS PERSONAL_PROVIDENT_SUM,
		SUM( a.SUM_ALL ) AS SUM_ALL,
		a.PROVIDENT_PAY_MONTH,
		a.PROVIDENT_CREATE_MONTH,
		a.PROVIDENT_HOUSEHOLD,
		a.PROVIDENT_PAY_ADDR,
		a.FUND_PROVINCE,
		a.FUND_CITY,
		a.FUND_TOWN,
		a.SOCIAL_PROVINCE,
		a.SOCIAL_CITY,
		a.SOCIAL_TOWN,
		a.SOCIAL_SUM,
		a.UNIT_SOCIAL_SUM,
		a.SOCIAL_SECURITY_PERSONAL_SUM,
		SUM( a.PROVIDENT_SUM ) AS PROVIDENT_SUM,
		a.INAUGURAL_TEAM,
		a.COMPANY_ACCRUAL,
		a.PERSONAL_ACCRUAL,
		a.UNIT_PENSION_SET,
		a.UNIT_MEDICAL_SET,
		a.UNIT_UNEMPLOYMENT_SET,
		a.UNIT_INJURY_SET,
		a.UNIT_BIRTH_SET,
		a.UNIT_PENSION_MONEY,
		a.UNIT_MEDICAL_MONEY,
		a.UNIT_UNEMPLOYMENT_MONEY,
		a.UNIT_INJURY_MONEY,
		a.UNIT_BIRTH_MONEY,
		a.UNIT_BIGMAILMENT_MONEY,
		a.PERSONAL_PENSION_MONEY,
		a.PERSONAL_MEDICAL_MONEY,
		a.PERSONAL_UNEMPLOYMENT_MONEY,
		a.PERSONAL_BIGMAILMENT_MONEY,
		a.PROVIDENT_NO,
		a.UNIT_PROVIDENT_SET,
		a.PROVIDENT_PERCENT,
		a.PERSONAL_PROIDENT_SET,
		NULL AS SOCIAL_CREATE_NAME,
		NULL AS SOCIAL_CREATE_TIME,
		a.CREATE_NAME AS FUND_CREATE_NAME,
		DATE_FORMAT(a.CREATE_TIME,'%Y-%m-%d') AS FUND_CREATE_TIME,
		SUM( a.UNIT_PROVIDENT_SUM ) AS UNIT_PROVIDENT_SUM
		FROM t_payment_info a
		<where>
			a.FUND_ID is not null
			<include refid="tPaymentInfo_export_where"/>
		</where>
		GROUP BY a.EMP_IDCARD,a.PROVIDENT_PAY_MONTH,a.PROVIDENT_CREATE_MONTH
		)
		) w
		GROUP BY w.keyGroup
		ORDER BY w.SOCIAL_CREATE_TIME desc
		limit #{tPaymentInfo.limitStart},#{tPaymentInfo.limitEnd}
	</select>

	<!--tPaymentInfo数量查询-->
	<select id="selectCountSumPaymentInfo" resultType="java.lang.Integer">
		SELECT
		count(1)
		FROM (
		select * from (
		(SELECT
		CONCAT( a.EMP_IDCARD, '_', a.SOCIAL_PAY_MONTH, '_', a.SOCIAL_CREATE_MONTH ) AS keyGroup
		FROM t_payment_info a
		<where>
			a.SOCIAL_ID is not null
			<include refid="tPaymentInfo_export_where"/>
		</where>
		GROUP BY a.EMP_IDCARD,a.SOCIAL_PAY_MONTH,a.SOCIAL_CREATE_MONTH
		)
		union all
		(SELECT
		CONCAT( a.EMP_IDCARD, '_', a.PROVIDENT_PAY_MONTH, '_', a.PROVIDENT_CREATE_MONTH ) AS keyGroup
		FROM t_payment_info a
		<where>
			a.FUND_ID is not null
			<include refid="tPaymentInfo_export_where"/>
		</where>
		GROUP BY a.EMP_IDCARD,a.PROVIDENT_PAY_MONTH,a.PROVIDENT_CREATE_MONTH
		)
		) w
		GROUP BY w.keyGroup) c
	</select>

	<update id="updateDeleteInfo">
		update t_payment_info
		<trim prefix="SET" suffixOverrides=",">
			<if test="tPaymentInfo != null">
				<if test="tPaymentInfo.sumAll != null">
					SUM_ALL = #{tPaymentInfo.sumAll},
				</if>
				<if test="tPaymentInfo.socialSum != null">
					SOCIAL_SUM = #{tPaymentInfo.socialSum},
				</if>
				<if test="tPaymentInfo.unitSocialSum != null">
					UNIT_SOCIAL_SUM = #{tPaymentInfo.unitSocialSum},
				</if>
				<if test="tPaymentInfo.socialSecurityPersonalSum != null">
					SOCIAL_SECURITY_PERSONAL_SUM = #{tPaymentInfo.socialSecurityPersonalSum},
				</if>
				<if test="tPaymentInfo.socialHousehold != null">
					SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold},
				</if>
				<if test="tPaymentInfo.socialHousehold == null">
					SOCIAL_HOUSEHOLD = #{tPaymentInfo.socialHousehold},
				</if>
				<if test="tPaymentInfo.providentSum != null ">
					PROVIDENT_SUM = #{tPaymentInfo.providentSum},
				</if>
				<if test="tPaymentInfo.providentHousehold != null">
					PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold},
				</if>
				<if test="tPaymentInfo.providentHousehold == null">
					PROVIDENT_HOUSEHOLD = #{tPaymentInfo.providentHousehold},
				</if>
				<if test="tPaymentInfo.socialId != ''">
					SOCIAL_ID = #{tPaymentInfo.socialId},
				</if>
				<if test="tPaymentInfo.fundId != ''">
					FUND_ID = #{tPaymentInfo.fundId},
				</if>
				<if test="tPaymentInfo.unitId != null">
					UNIT_ID = #{tPaymentInfo.unitId},
				</if>
				<if test="tPaymentInfo.settleDomainId != null">
					SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId},
				</if>
			</if>
		</trim>
		where ID = #{tPaymentInfo.id}
	</update>

	<!--tPaymentInfo 按ID查收缴费库包含社保和公积金明细的数据查询-->
	<select id="getAllInfoById" resultMap="tPaymentAllInfoMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_payment_info a
		where a.ID = #{id}
	</select>

	<select id="selectListForPaymentImport" resultMap="tPaymentInfoMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_payment_info a
		where 1=1
		<if test="months != null and months.size > 0">
			AND a.SOCIAL_PAY_MONTH in
			<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>
		<if test="idcards != null and idcards.size > 0">
			AND a.EMP_IDCARD IN
			<foreach item="item" index="index" collection="idcards" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>
	</select>

	<select id="selectListForPaymentImport1" resultMap="tPaymentInfoMap">
		SELECT
		<include refid="Base_Column_List"/>
		FROM t_payment_info a
		where 1=1
		<if test="months != null and months.size > 0">
			AND a.PROVIDENT_PAY_MONTH in
			<foreach item="item" index="index" collection="months" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>
		<if test="idcards != null and idcards.size > 0">
			AND a.EMP_IDCARD IN
			<foreach item="item" index="index" collection="idcards" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>
	</select>

	<!--tPaymentInfo 查询缴费库要删除的数据-->
	<select id="selectListForDelete" resultType="com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo">
		select
		<include refid="Base_Column_List"/>
		from t_payment_info
		<where>
			1=1
			<if test="queryEntity != null">
				<if test="queryEntity.createUser != null and queryEntity.createUser.trim() != ''">
					AND CREATE_BY = #{queryEntity.createBy}
				</if>
				<if test="queryEntity.socialCreateMonth != null and queryEntity.socialCreateMonth.trim() != ''">
					AND SOCIAL_CREATE_MONTH = #{queryEntity.socialCreateMonth}
				</if>
				<if test="queryEntity.providentCreateMonth != null and queryEntity.providentCreateMonth.trim() != ''">
					AND PROVIDENT_CREATE_MONTH = #{queryEntity.providentCreateMonth}
				</if>
				<if test="queryEntity.settleDomainId != null and queryEntity.settleDomainId.trim() != ''">
					AND SETTLE_DOMAIN_ID = #{queryEntity.settleDomainId}
				</if>
				<if test="queryEntity.unitId != null and queryEntity.unitId.trim() != ''">
					AND UNIT_ID = #{queryEntity.unitId}
				</if>
				<if test="queryEntity.empIdcard != null and queryEntity.empIdcard.trim() != ''">
					AND EMP_IDCARD = #{queryEntity.empIdcard}
				</if>
				<if test="queryEntity.socialHousehold != null and queryEntity.socialHousehold.trim() != ''">
					AND SOCIAL_HOUSEHOLD = #{queryEntity.socialHousehold}
				</if>
				<if test="queryEntity.providentHousehold != null and queryEntity.providentHousehold.trim() != ''">
					AND PROVIDENT_HOUSEHOLD = #{queryEntity.providentHousehold}
				</if>
				AND CREATE_TIME > DATE_ADD(curdate(),interval -day(curdate())+1 day)
			</if>
		</where>
	</select>

	<!--洪光武2022-8-10 18:05:42-->
	<resultMap id="tPaymentBySalaryMap" type="com.yifu.cloud.plus.v1.yifu.salary.vo.TPaymentBySalaryVo">
		<id property="id" column="ID"/>
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="unitBitmailmentFee" column="UNIT_BIGMAILMENT_MONEY"/>
		<result property="unitSocialSum" column="UNIT_SOCIAL_SUM"/>
		<result property="personalSocialSum" column="SOCIAL_SECURITY_PERSONAL_SUM"/>
		<result property="unitFundSum" column="UNIT_PROVIDENT_SUM"/>
		<result property="personalFundSum" column="PERSONAL_PROVIDENT_SUM"/>
		<result property="salarySocialFlag" column="SALARY_SOCIAL_FLAG"/>
		<result property="salaryFundFlag" column="SALARY_FUND_FLAG"/>
		<result property="socialPayMonth" column="SOCIAL_PAY_MONTH"/>
		<result property="socialCreateMonth" column="SOCIAL_CREATE_MONTH"/>
		<result property="providentPayMonth" column="PROVIDENT_PAY_MONTH"/>
		<result property="providentCreateMonth" column="PROVIDENT_CREATE_MONTH"/>
		<result property="settleDomainId" column="SETTLE_DOMAIN_ID"/>
	</resultMap>

	<!-- 薪资获取缴费库 -->
	<select id="selectTPaymentBySalaryVo" resultMap="tPaymentBySalaryMap">
		SELECT
		a.id,
		a.EMP_IDCARD,
		ifnull(a.UNIT_BIGMAILMENT_MONEY,0) UNIT_BIGMAILMENT_MONEY,
		ifnull(a.UNIT_SOCIAL_SUM,0) UNIT_SOCIAL_SUM,
		ifnull(a.SOCIAL_SECURITY_PERSONAL_SUM,0) SOCIAL_SECURITY_PERSONAL_SUM,
		ifnull(a.UNIT_PROVIDENT_SUM,0) UNIT_PROVIDENT_SUM,
		ifnull(a.PERSONAL_PROVIDENT_SUM,0) PERSONAL_PROVIDENT_SUM,
		a.SALARY_SOCIAL_FLAG,
		a.SALARY_FUND_FLAG,
		a.SOCIAL_PAY_MONTH,
		a.SOCIAL_CREATE_MONTH,
		a.PROVIDENT_PAY_MONTH,
		a.PROVIDENT_CREATE_MONTH,
		a.SETTLE_DOMAIN_ID
		FROM t_payment_info a
		<where>
			1=1
			<if test="tPaymentInfo != null">
				<if test="tPaymentInfo.socialPayMonth != null and tPaymentInfo.socialPayMonth.trim() != ''">
					AND a.SOCIAL_PAY_MONTH = #{tPaymentInfo.socialPayMonth}
				</if>
				<if test="tPaymentInfo.socialCreateMonth != null and tPaymentInfo.socialCreateMonth.trim() != ''">
					AND a.SOCIAL_CREATE_MONTH = #{tPaymentInfo.socialCreateMonth}
				</if>
				<if test="tPaymentInfo.providentPayMonth != null and tPaymentInfo.providentPayMonth.trim() != ''">
					AND a.PROVIDENT_PAY_MONTH = #{tPaymentInfo.providentPayMonth}
				</if>
				<if test="tPaymentInfo.providentCreateMonth != null and tPaymentInfo.providentCreateMonth.trim() != ''">
					AND a.PROVIDENT_CREATE_MONTH = #{tPaymentInfo.providentCreateMonth}
				</if>
				<if test="tPaymentInfo.settleDomainId != null and tPaymentInfo.settleDomainId.trim() != ''">
					AND a.SETTLE_DOMAIN_ID = #{tPaymentInfo.settleDomainId}
				</if>
			</if>
		</where>
	</select>

	<!-- 更改薪资社保结算状态 -->
	<update id="updatePaymentSocialStatusByIdList">
		update t_payment_info set SALARY_SOCIAL_FLAG = #{status}
		where
		ID in
		<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<!-- 更改薪资公积金结算状态 -->
	<update id="updatePaymentFundStatusByIdList">
		update t_payment_info
		set SALARY_FUND_FLAG = #{status}
		where
		ID in
		<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

	<!-- 更改薪资公积金结算状态 -->
	<update id="updatePaymentSocialAndFound">
		update t_payment_info
		set UNIT_ID = #{infoVo.unitId},
		UNIT_NAME = #{infoVo.unitName},
		SETTLE_DOMAIN_NAME = #{infoVo.settleDomainName},
		SETTLE_DOMAIN_CODE = #{infoVo.settleDomainCode},
		SETTLE_DOMAIN_ID = #{infoVo.settleDomainId}
		where
			((SALARY_SOCIAL_FLAG = '0' and SOCIAL_CREATE_MONTH >= #{infoVo.socialCreateMonth}) or
			(SALARY_FUND_FLAG = '0' and PROVIDENT_CREATE_MONTH >= #{infoVo.socialCreateMonth}))
			and PUSH_STATUS = '1' and EMP_IDCARD = #{infoVo.empIdcard}
	</update>

	<!-- 更改薪资公积金结算状态 -->
	<update id="updateByIncome">
		update t_payment_info
		set INCOME_STATUS = '0'
		where
			ID = #{id}
	</update>

	<!-- 更改社保推送结算状态 -->
	<update id="updatePushStatus">
		update t_payment_info
		set PUSH_STATUS = 0
		where
		ID in
		<foreach item="item" index="index" collection="idList" open="(" separator="," close=")">
			#{item}
		</foreach>
	</update>

</mapper>
