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 | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 1 deletions(-)
diff --git a/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml b/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
index c2ed097..9251add 100644
--- a/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
+++ b/screen-api/src/main/resources/mapper/AlarmInfoMapper.xml
@@ -14,7 +14,7 @@
</resultMap>
<select id="selectDataByCondition" resultType="java.util.Map">
- select ai.id alarmInfoId,ai.index,ai.alarm_type,ai.alarm_information,d.id deviceId,d.name deviceName,d.longitude,d.latitude
+ 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
<foreach collection="deviceIds" item="deviceId" index="index" open="(" close=")" separator=",">
@@ -31,4 +31,110 @@
ORDER by ai.create_time DESC
limit #{start},#{size}
</select>
+
+ <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
+ <foreach collection="deviceIds" item="deviceId" index="index" open="(" close=")" separator=",">
+ #{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
+ </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