From 9ab644692599cc41b5cbd90173388f83f35934f1 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 23 七月 2024 15:26:32 +0800 Subject: [PATCH] 班次权限2.0 --- performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml | 32 ++++++++++++++++++++++---------- 1 files changed, 22 insertions(+), 10 deletions(-) diff --git a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml index 1ada6d1..4324a38 100644 --- a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml +++ b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml @@ -39,38 +39,50 @@ SELECT s.user_id, s.shift FROM performance_shift s - LEFT JOIN user u on u.id = s.user_id + LEFT JOIN (SELECT u.* from + user u + left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id) + where state=1 + <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 u.name like concat('%', #{userName}, '%') - </if> - <if test="laboratory != null and laboratory != ''"> + and u2.name like concat('%', #{userName}, '%') </if> order by s.create_time </select> <select id="performanceShiftYear" resultType="java.util.Map"> - SELECT if(u.department is not null and u.department != '', CONCAT(u.name, '锛�', u.department, '锛�'), u.name) name, - s.user_id, u.account, + SELECT if(u2.department is not null and u2.department != '', CONCAT(u2.name, '锛�', u2.department, '锛�'), u2.name) name, + s.user_id, u2.account, DATE_FORMAT(s.work_time, '%c') work_time, GROUP_CONCAT(DATE_FORMAT(s.work_time, '%c'), '锛�', s.shift order by s.work_time SEPARATOR ';') month_str FROM performance_shift s - LEFT JOIN user u on u.id = s.user_id + LEFT JOIN (SELECT u.* from + user u + left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id) + where state=1 + <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 u.name like concat('%', #{userName}, '%') </if> - <if test="laboratory != null and laboratory != ''"> - </if> - GROUP BY u.id + GROUP BY u2.id order by s.create_time </select> -- Gitblit v1.9.3