|
|
@ -204,7 +204,7 @@ async function groupStatistic (ctx) { |
|
|
|
for (let pg of progectGroupList) { |
|
|
|
let strucCount = 0 |
|
|
|
let maxOffLineTime = 0 |
|
|
|
let todayAlarms=0 |
|
|
|
let todayAlarms = 0 |
|
|
|
let anxinProjectCount = groupProjectRes.reduce((count, gp) => { |
|
|
|
if (pg.pomsProjectIds.some(id => gp.id == id)) { |
|
|
|
// 如果 pg 分组信息 存储的 pomsProjectIds 运维项目id 和 真正的 groupProjectRes 运维项目id 相等
|
|
|
@ -215,10 +215,10 @@ async function groupStatistic (ctx) { |
|
|
|
strucRes.filter(s => gp.anxinProjectId.includes(s.projectId)) |
|
|
|
strucCount += strucIdArr_.length |
|
|
|
//所有结构物的告警
|
|
|
|
const ss=alarmRes.filter(p=>strucIdArr_.some(q=>q.structure==p.StructureId)) |
|
|
|
todayAlarms= ss.reduce((p,c)=>{ |
|
|
|
return p+c.alarmCount |
|
|
|
},0) |
|
|
|
const ss = alarmRes.filter(p => strucIdArr_.some(q => q.structure == p.StructureId)) |
|
|
|
todayAlarms = ss.reduce((p, c) => { |
|
|
|
return p + c.alarmCount |
|
|
|
}, 0) |
|
|
|
//
|
|
|
|
for (let { dataValues: off } of deviceOffTimeRes) { |
|
|
|
if (strucIdArr_.some((s) => s.strucId == off.structure)) { |
|
|
@ -272,20 +272,13 @@ async function groupStatisticOnline (ctx) { |
|
|
|
anxinProjectIds.add(pid) |
|
|
|
} |
|
|
|
|
|
|
|
const strucIdRes = await clickHouse.anxinyun.query( |
|
|
|
` |
|
|
|
SELECT * |
|
|
|
FROM t_project_structure |
|
|
|
WHERE project IN (${[...anxinProjectIds].join(',')}, -1) |
|
|
|
` |
|
|
|
).toPromise() |
|
|
|
// 统计安心云项目下的结构物
|
|
|
|
const strucRes = anxinProjectIds.length ? await clickHouse.anxinyun.query( |
|
|
|
` |
|
|
|
SELECT |
|
|
|
t_project.id AS projectId, |
|
|
|
t_structure.id AS strucId, |
|
|
|
t_structure.name AS strucName, |
|
|
|
t_structure.id AS id, |
|
|
|
t_structure.name AS name, |
|
|
|
project_state |
|
|
|
FROM |
|
|
|
t_project |
|
|
@ -318,16 +311,10 @@ async function groupStatisticOnline (ctx) { |
|
|
|
|
|
|
|
let strucIds = new Set() |
|
|
|
for (let struc of strucRes) { |
|
|
|
strucIds.add(struc.strucId) |
|
|
|
strucIds.add(struc.id) |
|
|
|
} |
|
|
|
let strucIdArr = Array.from(strucIds) |
|
|
|
|
|
|
|
// const strucRes = strucIdArr.length ? await clickHouse.anxinyun.query(
|
|
|
|
// `
|
|
|
|
// SELECT name, id FROM t_structure WHERE id IN (${[...strucIdArr].join(',')});
|
|
|
|
// `
|
|
|
|
// ).toPromise() : []
|
|
|
|
|
|
|
|
// 查中断时间
|
|
|
|
const maxOfflineTimeRes = strucIdArr.length ? await models.StructureOff.findAll({ |
|
|
|
where: { |
|
|
@ -373,7 +360,6 @@ async function groupStatisticOnline (ctx) { |
|
|
|
"size": 10000 |
|
|
|
} |
|
|
|
}) |
|
|
|
console.log('es数据,', onlineRes.hits.hits.length, onlineRes.hits.hits) |
|
|
|
|
|
|
|
for (let struc of strucRes) { |
|
|
|
let curOnline = |
|
|
@ -426,27 +412,50 @@ async function groupStatisticAlarm (ctx) { |
|
|
|
anxinProjectIds.add(pid) |
|
|
|
} |
|
|
|
|
|
|
|
const strucIdRes = anxinProjectIds.size ? await clickHouse.anxinyun.query( |
|
|
|
` |
|
|
|
SELECT * |
|
|
|
FROM t_project_structure |
|
|
|
WHERE project IN (${[...anxinProjectIds].join(',')}, -1) |
|
|
|
// 统计安心云项目下的结构物
|
|
|
|
const strucRes = anxinProjectIds.length ? await clickHouse.anxinyun.query( |
|
|
|
` |
|
|
|
SELECT |
|
|
|
t_project.id AS projectId, |
|
|
|
t_structure.id AS id, |
|
|
|
t_structure.name AS name, |
|
|
|
project_state |
|
|
|
FROM |
|
|
|
t_project |
|
|
|
LEFT JOIN |
|
|
|
t_project_structure |
|
|
|
ON t_project_structure.project = t_project.id |
|
|
|
LEFT JOIN |
|
|
|
t_project_structuregroup |
|
|
|
ON t_project_structuregroup.project = t_project.id |
|
|
|
LEFT JOIN |
|
|
|
t_structuregroup_structure |
|
|
|
ON t_structuregroup_structure.structuregroup = t_project_structuregroup.structuregroup |
|
|
|
LEFT JOIN |
|
|
|
t_project_construction |
|
|
|
ON t_project_construction.project = t_project.id |
|
|
|
LEFT JOIN |
|
|
|
t_structure_site |
|
|
|
ON t_structure_site.siteid = t_project_construction.construction |
|
|
|
RIGHT JOIN |
|
|
|
t_structure |
|
|
|
ON t_structure.id = t_project_structure.structure |
|
|
|
OR t_structure.id = t_structuregroup_structure.structure |
|
|
|
OR t_structure.id = t_structure_site.structid |
|
|
|
WHERE |
|
|
|
project_state != -1 |
|
|
|
AND |
|
|
|
t_project.id IN (${anxinProjectIds.join(',')},-1) |
|
|
|
` |
|
|
|
).toPromise() : [] |
|
|
|
|
|
|
|
let strucIds = new Set() |
|
|
|
for (let struc of strucIdRes) { |
|
|
|
strucIds.add(struc.structure) |
|
|
|
for (let struc of strucRes) { |
|
|
|
strucIds.add(struc.id) |
|
|
|
} |
|
|
|
let strucIdArr = Array.from(strucIds) |
|
|
|
|
|
|
|
const strucRes = strucIdArr.length ? await clickHouse.anxinyun.query( |
|
|
|
` |
|
|
|
SELECT name, id FROM t_structure WHERE id IN (${[...strucIdArr].join(',')}); |
|
|
|
` |
|
|
|
).toPromise() : [] |
|
|
|
|
|
|
|
// 查一周内超阈值告警的个数
|
|
|
|
// strucIdArr = [1]
|
|
|
|
const alarmRes = strucIdArr.length ? await clickHouse.dataAlarm.query( |
|
|
|
` |
|
|
|
SELECT StructureId,count(StructureId) AS alarmCount |
|
|
|