| | |
| | | <mapper namespace="com.ruoyi.staff.mapper.StaffOnJobMapper"> |
| | | <select id="staffOnJobListPage" resultType="com.ruoyi.staff.dto.StaffOnJobDto"> |
| | | SELECT |
| | | staff_on_job.*, |
| | | sp.post_name as postName |
| | | 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.age, |
| | | staff_on_job.native_place, |
| | | staff_on_job.phone, |
| | | staff_on_job.role_id, |
| | | staff_on_job.adress, |
| | | staff_on_job.contract_expire_time, |
| | | sp.post_name as postName, |
| | | sd.dept_name as deptName, |
| | | sec.contact_name as emergency_contact, |
| | | sec.contact_phone as emergency_contact_phone |
| | | FROM staff_on_job |
| | | LEFT JOIN |
| | | sys_post sp ON sp.post_id = staff_on_job.sys_post_id |
| | | where 1=1 |
| | | 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 ( |
| | | SELECT |
| | | sec1.* |
| | | FROM staff_emergency_contact sec1 |
| | | INNER JOIN ( |
| | | SELECT |
| | | staff_on_job_id, |
| | | MAX(create_time) as max_create_time |
| | | FROM staff_emergency_contact |
| | | GROUP BY staff_on_job_id |
| | | ) sec2 ON sec1.staff_on_job_id = sec2.staff_on_job_id |
| | | AND sec1.create_time = sec2.max_create_time |
| | | ) sec ON sec.staff_on_job_id = staff_on_job.id |
| | | WHERE 1=1 |
| | | <if test="staffOnJob.staffState != null"> |
| | | AND staff_state = #{staffOnJob.staffState} |
| | | AND staff_state = #{staffOnJob.staffState} |
| | | </if> |
| | | <if test="staffOnJob.staffName != null and staffOnJob.staffName != '' "> |
| | | AND staff_name LIKE CONCAT('%',#{staffOnJob.staffName},'%') |
| | |
| | | AND contract_expire_time >= DATE_FORMAT(#{staffOnJob.entryDateStart},'%Y-%m-%d') |
| | | </if> |
| | | <if test="staffOnJob.entryDateEnd != null and staffOnJob.entryDateEnd != '' "> |
| | | AND contract_expire_time <= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d') |
| | | AND contract_expire_time <= DATE_FORMAT(#{staffOnJob.entryDateEnd},'%Y-%m-%d') |
| | | </if> |
| | | </select> |
| | | <select id="staffOnJobList" resultType="com.ruoyi.staff.dto.StaffOnJobDto"> |
| | | SELECT |
| | | staff_on_job.*, |
| | | sp.post_name as postName |
| | | 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} |
| | |
| | | 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> |