You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.5 KiB
90 lines
2.5 KiB
'use strict';
|
|
const moment = require('moment');
|
|
|
|
async function dataList (ctx) {
|
|
try {
|
|
const { models } = ctx.fs.dc;
|
|
const { userId, pepUserId, userInfo = {}, pepUserInfo } = ctx.fs.api
|
|
const { clickHouse } = ctx.app.fs
|
|
const { utils: { judgeSuper, anxinStrucIdRange, pomsProjectRange } } = ctx.app.fs
|
|
const { database: anxinyun } = clickHouse.anxinyun.opts.config
|
|
const { pepProjectId } = ctx.request.query
|
|
|
|
|
|
let anxinStruc = await anxinStrucIdRange({
|
|
ctx, pepProjectId
|
|
})
|
|
let pomsProject = await pomsProjectRange({
|
|
ctx, pepProjectId,
|
|
})
|
|
const pomsProjectIds = pomsProject.map(p => p.id)
|
|
|
|
if (anxinStruc.length) {
|
|
|
|
const anxinStrucIds = anxinStruc.map(a => a.strucId) || []
|
|
|
|
const dataAlarm = await clickHouse.dataAlarm.query(`
|
|
SELECT
|
|
formatDateTime(alarmData.StartTime,'%F %H') hours, count(AlarmId) count
|
|
FROM
|
|
( SELECT
|
|
AlarmId,State,StartTime
|
|
FROM
|
|
alarms
|
|
WHERE
|
|
alarms.StructureId IN (${anxinStrucIds.join(",")})
|
|
AND
|
|
AlarmGroup = 3) AS alarmData
|
|
GROUP BY hours
|
|
`).toPromise();
|
|
|
|
// const confirmedAlarm = dataAlarm
|
|
// // TODO: 开发临时注释
|
|
// .filter(ar => ar.State && ar.State > 2)
|
|
// .map(ar => "'" + ar.AlarmId + "'")
|
|
|
|
// // formatDateTime(Time,'%F %H') hours, count(AlarmId) count
|
|
|
|
// const dataConfirme = confirmedAlarm.length ?
|
|
// await clickHouse.dataAlarm.query(`
|
|
// SELECT
|
|
// max(Time) AS Time, AlarmId
|
|
// FROM
|
|
// alarm_details
|
|
// WHERE
|
|
// AlarmId IN (${confirmedAlarm.join(',')})
|
|
// GROUP BY AlarmId
|
|
// `).toPromise() :
|
|
// [];
|
|
|
|
|
|
// dataAlarm.forEach(ar => {
|
|
// ar.confirme =
|
|
// dataConfirme.find(as => as.AlarmId == ar.AlarmId) || {}
|
|
|
|
// })
|
|
ctx.status = 200
|
|
ctx.body = dataAlarm
|
|
} else {
|
|
ctx.status = 200
|
|
ctx.body = {
|
|
dataAlarm: 0,
|
|
}
|
|
}
|
|
|
|
} catch (error) {
|
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
|
ctx.status = 400;
|
|
ctx.body = {
|
|
message: typeof error == 'string' ? error : undefined
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
dataList,
|
|
};
|