| | |
| | | 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> |