Преглед изворни кода

实验室信息查询过慢优化

xuxiaofei пре 2 година
родитељ
комит
0162c47fee

+ 22 - 2
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -124,11 +124,31 @@
             create_by, update_time, update_by, remark, sub_dept,
             check_out, check_in, safe_user_id, safe_signs, hazard_category, risk_measure,
             outfire, qr_code,safe_user_id, skipped, check_count,sign_time,
-	        (SELECT GROUP_CONCAT(ur.nick_name) FROM sys_user ur WHERE FIND_IN_SET(ur.user_id, s.`safe_user_id`)) AS safeUserNames,
+        (SELECT GROUP_CONCAT(ur.nick_name) FROM sys_user ur
+        WHERE ur.`user_id`
+        IN (
+        SELECT
+        SUBSTRING_INDEX(SUBSTRING_INDEX(s.safe_user_id,',', b.help_topic_id + 1), ',', -1) result
+        FROM
+        mysql.help_topic b
+        WHERE
+        b.help_topic_id < (LENGTH(s.safe_user_id) - LENGTH(REPLACE(s.safe_user_id, ',', '')) + 1)
+        )
+        ) safeUserNames,
             (select d.dept_name from sys_dept d where s.build_id = d.dept_id) build_name,
             (select b.name from lab_building b where b.id = s.floor_id) floorName,
             (SELECT l.room FROM lab_subject_layout l WHERE l.id = s.layout_id ) roomName,
-            (select GROUP_CONCAT(phonenumber) from sys_user where find_in_set(user_id, s.safe_user_id)) safeUserPhone
+        (SELECT GROUP_CONCAT(phonenumber) FROM sys_user ur
+        WHERE ur.`user_id`
+        IN (
+        SELECT
+        SUBSTRING_INDEX(SUBSTRING_INDEX(s.safe_user_id,',', b.help_topic_id + 1), ',', -1) result
+        FROM
+        mysql.help_topic b
+        WHERE
+        b.help_topic_id < (LENGTH(s.safe_user_id) - LENGTH(REPLACE(s.safe_user_id, ',', '')) + 1)
+        )
+        ) safeUserPhone
         from lab_subject s
     </sql>
     <sql id="selectLabSubjectListVo">