zouyu
2025-03-19 3647aa5008055528f075ee73002542a1399575ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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.personnel.mapper.PersonJobResponsibilitiesMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.personnel.pojo.PersonJobResponsibilities">
        <id column="id" property="id" />
        <result column="post_name" property="postName" />
        <result column="job_objective" property="jobObjective" />
        <result column="job_responsibilities" property="jobResponsibilities" />
        <result column="incumbent_id" property="incumbentId" />
        <result column="submitting_operator" property="submittingOperator" />
        <result column="submitting_date" property="submittingDate" />
        <result column="supervisor_id" property="supervisorId" />
        <result column="incumbent_operator" property="incumbentOperator" />
        <result column="incumbent_date" property="incumbentDate" />
        <result column="supervisor_operator" property="supervisorOperator" />
        <result column="supervisor_date" property="supervisorDate" />
    </resultMap>
 
    <select id="personJobResponsibilitiesSelect" resultType="com.ruoyi.personnel.dto.PersonJobResponsibilitiesDto">
        select cpt.*, u.name incumbent_name, su.name supervisor_name, dl.name depart_lims_name, u.account
        from cnas_person_job_responsibilities cpt
        left join user u on cpt.incumbent_id = u.id
        left join user su on cpt.supervisor_id = su.id
        left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1)
        <where>
            <if test="userId != null and userId != ''">
                and cpt.incumbent_id = #{userId}
            </if>
            <if test="departmentId != null and departmentId != ''">
                and FIND_IN_SET(#{departmentId}, u.depart_lims_id)
            </if>
            <if test="userName != null and userName != ''">
                and u.name like concat('%', #{userName}, '%')
            </if>
        </where>
    </select>
</mapper>