<?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.ruoyi.staff.mapper.StaffOnJobMapper">
|
<select id="staffOnJobListPage" resultType="com.ruoyi.staff.dto.StaffOnJobDto">
|
SELECT
|
staff_on_job.id,
|
staff_on_job.staff_state,
|
staff_on_job.staff_no,
|
staff_on_job.staff_name,
|
staff_on_job.sex,
|
staff_on_job.native_place,
|
staff_on_job.sys_post_id,
|
staff_on_job.sys_dept_id,
|
staff_on_job.role_id,
|
staff_on_job.adress,
|
staff_on_job.first_study,
|
staff_on_job.profession,
|
staff_on_job.identity_card,
|
staff_on_job.age,
|
staff_on_job.phone,
|
staff_on_job.contract_term,
|
staff_on_job.contract_expire_time,
|
staff_on_job.trial_end_date,
|
staff_on_job.trial_start_date,
|
staff_on_job.sign_date,
|
staff_on_job.salary_select,
|
staff_on_job.pro_salary,
|
staff_on_job.date_select,
|
staff_on_job.remark,
|
staff_on_job.create_time,
|
staff_on_job.create_user,
|
staff_on_job.update_time,
|
staff_on_job.update_user,
|
staff_on_job.tenant_id,
|
staff_on_job.alias,
|
staff_on_job.birth_date,
|
staff_on_job.nation,
|
staff_on_job.marital_status,
|
staff_on_job.pro_term,
|
staff_on_job.positive_date,
|
staff_on_job.basic_salary,
|
staff_on_job.dept_id,
|
sp.post_name AS post_name,
|
sd.dept_name AS dept_name,
|
MIN(t1.contract_start_time) AS contract_start_time,
|
MAX(t1.contract_end_time) AS contract_end_time,
|
(
|
SELECT GROUP_CONCAT(sec.contact_name SEPARATOR ',')
|
FROM staff_emergency_contact sec
|
WHERE sec.staff_on_job_id = staff_on_job.id
|
) AS emergency_contact,
|
(
|
SELECT GROUP_CONCAT(sec.contact_phone SEPARATOR ',')
|
FROM staff_emergency_contact sec
|
WHERE sec.staff_on_job_id = staff_on_job.id
|
) AS emergency_contact_phone
|
FROM staff_on_job
|
LEFT JOIN sys_post sp ON sp.post_id = staff_on_job.sys_post_id
|
LEFT JOIN sys_dept sd ON sd.dept_id = staff_on_job.sys_dept_id
|
LEFT JOIN staff_contract AS t1 ON t1.staff_on_job_id = staff_on_job.id
|
<where>
|
<if test="staffOnJob.staffState != null">
|
AND staff_on_job.staff_state = #{staffOnJob.staffState}
|
</if>
|
<if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
|
AND staff_on_job.staff_name LIKE CONCAT('%',#{staffOnJob.staffName},'%')
|
</if>
|
<if test="staffOnJob.entryDateStart != null and staffOnJob.entryDateStart != '' ">
|
AND staff_on_job.contract_expire_time >= DATE_FORMAT(#{staffOnJob.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="staffOnJob.entryDateEnd != null and staffOnJob.entryDateEnd != '' ">
|
AND staff_on_job.contract_expire_time <= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d')
|
</if>
|
<if test="staffOnJob.sysDeptId != null">
|
AND staff_on_job.sys_dept_id = #{staffOnJob.sysDeptId}
|
</if>
|
</where>
|
GROUP BY staff_on_job.id
|
<if test="staffOnJob.contractStartTime != null">
|
HAVING MIN(t1.contract_start_time) = #{staffOnJob.contractStartTime}
|
</if>
|
</select>
|
<select id="staffOnJobList" resultType="com.ruoyi.staff.dto.StaffOnJobDto">
|
SELECT
|
staff_on_job.*,
|
sp.post_name as postName,
|
sd.dept_name as deptName
|
FROM staff_on_job
|
LEFT JOIN
|
sys_post sp ON sp.post_id = staff_on_job.sys_post_id
|
LEFT JOIN
|
sys_dept sd ON sd.dept_id = staff_on_job.sys_dept_id
|
where 1=1
|
<if test="staffOnJob.staffState != null">
|
AND staff_state = #{staffOnJob.staffState}
|
</if>
|
<if test="staffOnJob.staffName != null and staffOnJob.staffName != '' ">
|
AND staff_name LIKE CONCAT('%',#{staffOnJob.staffName},'%')
|
</if>
|
</select>
|
<!-- 统计指定日期的在职员工数 -->
|
<select id="countOnJobStaffByDate" resultType="java.lang.Integer">
|
SELECT COUNT(*)
|
FROM staff_on_job
|
WHERE staff_state = 1
|
AND DATE_FORMAT(create_time, '%Y-%m-%d') <= #{date}
|
</select>
|
|
<!-- 统计指定月份的新入职员工数 -->
|
<select id="countNewHireByMonth" resultType="java.lang.Integer">
|
SELECT COUNT(*)
|
FROM staff_on_job
|
WHERE staff_state = 1
|
AND DATE_FORMAT(create_time, '%Y-%m-%d') BETWEEN #{monthStart} AND #{monthEnd}
|
</select>
|
|
<select id="selectStaffByNickName" resultType="com.ruoyi.staff.pojo.StaffOnJob" parameterType="java.lang.String">
|
SELECT
|
id
|
nick_name AS staffName
|
FROM staff_on_job
|
WHERE del_flag = '0'
|
<choose>
|
<when test="staffName != null and staffName != ''">
|
AND nick_name = #{staffName}
|
</when>
|
<otherwise>
|
AND 1 = 0
|
</otherwise>
|
</choose>
|
LIMIT 1
|
</select>
|
</mapper>
|