From ea1373d4e1511b620bb87872e692643e2edb81f8 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Tue, 12 Sep 2023 10:29:19 +0800
Subject: [PATCH] fix:升级语句优化
---
screen-api/src/main/resources/mapper/AlarmInfoMapper.xml | 98 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 96 insertions(+), 2 deletions(-)
diff --git a/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml b/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
index 187b2e5..9251add 100644
--- a/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
+++ b/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
@@ -32,7 +32,7 @@
limit #{start},#{size}
</select>
- <select id="selectNewestData" resultType="java.util.Map">
+ <select id="selectDataByConditionWithoutPage" resultType="java.util.Map">
select ai.id alarmInfoId,ai.alarm_time,ai.index,ai.alarm_type,ai.alarm_information,d.id deviceId,d.name deviceName,d.longitude,d.latitude
from alarm_info ai, device d
where ai.device_id in
@@ -40,7 +40,101 @@
#{deviceId}
</foreach>
and d.id = ai.device_id
+ <if test="index != null">
+ and ai.index = #{index}
+ </if>
+ <if test="alarmType != null">
+ and ai.alarm_type = #{alarmType}
+ </if>
+ and alarm_time between #{startTime} and #{endTime}
ORDER by ai.create_time DESC
- limit 0,#{size}
</select>
+
+ <select id="selectNewestData" resultType="java.util.Map">
+ select ai.id alarmInfoId,ai.alarm_time,ai.index,ai.alarm_type,ai.alarm_information,d.id deviceId,d.name deviceName,d.longitude,d.latitude
+ from alarm_info ai, device d
+ where
+ DATE_FORMAT(ai.alarm_time,'%Y-%m-%d') = (SELECT DATE_FORMAT(max( alarm_time),'%Y-%m-%d') from alarm_info limit 1) and d.id = ai.device_id and ai.device_id in
+ (select t.id from device t
+ inner JOIN monitor_point p on p.id = t.monitor_point_id and p.is_delete = 0
+
+ and p.organization_id in ( SELECT id FROM (
+ SELECT id, parent_id, name FROM organization WHERE id = #{orgId}
+ UNION ALL
+ SELECT i.id, i.parent_id, i.name
+ FROM organization i
+ INNER JOIN (
+ SELECT * FROM (
+ SELECT id, parent_id, name FROM organization WHERE id = #{orgId}
+ UNION ALL
+ SELECT id, parent_id, name FROM organization WHERE parent_id = #{orgId}
+ ) t1
+ ) t2 ON i.parent_id = t2.id
+ where i.is_delete = 0
+ ) t3)
+ WHERE
+ t.is_delete = 0
+ )
+ ORDER by ai.id DESC
+ limit #{size}
+ </select>
+ <select id="numNews" resultType="java.lang.Integer">
+ select count(1) from alarm_info
+ where alarm_time >= date_format(NOW(),'%Y-%m-%d')
+ and device_id in (SELECT
+ t.id
+ FROM
+ device t
+ INNER JOIN monitor_point p ON p.id = t.monitor_point_id
+ AND p.is_delete = 0
+ AND p.organization_id IN (
+ SELECT
+ id
+ FROM
+ (
+ SELECT
+ id,
+ parent_id,
+ NAME
+ FROM
+ organization
+ WHERE
+ id = #{organizationId} UNION ALL
+ SELECT
+ i.id,
+ i.parent_id,
+ i.NAME
+ FROM
+ organization i
+ INNER JOIN (
+ SELECT
+ *
+ FROM
+ (
+ SELECT
+ id,
+ parent_id,
+ NAME
+ FROM
+ organization
+ WHERE
+ id = #{organizationId} UNION ALL
+ SELECT
+ id,
+ parent_id,
+ NAME
+ FROM
+ organization
+ WHERE
+ parent_id = #{organizationId}
+ ) t1
+ ) t2 ON i.parent_id = t2.id
+ WHERE
+ i.is_delete = 0
+ ) t3
+ )
+ WHERE
+ t.is_delete = 0 )
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0