| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- <?xml version="1.0" encoding="UTF-8"?>
 
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
- <mapper namespace="com.xunmei.iot.mapper.IotWebStatisticBoardMapper">
 
-     <select id="deviceCount" resultType="com.xunmei.iot.dto.webStatisticBoard.BoardDeviceCountByTypeDto">
 
-         SELECT di.device_type, count(0) as count
 
-         FROM iot_device_info di
 
-                  INNER JOIN sys_org o on di.org_id = o.id and o.deleted = 0 and o.is_lock = 0
 
-         WHERE o.path like CONCAT((select path from sys_org where id = #{orgId}), '%')
 
-           and di.deleted = 0
 
-         GROUP BY di.device_type
 
-     </select>
 
-     <select id="orgDeviceCount" resultType="com.xunmei.iot.dto.webStatisticBoard.BoardDeviceCountDto">
 
-         SELECT o.id as orgId, o.path as orgPath, di.device_type, count(0) as count
 
-         FROM iot_device_info di
 
-                  INNER JOIN sys_org o on di.org_id = o.id and o.deleted = 0 and o.is_lock = 0
 
-         WHERE o.path like CONCAT((select path from sys_org where id = #{orgId}), '%')
 
-           and di.deleted = 0
 
-         GROUP BY di.device_type, o.id, o.path
 
-     </select>
 
-     <select id="protection" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardProtectionVo">
 
-         SELECT count(0)                            AS total,
 
-                sum(
 
-                        IF
 
-                            (s.`status` = 1, 1, 0)) AS `on`,
 
-                sum(
 
-                        IF
 
-                            (s.`status` = 0, 1, 0)) AS off
 
-         FROM iot_alarm_subsystem s
 
-                  INNER JOIN sys_org o ON s.org_id = o.id
 
-             AND o.deleted = 0
 
-             AND o.is_lock = 0
 
-         WHERE o.path LIKE CONCAT((select path from sys_org where id = #{orgId}), '%')
 
-           AND s.deleted = 0
 
-     </select>
 
-     <select id="deviceOnline" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardOnlineByTypeVo">
 
-         SELECT
 
-         di.device_type,
 
-         count( 0 ) AS deviceCount,
 
-         sum(
 
-         IF
 
-         ( di.net_status = 1, 1, 0 )) as onLineCount
 
-         FROM
 
-         iot_device_info di
 
-         INNER JOIN sys_org o ON di.org_id = o.id
 
-         AND o.deleted = 0
 
-         AND o.is_lock = 0
 
-         WHERE
 
-         o.path LIKE CONCAT(( SELECT path FROM sys_org WHERE id = #{orgId} ), '%' )
 
-         AND di.deleted = 0
 
-         AND di.device_type IN
 
-         <foreach collection="deviceTypes" item="t" separator="," open="(" close=")">
 
-             #{t}
 
-         </foreach>
 
-         GROUP BY
 
-         di.device_type
 
-     </select>
 
-     <select id="healthSummary" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardHealthSummaryVo">
 
-         SELECT count(0)                                  as total,
 
-                sum(score is not null)                    as checkedCount,
 
-                sum(score is not null and score > 90)     as over90Count,
 
-                sum(score is not null and score <= 90) as notover90Count
 
-         FROM (SELECT o.id, max(dcd.score) as score
 
-               FROM sys_org o
 
-                        LEFT JOIN iot_daily_check_data dcd
 
-                                  on o.id = dcd.org_id and dcd.record_date BETWEEN #{startTime} AND #{endTime}
 
-               WHERE o.type = 4
 
-                 and o.deleted = 0
 
-                 and o.is_lock = 0
 
-                 and o.path like concat((SELECT path from sys_org WHERE id = #{orgId}), '%')
 
-               GROUP BY o.id) a
 
-     </select>
 
-     <select id="healthRanking" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardHealthRankingVo">
 
-         SELECT org_name, score
 
-         FROM (SELECT o.id, o.short_name as org_name, max(dcd.score) as score
 
-               FROM sys_org o
 
-                        INNER JOIN iot_daily_check_data dcd
 
-                                   on o.id = dcd.org_id and dcd.record_date BETWEEN #{startTime} AND #{endTime}
 
-               WHERE o.type = 4
 
-                 and o.deleted = 0
 
-                 and o.is_lock = 0
 
-                 and o.path like concat((SELECT path from sys_org WHERE id = #{orgId}), '%')
 
-               GROUP BY o.id) a
 
-         ORDER BY score desc
 
-         limit 3
 
-     </select>
 
-     <select id="alarmRate" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardAlarmRateVo">
 
-         SELECT sum(ds.state = 0) normalCount,
 
-                sum(ds.state = 1) alarmCount
 
-         FROM iot_device_info di
 
-                  INNER JOIN sys_org o ON di.org_id = o.id
 
-             AND o.deleted = 0
 
-             AND o.is_lock = 0
 
-             AND o.path LIKE concat((SELECT path FROM sys_org WHERE id = #{orgId}),
 
-                                    '%')
 
-                  INNER JOIN iot_device_status ds
 
-                             ON di.id = ds.device_id
 
-     </select>
 
-     <select id="alarmList" resultType="com.xunmei.iot.vo.webStatisticBoard.BoardAlarmInfoVo">
 
-         SELECT o.short_name  AS org_name,
 
-                di.device_name,
 
-                ad.time       AS alarmStartTime,
 
-                ad.end_time   AS alarmEndTime,
 
-                ad.value_text AS alarmInfo
 
-         FROM iot_alarm_data ad
 
-                  INNER JOIN iot_device_info di ON ad.device_id = di.id AND di.deleted = 0
 
-                  INNER JOIN sys_org o ON ad.org_id = o.id AND o.deleted = 0 AND o.is_lock = 0 AND
 
-                                          o.path LIKE concat((SELECT path FROM sys_org WHERE id = #{orgId}), '%')
 
-         ORDER BY time DESC
 
-         LIMIT 50
 
-     </select>
 
-     <select id="alarmTrend" resultType="com.xunmei.iot.dto.webStatisticBoard.BoardAlarmTrendDto">
 
-         select device_type, date, count(0) as count
 
-         FROM (SELECT di.device_type,
 
-                      Date_FORMAT(ad.time, '%Y-%m-%d') as date
 
-               FROM iot_alarm_data ad
 
-                        INNER JOIN iot_device_info di ON ad.device_id = di.id
 
-                   AND di.deleted = 0
 
-                        INNER JOIN sys_org o ON ad.org_id = o.id
 
-                   AND o.deleted = 0
 
-                   AND o.is_lock = 0
 
-                   AND o.path LIKE concat((SELECT path FROM sys_org WHERE id = #{orgId}), '%')
 
-               WHERE ad.time > #{startTime}) a
 
-         GROUP BY device_type, date
 
-     </select>
 
- </mapper>
 
 
  |