zouyu
2026-05-07 2eaeb19b16af087d17c186c6220bf64f2fc07f4f
performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml
@@ -19,9 +19,11 @@
        s.shift,
        s.work_time,
        s.annotation_text,
        sd.dict_label AS shift_name,
        u2.name AS user_name,
        u2.id user_id
        FROM performance_shift s
        left join sys_dict_data sd on s.shift = sd.dict_value and sd.dict_type='sys_class_type'
        LEFT JOIN (SELECT distinct u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
@@ -40,32 +42,7 @@
                and u2.name like concat('%', #{userName}, '%')
            </if>
        </where>
        order by s.create_time
    </select>
    <select id="performanceShiftYearPage" resultType="map">
        SELECT
        s.user_id, s.shift
        FROM performance_shift s
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
        where status = '0'
        and del_flag = '0'
        <if test="laboratory != null and laboratory != ''">
            and   dl.name=#{laboratory}
        </if>
        ) u2   on u2.id = s.user_id
        where s.shift is not NULL
        and s.shift != ''
        and name is not null
        <if test="time != null and time != ''">
            and DATE_FORMAT(s.work_time, '%Y') = DATE_FORMAT(#{time}, '%Y' )
        </if>
        <if test="userName != null and userName != ''">
            and u2.name like concat('%', #{userName}, '%')
        </if>
        order by s.create_time
        order by s.work_time
    </select>
    <select id="performanceShiftYear" resultMap="performanceShiftMap">
@@ -73,10 +50,12 @@
        u2.name AS user_name,
        s.user_id,
        u2.account,
        DATE_FORMAT(s.work_time, '%c') month_num,
        sd.dict_label AS shift_name,
        s.work_time,
        s.shift,
        s.id
        FROM performance_shift s
        left join sys_dict_data sd on s.shift = sd.dict_value and sd.dict_type='sys_class_type'
        LEFT JOIN (SELECT u.* from
        user u
        left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id)
@@ -89,13 +68,13 @@
        where s.shift is not NULL
        and s.shift != ''
        and name is not null
        <if test="time != null and time != ''">
            and DATE_FORMAT(s.work_time, '%Y') = DATE_FORMAT(#{time}, '%Y' )
        <if test="startDateTime != null and endDateTime != null">
            and s.work_time between #{startDateTime} and #{endDateTime}
        </if>
        <if test="userName != null and userName != ''">
            and u2.name like concat('%', #{userName}, '%')
        </if>
        order by s.create_time
        order by s.work_time
    </select>
    <select id="performanceShiftYearList" resultType="map">
@@ -169,6 +148,6 @@
                AND (u.account like concat('%',#{keyword},'%') OR u.name like concat('%',#{keyword},'%'))
            </if>
        </where>
        ORDER BY ps.work_time,ps.user_id
        ORDER BY ps.work_time,u.sort
    </select>
</mapper>