feat: alarm records query

This commit is contained in:
yangsy
2025-08-20 23:27:24 +08:00
parent c83fea6dec
commit 1707d2c66f
7 changed files with 355 additions and 127 deletions

View File

@@ -8,10 +8,10 @@ import dayjs from 'dayjs';
import { storeToRefs } from 'pinia';
import { computed } from 'vue';
const AlarmCategory = {
Occurred: '1',
Recovered: '2',
} as const;
// const AlarmCategory = {
// Occurred: '1',
// Recovered: '2',
// } as const;
export interface CategorizedAlarms {
occurred: NdmDeviceAlarmLogResultVO[];
@@ -19,15 +19,15 @@ export interface CategorizedAlarms {
}
export interface StationAlarms {
[DeviceType.Camera]: CategorizedAlarms;
[DeviceType.Decoder]: CategorizedAlarms;
[DeviceType.Keyboard]: CategorizedAlarms;
[DeviceType.MediaServer]: CategorizedAlarms;
[DeviceType.Nvr]: CategorizedAlarms;
[DeviceType.SecurityBox]: CategorizedAlarms;
[DeviceType.Switch]: CategorizedAlarms;
[DeviceType.VideoServer]: CategorizedAlarms;
unclassified: CategorizedAlarms;
[DeviceType.Camera]: NdmDeviceAlarmLogResultVO[];
[DeviceType.Decoder]: NdmDeviceAlarmLogResultVO[];
[DeviceType.Keyboard]: NdmDeviceAlarmLogResultVO[];
[DeviceType.MediaServer]: NdmDeviceAlarmLogResultVO[];
[DeviceType.Nvr]: NdmDeviceAlarmLogResultVO[];
[DeviceType.SecurityBox]: NdmDeviceAlarmLogResultVO[];
[DeviceType.Switch]: NdmDeviceAlarmLogResultVO[];
[DeviceType.VideoServer]: NdmDeviceAlarmLogResultVO[];
unclassified: NdmDeviceAlarmLogResultVO[];
}
export interface LineAlarms {
@@ -51,15 +51,15 @@ export function useLineAlarmsQuery() {
for (const station of stationList.value) {
lineAlarms[station.code] = {
[DeviceType.Camera]: { occurred: [], recovered: [] },
[DeviceType.Decoder]: { occurred: [], recovered: [] },
[DeviceType.Keyboard]: { occurred: [], recovered: [] },
[DeviceType.MediaServer]: { occurred: [], recovered: [] },
[DeviceType.Nvr]: { occurred: [], recovered: [] },
[DeviceType.SecurityBox]: { occurred: [], recovered: [] },
[DeviceType.Switch]: { occurred: [], recovered: [] },
[DeviceType.VideoServer]: { occurred: [], recovered: [] },
unclassified: { occurred: [], recovered: [] },
[DeviceType.Camera]: [],
[DeviceType.Decoder]: [],
[DeviceType.Keyboard]: [],
[DeviceType.MediaServer]: [],
[DeviceType.Nvr]: [],
[DeviceType.SecurityBox]: [],
[DeviceType.Switch]: [],
[DeviceType.VideoServer]: [],
unclassified: [],
};
try {
@@ -67,13 +67,15 @@ export function useLineAlarmsQuery() {
const now = dayjs();
// const todayStart = now.startOf('date').format('YYYY-MM-DD HH:mm:ss');
// const todayEnd = now.endOf('date').format('YYYY-MM-DD HH:mm:ss');
const todayStart = '2025-08-13 00:00:00';
const todayEnd = '2025-08-31 23:59:59';
// const todayStart = '2025-08-13 00:00:00';
// const todayEnd = '2025-08-31 23:59:59';
const todayStart = now.startOf('date').valueOf();
const todayEnd = now.endOf('date').valueOf();
const { records: alarmList } = await postNdmDeviceAlarmLogPage(station.code, {
model: {},
extra: {
createdTime_precisest: todayStart,
createdTime_preciseed: todayEnd,
alarmDate_ge: todayStart,
alarmDate_le: todayEnd,
},
size: 50000,
current: 1,
@@ -89,42 +91,15 @@ export function useLineAlarmsQuery() {
const switchAlarms = alarmList.filter((device) => device.deviceType === DeviceType.Switch);
const videoServerAlarms = alarmList.filter((device) => device.deviceType === DeviceType.VideoServer);
lineAlarms[station.code] = {
[DeviceType.Camera]: {
occurred: cameraAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: cameraAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.Decoder]: {
occurred: decoderAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: decoderAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.Keyboard]: {
occurred: keyboardAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: keyboardAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.MediaServer]: {
occurred: mediaServerAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: mediaServerAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.Nvr]: {
occurred: nvrAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: nvrAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.SecurityBox]: {
occurred: securityBoxAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: securityBoxAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.Switch]: {
occurred: switchAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: switchAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.VideoServer]: {
occurred: videoServerAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: videoServerAlarms.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
unclassified: {
occurred: alarmList.filter((alarm) => alarm.alarmCategory === AlarmCategory.Occurred),
recovered: alarmList.filter((alarm) => alarm.alarmCategory === AlarmCategory.Recovered),
},
[DeviceType.Camera]: cameraAlarms,
[DeviceType.Decoder]: decoderAlarms,
[DeviceType.Keyboard]: keyboardAlarms,
[DeviceType.MediaServer]: mediaServerAlarms,
[DeviceType.Nvr]: nvrAlarms,
[DeviceType.SecurityBox]: securityBoxAlarms,
[DeviceType.Switch]: switchAlarms,
[DeviceType.VideoServer]: videoServerAlarms,
unclassified: alarmList,
};
} catch (error) {
console.error(`获取车站 ${station.name} 设备告警数据失败:`, error);