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

	<resultMap id="tAverageSalaryMap" type="com.yifu.cloud.plus.v1.yifu.salary.entity.TAverageSalary">
		<id property="id" column="ID"/>
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="averageSalary" column="AVERAGE_SALARY"/>
		<result property="createMonth" column="CREATE_MONTH"/>
	</resultMap>

	<resultMap id="tAverageSalaryVoMap" type="com.yifu.cloud.plus.v1.yifu.salary.vo.TAverageSalaryVo">
		<result property="empIdcard" column="EMP_IDCARD"/>
		<result property="averageSalary" column="AVERAGE_SALARY"/>
	</resultMap>

	<!-- 删除不需要的数据 -->
	<delete id="deleteByCreateMonth">
		delete
		from t_average_salary
		where CREATE_MONTH in (
							   DATE_FORMAT(now(), '%Y%m'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y%m')
			)
	</delete>

	<!-- 生成需要的数据 -->
	<insert id="insertAverageSalary">
		insert into t_average_salary
		select CONCAT(DATE_FORMAT(now(), '%Y%m-'), a.ID)                                 ID
			 , a.EMP_IDCARD
			 , round(sum(a.RELAY_SALARY) / ifnull(count(DISTINCT a.SALARY_MONTH), 1), 2) AVERAGE_SALARY
			 , DATE_FORMAT(now(), '%Y%m')                                                CREATE_MONTH
		from t_salary_account a
		where a.DELETE_FLAG=0 and a.SALARY_MONTH >= date_format(DATE_SUB(NOW(), INTERVAL 1 YEAR), '%Y%m')
		GROUP BY a.EMP_IDCARD
	</insert>

	<select id="getAverageSalary" resultMap="tAverageSalaryVoMap">
		select x.* from
		(select a.EMP_IDCARD,a.AVERAGE_SALARY from view_average_cur_month a) x
		LEFT JOIN
		(select a.EMP_IDCARD,a.AVERAGE_SALARY from view_average_last_month a) y
		on x.EMP_IDCARD=y.EMP_IDCARD
		where (x.AVERAGE_SALARY <![CDATA[ <>  ]]> IFNULL(y.AVERAGE_SALARY,-1))
		<if test="idNum != null and idNum.size > 0">
			AND x.EMP_IDCARD in
			<foreach item="item" index="index" collection="idNum" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>
	</select>
</mapper>