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/DeviceMapper.xml | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 151 insertions(+), 0 deletions(-)
diff --git a/screen-api/src/main/resources/mapper/DeviceMapper.xml b/screen-api/src/main/resources/mapper/DeviceMapper.xml
index ce3522f..b2de3cc 100644
--- a/screen-api/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-api/src/main/resources/mapper/DeviceMapper.xml
@@ -25,6 +25,8 @@
<result column="install_time" property="installTime"/>
<result column="is_delete" property="isDelete"/>
<result column="extend" property="extend"/>
+ <result column="town_code" property="townCode"/>
+ <result column="dev_num" property="devNum"/>
</resultMap>
<!--���������������������������-->
@@ -41,4 +43,153 @@
AND `time` <![CDATA[<]]> #{end}
ORDER BY `time`
</select>
+ <select id="deviceList" resultType="java.util.Map">
+ SELECT
+ t.latitude as latitude,
+ t.longitude as longitude,
+ t.mac as mac,
+ t.state,(hf.value ->> #{type} )+0 as ${sensorCode}
+ 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
+ )
+ <if test="region != null">
+ and p.${region} = #{regionCode}
+ </if>
+ <if test="endHourlyTime !=null and endHourlyTime != ''">
+ left join history_hourly_${times} hf on hf.time =#{endHourlyTime} and t.mac = hf.mac
+ </if>
+ <if test="endHourlyTime ==null">
+ left join history_five_minutely_${times} hf on hf.time = (select max(time) from history_five_minutely_${times} LIMIT 1
+ ) and t.mac = hf.mac
+ </if>
+
+
+ WHERE
+ t.state <![CDATA[ <> ]]> '0' and t.is_delete = 0
+ order by t.id desc
+ </select>
+
+ <select id="deviceIdList" resultType="java.lang.Integer">
+ 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>
+
+ <select id="deviceOrgIdList" resultType="java.lang.Integer">
+ 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
+ </select>
+ <select id="deviceMacs" resultType="java.lang.String">
+ select mac from device where organization_id = #{organizationId} order by id desc
+
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0