From 2eaeb19b16af087d17c186c6220bf64f2fc07f4f Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期四, 07 五月 2026 14:51:57 +0800
Subject: [PATCH] 手动下单:检验中订单撤销报错问题修复

---
 performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml |   48 +++++++++++++++---------------------------------
 1 files changed, 15 insertions(+), 33 deletions(-)

diff --git a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml
index 381ef69..cf3d451 100644
--- a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml
+++ b/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">
@@ -154,10 +133,13 @@
             u.name AS user_name,
             u.account AS person_code,
             st.start_time,
-            st.end_time
+            st.end_time,
+            sd.dict_label AS shift_name,
+            ps.annotation_text
         FROM performance_shift ps
-        LEFT JOIN user u ON ps.user_id = u.id
+        inner JOIN user u ON ps.user_id = u.id
         LEFT JOIN shift_time st ON ps.shift = st.shift
+        left join sys_dict_data sd on ps.shift = sd.dict_value AND sd.dict_type='sys_class_type'
         <where>
             <if test="startTime!=null and endTime!=null">
                 AND ps.work_time BETWEEN #{startTime} AND #{endTime}
@@ -166,6 +148,6 @@
                 AND (u.account like concat('%',#{keyword},'%') OR u.name like concat('%',#{keyword},'%'))
             </if>
         </where>
-        ORDER BY ps.work_time
+        ORDER BY ps.work_time,u.sort
     </select>
 </mapper>

--
Gitblit v1.9.3