liyong
6 天以前 ed0d872dddf37672ceb9bc499099f65d63ed1ce3
src/main/resources/mapper/staff/StaffLeaveMapper.xml
@@ -18,15 +18,20 @@
        soj.emergency_contact as emergencyContact,
        soj.emergency_contact_phone as emergencyContactPhone,
        sp.post_name as postName,
        sd.dept_name as deptName
        sd.dept_name as deptName,
        se.education as first_study,
        se.major as profession
        FROM staff_leave
        LEFT JOIN
        staff_on_job soj ON soj.id = staff_leave.staff_on_job_id
        LEFT JOIN
        sys_post sp ON sp.post_id = soj.sys_post_id
        LEFT JOIN
        sys_dept sd ON sd.dept_id = soj.sys_dept_id
        where 1=1
        LEFT JOIN staff_on_job soj ON soj.id = staff_leave.staff_on_job_id
        LEFT JOIN sys_post sp ON sp.post_id = soj.sys_post_id
        LEFT JOIN sys_dept sd ON sd.dept_id = soj.sys_dept_id
        LEFT JOIN staff_education se ON se.staff_on_job_id = staff_leave.staff_on_job_id
        AND se.id = (
        SELECT MAX(se2.id)
        FROM staff_education se2
        WHERE se2.staff_on_job_id = staff_leave.staff_on_job_id
        )
        WHERE 1=1
        <if test="c.staffName != null and c.staffName != '' ">
            AND soj.staff_name LIKE CONCAT('%',#{c.staffName},'%')
        </if>
@@ -61,4 +66,24 @@
            AND soj.staff_name LIKE CONCAT('%',#{c.staffName},'%')
        </if>
    </select>
    <select id="staffLeaveReasonAnalytics" resultType="com.ruoyi.staff.dto.StaffLeaveDto">
        SELECT
        staff_leave.reason as reason,
        COUNT(*) as count
        FROM staff_leave
        LEFT JOIN
        staff_on_job soj ON soj.id = staff_leave.staff_on_job_id
        where 1=1
        GROUP BY staff_leave.reason
    </select>
    <!-- 统计指定月份的离职员工数 -->
    <select id="countLeaveByMonth" resultType="java.lang.Integer">
        SELECT COUNT(*)
        FROM staff_leave sl
        LEFT JOIN staff_on_job soj ON sl.staff_on_job_id = soj.id
        WHERE DATE_FORMAT(sl.create_time, '%Y-%m-%d') BETWEEN #{monthStart} AND #{monthEnd}
        AND soj.staff_state = 0
    </select>
</mapper>