<?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="org.springblade.mapper.EmployeeTrainingRecordMapper">
<update id="timingEliminateInfo">
update blade_employee_training_record set month_duration=''
</update>
<!--年初清空培训记录年度时长-->
<update id="emptyYearDuration">
update blade_employee_training_record set year_duration=''
</update>
<select id="getPageEmployeeTrainingRecordList" parameterType="org.springblade.entity.EmployeeTrainingRecord" resultType="org.springblade.entity.EmployeeTrainingRecord">
select u.dept_id,u.account,u.real_name,e.department,e.entry_date,e.education_background,e.position,e.company,a.* from blade_employee_basic_information e LEFT JOIN blade_user u on e.id=u.id
left join blade_employee_training_record a on u.account =a.account
where u.tenant_id=#{bean.tenantId} and e.working_state='0'
<if test="bean.userName != null and bean.userName !=''">
and u.real_name like '%%${bean.userName}%%'
</if>
<if test="bean.account != null and bean.account !=''">
and u.account like '%%${bean.account}%%'
</if>
<if test="bean.department != null and bean.department !=''">
and e.department like '%%${bean.department}%%'
</if>
<if test="bean.company != null and bean.company !=''">
and e.company like '%%${bean.company}%%'
</if>
</select>
<select id="getOneInfo" resultType="org.springblade.entity.EmployeeTrainingRecord">
select u.account,u.real_name,e.department,e.entry_date,e.education_background,e.position,a.* from blade_employee_basic_information e LEFT JOIN blade_user u on e.id=u.id
left join blade_employee_training_record a on u.account =a.account
where u.tenant_id=#{tenantId} and u.account=#{account}
</select>
<select id="getDeptUser" resultType="org.springblade.entity.AllEmployeeBasicInformation">
select e.*,u.* from blade_employee_basic_information e left join blade_user u on e.id=u.id where e.tenant_id=#{tenantId} and e.department=#{department}
<if test="workingState !=null and workingState !='' ">
and e.working_state=#{workingState}
</if>
</select>
<!--查询当月在职人数-->
<select id="getEachMonthEmployees" resultType="org.springblade.entity.EmployeeBasicInformation">
select * from blade_employee_basic_information where tenant_id=#{tenantId} and working_state='0'
UNION
select * from blade_employee_basic_information where tenant_id=#{tenantId}
<if test="startDate !=null and startDate !='' ">
and last_working_day >= #{startDate}
</if>
<if test="endDate !=null and endDate !='' ">
and last_working_day <= #{endDate}
</if>
</select>
<!--根据部门部门id计算该部门每个月的培训时长-->
<select id="getTrainingRecordTotalByDeptId" resultType="java.lang.Double">
select IFNULL(sum(duration_time),0) from blade_employee_training_record_detail where tenant_id=#{tenantId}
<if test="deptId !=null and deptId !='' ">
and dept_id =#{deptId}
</if>
<if test="startDate !=null and startDate !='' ">
and end_training_date >= #{startDate}
</if>
<if test="endDate !=null and endDate !='' ">
and end_training_date <= #{endDate}
</if>
</select>
<!--根据部门id查询当前部门在职人数-->
<select id="getDeptUserByDeptId" resultType="org.springblade.entity.AllEmployeeBasicInformation">
select a.department,b.real_name,b.account,a.last_working_day from blade_employee_basic_information a left join blade_user b on a.id=b.id where a.tenant_id=#{tenantId}
and (a.last_working_day is null or trim(a.last_working_day)='') and b.dept_id like '%%${deptId}%%'
UNION
select c.department,d.real_name,d.account,c.last_working_day from blade_employee_basic_information c left join blade_user d on c.id=d.id where c.tenant_id=#{tenantId}
and d.dept_id like '%%${deptId}%%'
<if test="startDate !=null and startDate !='' ">
and c.last_working_day >= #{startDate}
</if>
<if test="endDate !=null and endDate !='' ">
and c.last_working_day <= #{endDate}
</if>
</select>
<!--查询公司当前在职人数-->
<select id="getOnJobPerson" resultType="java.lang.Integer">
select count(*) from blade_employee_basic_information where working_state='0' and tenant_id=#{tenantId}
</select>
<!--根据租户id获取员工基本信息-->
<select id="getEmployeeMsg" resultType="org.springblade.entity.AllEmployeeBasicInformation">
select e.*,u.* from blade_employee_basic_information e left join blade_user u on e.id=u.id where u.tenant_id=#{tenantId}
and e.working_state='0'
<if test="startDate !=null and startDate !='' ">
and e.entry_date >= #{startDate}
</if>
</select>
<!--获取员工培训记录时长,根据开始和结束时间区间-->
<select id="getEmployeeTrainingHours" resultType="java.lang.Double">
select IFNULL(sum(duration_time),0) from blade_employee_training_record_detail where tenant_id=#{tenantId}
<if test="account !=null and account !='' ">
and account =#{account}
</if>
<if test="startDate !=null and startDate !='' ">
and end_training_date >= #{startDate}
</if>
<if test="endDate !=null and endDate !='' ">
and end_training_date <= #{endDate}
</if>
</select>
<!--根据人员名称获取员工信息-->
<select id="getUserInfoByUserName" resultType="java.util.Map">
select a.*,b.entry_date from blade_user a left join blade_employee_basic_information b on b.id=a.id where a.real_name=#{userName} and a.is_deleted=0
</select>
</mapper>