From 0abcc981f5c8e674c17baf7160ee8e6446d87b3a Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 09 Jan 2026 14:02:02 +0800
Subject: [PATCH] 数据驾驶舱优化
---
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
index b2092ec..631f5ae 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -70,4 +70,55 @@
SELECT * FROM ja_fw_device ${ew.customSqlSegment}
</select>
+ <!-- 统计设备类型(察打一体同时计入侦测和反制) -->
+ <select id="statisticalDeviceType" resultType="org.sxkj.fw.cockpit.vo.DeviceStatisticsVO">
+ SELECT
+ CASE split_device_type -- 自定义排序(可选)
+ WHEN '1' THEN '侦测设备'
+ WHEN '2' THEN '反制设备'
+ ELSE '其他'
+ END AS type,
+ COUNT(*) AS count
+ FROM (
+ -- 子查询:拆分察打一体设备为侦测/反制两类
+ SELECT
+ id,
+ CASE
+ WHEN device_type = '3' THEN '1' -- 察打一体拆分为侦测
+ ELSE device_type
+ END AS split_device_type
+ FROM ja_fw_device
+ WHERE is_deleted = 0 -- 排除已删除数据
+
+ UNION ALL -- 合并拆分的反制部分
+
+ SELECT
+ id,
+ CASE
+ WHEN device_type = '3' THEN '2' -- 察打一体拆分为反制
+ ELSE device_type
+ END AS split_device_type
+ FROM ja_fw_device
+ WHERE is_deleted = 0
+ AND device_type != '3' -- 避免普通设备重复统计
+ ) AS temp
+ GROUP BY split_device_type
+ ORDER BY split_device_type
+ </select>
+
+ <!-- 查询设备总数 + 无线电/光电/雷达设备数量 -->
+ <select id="statisticalDeviceAtt" resultType="org.sxkj.fw.cockpit.vo.AlarmStatisticsVO">
+ SELECT
+ -- 设备统计总数
+ (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0) AS deviceCount,
+ -- 无线电设备数量
+ (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '1') AS radioCount,
+ -- 光电设备数量
+ (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '2') AS opticalCount,
+ -- 雷达设备数量
+ (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND device_att = '3') AS radarCount,
+ -- 设备告警
+ (SELECT COUNT(*) FROM ja_fw_device WHERE is_deleted = 0 AND status = '2') AS deviceAlarmCount;
+ </select>
+
</mapper>
--
Gitblit v1.9.3