Browse Source

监测项告警筛选

dev
巴林闲侠 2 years ago
parent
commit
2fec8133c7
  1. 111
      api/app/lib/schedule/alarms_push.js

111
api/app/lib/schedule/alarms_push.js

@ -1,11 +1,14 @@
const moment = require('moment')
let isDev = false
isDev = true
module.exports = function (app, opts) {
const alarmsPush = app.fs.scheduleInit(
{
interval: '12 */1 * * * *',
// immediate: true, // dev
proRun: true,
immediate: isDev,
proRun: !isDev,
},
async () => {
try {
@ -140,7 +143,9 @@ module.exports = function (app, opts) {
})
// !开发测试用的数据
// searchStrucIds = searchStrucIds.concat([991, 1052, 700])
if (isDev) {
searchStrucIds = searchStrucIds.concat([991, 1052, 700])
}
if (searchStrucIds.length) {
searchStrucIds.unshift(-1)
@ -350,18 +355,19 @@ module.exports = function (app, opts) {
}
} else {
if (pomsStrucFactorId) {
if (!a.strucId || !a.anxinStationFactorId) {
// 当前告警没有绑定结构物或者摄像头没有绑定测点
continue
} else if (!pomsStrucFactorId[a.strucId]) {
// 推送配置没配置这个结构物
continue
} else if (!pomsStrucFactorId[a.strucId].includes(a.anxinStationFactorId)) {
// 不包含这个监测因素
continue
}
}
/**按监测因素 factor 筛选告警*/
// if (pomsStrucFactorId) {
// if (!a.strucId || !a.anxinStationFactorId) {
// // 当前告警没有绑定结构物或者摄像头没有绑定测点
// continue
// } else if (!pomsStrucFactorId[a.strucId]) {
// // 推送配置没配置这个结构物
// continue
// } else if (!pomsStrucFactorId[a.strucId].includes(a.anxinStationFactorId)) {
// // 不包含这个监测因素
// continue
// }
// }
let d = {
cameraId: a.cameraId,
@ -660,30 +666,65 @@ module.exports = function (app, opts) {
let dataAlarmG3 = [];
let dataAlarmG45 = [];
let deviceStatistic = new Set()
let dataAlarmDetails = []
if (dataAlarms.length) {
dataAlarmDetails =
await clickHouse.dataAlarm.query(`
SELECT * FROM alarm_details
WHERE AlarmId IN (${dataAlarms.map(da => da.AlarmId).join(',')}, '-1')
AND AlarmState = 0
`)
}
for (let d of dataAlarms) {
if (pomsStrucFactorId && d.SourceTypeId == 2) {
// 做了监测因素筛选 且当前告警有监测因素
if (!d.factor || d.factor == 0) {
// 监测因素不对劲
continue
} else if (!d.StructureId) {
// 当前告警没有绑定结构物
continue
} else if (!pomsStrucFactorId[d.StructureId]) {
// 推送配置没配置这个结构物
continue
} else if (!pomsStrucFactorId[d.StructureId].includes(d.factor)) {
// 不包含这个监测因素
continue
}
}
/** 按监测因素筛选 且为测点告警 */
// if (pomsStrucFactorId && d.SourceTypeId == 2) {
// // 做了监测因素筛选 且当前告警有监测因素
// if (!d.factor || d.factor == 0) {
// // 监测因素不对劲
// continue
// } else if (!d.StructureId) {
// // 当前告警没有绑定结构物
// continue
// } else if (!pomsStrucFactorId[d.StructureId]) {
// // 推送配置没配置这个结构物
// continue
// } else if (!pomsStrucFactorId[d.StructureId].includes(d.factor)) {
// // 不包含这个监测因素
// continue
// }
// }
if (d.AlarmGroup == 1) {
dataAlarmG1.push(d)
} else if (d.AlarmGroup == 2) {
dataAlarmG2.push(d)
} else if (d.AlarmGroup == 3) {
/** 按监测因项 factor-item 的名称筛选*/
if (pomsStrucFactorId) {
// 兼容之前的设置 有这个信息才进行判断
if (!d.StructureId) {
// 当前告警没有绑定结构物
continue
} else if (!pomsStrucFactorId[d.StructureId]) {
// 推送配置没配置这个结构物
continue
} else {
let corDetail = dataAlarmDetails.find(da => da.AlarmId == d.AlarmId)
if (corDetail) {
// 判断告警详情信息里有没有监测项关键字
if (!pomsStrucFactorId[d.StructureId].some(factorItemName => {
return corDetail.Content.includes(factorItemName)
})) {
continue
}
} else {
continue
}
}
}
dataAlarmG3.push(d)
} else if (d.AlarmGroup == 4 || d.AlarmGroup == 5) {
dataAlarmG45.push(d)
@ -780,8 +821,12 @@ module.exports = function (app, opts) {
}
return arr
}, [])
// !开发测试用的数据
// emails = ['1650192445@qq.com']
if (isDev) {
// !开发测试用的数据
emails = ['1650192445@qq.com']
}
if (emails.length) {
await pushByEmail({
email: emails,

Loading…
Cancel
Save