guardia-hrm/backend/target/classes/mapper/OrgMapper.xml

55 lines
2.0 KiB
XML

<?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.zioinfo.hrm.organization.OrgMapper">
<select id="findAllDepts" resultType="map">
SELECT d.id, d.dept_code, d.dept_name, d.parent_id,
p.dept_name AS parent_name, d.manager_emp_id,
e.name AS manager_name, d.sort_order, d.active,
(SELECT COUNT(*) FROM hrm_employees emp WHERE emp.department_id = d.id AND emp.status='ACTIVE') AS headcount
FROM hrm_departments d
LEFT JOIN hrm_departments p ON d.parent_id = p.id
LEFT JOIN hrm_employees e ON d.manager_emp_id = e.id
WHERE d.active = true
ORDER BY d.sort_order, d.id
</select>
<insert id="insertDept">
INSERT INTO hrm_departments (dept_code, dept_name, parent_id, manager_emp_id, sort_order)
VALUES (#{deptCode}, #{deptName}, #{parentId}, #{managerEmpId}, #{sortOrder})
</insert>
<update id="updateDept">
UPDATE hrm_departments SET
dept_name=#{deptName}, parent_id=#{parentId},
manager_emp_id=#{managerEmpId}, sort_order=#{sortOrder}
WHERE id=#{id}
</update>
<update id="deleteDept">
UPDATE hrm_departments SET active=false WHERE id=#{id}
</update>
<select id="findAllPositions" resultType="map">
SELECT id, position_code, position_name, sort_order
FROM hrm_positions WHERE active=true ORDER BY sort_order
</select>
<insert id="insertPosition">
INSERT INTO hrm_positions (position_code, position_name, sort_order)
VALUES (#{positionCode}, #{positionName}, #{sortOrder})
</insert>
<select id="findAllGrades" resultType="map">
SELECT id, grade_code, grade_name, grade_level, sort_order
FROM hrm_grades WHERE active=true ORDER BY grade_level
</select>
<insert id="insertGrade">
INSERT INTO hrm_grades (grade_code, grade_name, grade_level, sort_order)
VALUES (#{gradeCode}, #{gradeName}, #{gradeLevel}, #{sortOrder})
</insert>
</mapper>