大屏数据
This commit is contained in:
@ -14,7 +14,8 @@
|
||||
left join device_type dt on dt.id = d.device_type
|
||||
<where>
|
||||
<if test="bo.content != null">
|
||||
and d.device_name like concat('%', #{bo.content}, '%') or dt.type_name like concat('%', #{bo.content}, '%')
|
||||
and d.device_name like concat('%', #{bo.content}, '%') or dt.type_name like concat('%', #{bo.content},
|
||||
'%')
|
||||
</if>
|
||||
<if test="bo.deviceName != null">
|
||||
and d.device_name like concat('%', #{bo.deviceName}, '%')
|
||||
@ -51,4 +52,52 @@
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
<!-- 获取实时告警列表 -->
|
||||
<select id="getRealtimeAlarm" resultType="com.fuyuanshen.equipment.domain.vo.DeviceAlarmVo">
|
||||
select da.*,
|
||||
d.device_mac as deviceMac,
|
||||
d.device_imei as deviceImei,
|
||||
d.device_name as deviceName,
|
||||
d.device_type as deviceType,
|
||||
d.type_name as deviceTypeName,
|
||||
d.device_pic as devicePic
|
||||
from device_alarm da
|
||||
left join device d on da.device_id = d.id
|
||||
left join device_type dt on dt.id = d.device_type
|
||||
WHERE da.treatment_state = 1
|
||||
order by da.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 获取报警统计数据 -->
|
||||
<select id="getAlarmStatistics" resultType="com.fuyuanshen.equipment.domain.vo.AlarmStatisticsVo">
|
||||
SELECT
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE treatment_state = 1) AS activeAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm) AS totalAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE treatment_state = 0) AS processedAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE device_action = 0) AS forcedAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE device_action = 1) AS intrusionImpactAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE device_action = 2) AS manualAlarms,
|
||||
(SELECT COUNT(1) FROM device_alarm WHERE device_action = 3) AS geoFenceAlarms
|
||||
</select>
|
||||
|
||||
<!-- 获取最近一年每月告警统计数据 -->
|
||||
<select id="getMonthlyAlarmStatistics" resultType="map">
|
||||
SELECT
|
||||
COUNT(CASE WHEN MONTH(create_time) = 1 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m1,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 2 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m2,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 3 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m3,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 4 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m4,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 5 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m5,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 6 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m6,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 7 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m7,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 8 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m8,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 9 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m9,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 10 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m10,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 11 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m11,
|
||||
COUNT(CASE WHEN MONTH(create_time) = 12 AND create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH) THEN 1 END) AS m12
|
||||
FROM device_alarm
|
||||
WHERE create_time >= DATE_SUB(NOW(), INTERVAL 12 MONTH)
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -92,4 +92,15 @@
|
||||
ORDER BY r.event_time DESC
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 查询设备最新的围栏记录 -->
|
||||
<select id="selectLatestRecordByDeviceId" resultType="com.fuyuanshen.equipment.domain.vo.DeviceFenceAccessRecordVo">
|
||||
SELECT *
|
||||
FROM device_fence_access_record
|
||||
WHERE device_id = #{deviceId}
|
||||
ORDER BY event_time DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -1,5 +1,5 @@
|
||||
<?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" >
|
||||
<?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.fuyuanshen.equipment.mapper.DeviceMapper">
|
||||
<resultMap id="BaseResultMap" type="com.fuyuanshen.equipment.domain.Device">
|
||||
<id column="id" property="id"/>
|
||||
@ -319,6 +319,32 @@
|
||||
a.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 获取设备总览信息 -->
|
||||
<select id="getDeviceOverview" resultType="com.fuyuanshen.equipment.domain.vo.DeviceOverviewVo">
|
||||
SELECT (SELECT COUNT(1) FROM device) AS totalDevices,
|
||||
(SELECT COUNT(1) FROM device WHERE online_status = 1) AS onlineDevices,
|
||||
(SELECT COUNT(DISTINCT device_type) FROM device) AS deviceTypes
|
||||
</select>
|
||||
|
||||
<!-- 获取设备通讯方式统计数据 -->
|
||||
<select id="getDeviceCommunicationModeStatistics" resultType="com.fuyuanshen.equipment.domain.vo.DeviceCommunicationModeStatisticsVo">
|
||||
SELECT
|
||||
dt.communication_mode AS communicationModeValue,
|
||||
CASE
|
||||
WHEN dt.communication_mode = 0 THEN '4G'
|
||||
WHEN dt.communication_mode = 1 THEN '蓝牙'
|
||||
WHEN dt.communication_mode = 2 THEN '4G&蓝牙'
|
||||
ELSE '未知'
|
||||
END AS communicationModeName,
|
||||
COUNT(d.id) AS totalDevices,
|
||||
COUNT(CASE WHEN d.online_status = 2 THEN 1 END) AS abnormalDevices
|
||||
FROM device_type dt
|
||||
LEFT JOIN device d ON dt.id = d.device_type
|
||||
WHERE dt.communication_mode IN (0, 1, 2)
|
||||
GROUP BY dt.communication_mode
|
||||
ORDER BY dt.communication_mode
|
||||
</select>
|
||||
|
||||
<!-- 获取数据总览 -->
|
||||
<select id="getDataOverview" resultType="com.fuyuanshen.equipment.domain.vo.DataOverviewVo">
|
||||
SELECT (SELECT COUNT(1) FROM device) AS devicesNumber,
|
||||
@ -423,6 +449,17 @@
|
||||
AND MONTH (dl.create_time) = #{month}
|
||||
</select>
|
||||
|
||||
<!-- 获取设备使用频次统计 -->
|
||||
<select id="getDeviceUsageFrequency" resultType="com.fuyuanshen.equipment.domain.vo.DeviceUsageFrequencyVo">
|
||||
SELECT
|
||||
device_name AS deviceName,
|
||||
COUNT(*) AS frequency
|
||||
FROM device_log
|
||||
WHERE create_time >= DATE_SUB(NOW(), INTERVAL #{days} DAY)
|
||||
GROUP BY device_name
|
||||
ORDER BY frequency DESC
|
||||
</select>
|
||||
|
||||
<!-- 根据设备IMEI查询设备 -->
|
||||
<select id="selectDeviceByImei" resultType="com.fuyuanshen.equipment.domain.Device">
|
||||
SELECT *
|
||||
|
||||
Reference in New Issue
Block a user