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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?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.PersonTrainingRecordMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.personnel.pojo.PersonTrainingRecord">
        <id column="training_record_id" property="trainingRecordId" />
        <result column="user_id" property="userId" />
        <result column="course_id" property="courseId" />
        <result column="examination_results" property="examinationResults" />
    </resultMap>
 
    <select id="trainingAndAssessmentRecordsPage" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordDto">
        select cptr.*, u.account, u.name user_name, u.phone, r.role_name role_name
        from cnas_person_training_record cptr
                 left join user u on u.id = cptr.user_id
                 left join sys_user_role ur on ur.user_id = u.id
        left join sys_role r on ur.role_id=r.role_id
        where cptr.course_id = #{trainingDetailedId}
        <if test="userName != null and userName != ''">
            and u.name like concat('%', #{userName}, '%')
        </if>
    </select>
 
    <select id="personnelTrainingPersonnel" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordListDto">
        select u.name, u.account, dl.name depart_lims_name, cpbi.professional_title,
        cpbi.official_academic_redentials, cpbi.unit_time, u.id user_id
        from user u
        left join cnas_person_basic_info cpbi on cpbi.user_id = u.id
        left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1)
        where u.is_custom = 0
        <if test="userName != '' and userName != null and userName != 'null'">
            and u.name like concat('%', #{userName}, '%')
        </if>
        <if test="userId != null and userId != ''">
            and u.id = #{userId}
        </if>
        <if test="departLimsId != null and departLimsId != ''">
            and FIND_IN_SET(#{departLimsId}, u.depart_lims_id)
        </if>
    </select>
 
    <select id="queryPersonnelDetails" resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto">
        select cptd.training_date, cptd.training_content, cptd.class_hour, cptr.examination_results, cptd.remarks
        from cnas_person_training_record cptr
                 inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id
        <where>
            <if test="userId != null and userId != ''">
                and cptr.user_id = #{userId}
            </if>
        </where>
    </select>
 
    <!-- 根据详情id查询培训信息 -->
    <select id="selectListByTrainingDetailedId" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordDto">
        select cptr.*,
               u.name  userName,
               dl.name department
        from cnas_person_training_record cptr
                 left join user u on u.id = cptr.user_id
                 left join department_lims dl on find_in_set(dl.id, u.depart_lims_id) and dl.id != 1
        where cptr.course_id = #{trainingDetailedId}
    </select>
 
    <!-- 根据id查询人员信息 -->
    <select id="selectUserTraining" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordListDto">
        select u.name,
               u.account,
               dl.name                                    depart_lims_name,
               cpbi.professional_title,
               cpbi.official_academic_redentials,
               cpbi.unit_time,
               cpbi.major1,
               u.id                                       user_id,
               DATE_FORMAT(cpbi.unit_time, '%Y-%m-%d') AS unitTimeSting
        from user u
                 left join cnas_person_basic_info cpbi on cpbi.user_id = u.id
                 left join department_lims dl on dl.id = SUBSTRING_INDEX(SUBSTRING_INDEX(u.depart_lims_id, ',', -2), ',', 1)
        where u.is_custom = 0
        and u.id = #{userId}
    </select>
 
    <!-- 根据用户id查询人员记录 -->
    <select id="selectPersonDetailedDtos" resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto">
        select cptd.training_date,
               cptd.training_content,
               cptd.class_hour,
               cptr.examination_results,
               cptd.remarks,
               DATE_FORMAT(cptd.training_date, '%Y-%m-%d') AS trainingDateString
        from cnas_person_training_record cptr
                 inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id
            and cptr.user_id = #{userId}
        <where>
            <if test="year!= null and year!= ''">
                and YEAR(cptd.training_date) = ${year}
            </if>
        </where>
    </select>
 
    <!--根据用户id和年份查询人员明细 培训记录-->
    <select id="queryPersonnelDetailsOfUserIdAndYear"
            resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto">
        select cptd.training_date, cptd.training_content, cptd.class_hour, cptr.examination_results, cptd.remarks
        from cnas_person_training_record cptr
        inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id
        <where>
            <if test="userId != null and userId != ''">
                and cptr.user_id = #{userId}
            </if>
            <if test="year!= null and year!= ''">
                and YEAR(cptd.training_date) = ${year}
            </if>
        </where>
    </select>
 
    <!-- 根据用户id和年份查询人员明细 培训记录导出 -->
    <select id="selectPersonDetailedDtosByTrainingDate"
            resultType="com.ruoyi.personnel.dto.TrainingRecordPersonDetailedDto">
        select cptd.training_date,
        cptd.training_content,
        cptd.class_hour,
        cptr.examination_results,
        cptd.remarks,
        DATE_FORMAT(cptd.training_date, '%Y-%m-%d') AS trainingDateString
        from cnas_person_training_record cptr
        inner join cnas_person_training_detailed cptd on cptd.id = cptr.course_id
        and cptr.user_id = #{userId}
        <where>
            <if test="year!= null and year!= ''">
                and YEAR(cptd.training_date) = ${year}
            </if>
        </where>
    </select>
</mapper>