Browse Source

fix 数据大屏-环保工地项目集列表结构物数量展示错误

dev
CODE 1 year ago
parent
commit
38bdc3bdca
  1. 81
      api/app/lib/controllers/project/group.js

81
api/app/lib/controllers/project/group.js

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

Loading…
Cancel
Save