141 lines
4.4 KiB
JavaScript
141 lines
4.4 KiB
JavaScript
const {
|
|
getHistoryAlarmDb,
|
|
getHistoryEventDb,
|
|
checkTableNamedDb,
|
|
getHistoryValueReportDb,
|
|
getHistoryValueReportPivotDb,
|
|
getHistoryValueTrendingPivotDb
|
|
} = require('../db/history_value.db');
|
|
const { getSubSectionByIdDb } = require('../db/plant_sub_section.db');
|
|
const { ErrorHandler } = require('../helpers/error');
|
|
|
|
class HistoryValue {
|
|
|
|
static async getAllHistoryAlarm(param) {
|
|
try {
|
|
const results = await getHistoryAlarmDb(param);
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message || 'Error fetching alarm history');
|
|
}
|
|
}
|
|
|
|
static async getAllHistoryEvent(param) {
|
|
try {
|
|
const results = await getHistoryEventDb(param);
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(error.statusCode || 500, error.message || 'Error fetching event history');
|
|
}
|
|
}
|
|
|
|
static async getHistoryValueReport(param) {
|
|
try {
|
|
if (!param.plant_sub_section_id) {
|
|
throw new ErrorHandler(400, 'plant_sub_section_id is required');
|
|
}
|
|
|
|
const plantSubSection = await getSubSectionByIdDb(param.plant_sub_section_id);
|
|
|
|
if (!plantSubSection || plantSubSection.length < 1) {
|
|
throw new ErrorHandler(404, 'Plant sub section not found');
|
|
}
|
|
|
|
const tableNameValue = plantSubSection[0]?.table_name_value;
|
|
|
|
if (!tableNameValue) {
|
|
throw new ErrorHandler(404, 'Table name not configured for this sub section');
|
|
}
|
|
|
|
const tableExist = await checkTableNamedDb(tableNameValue);
|
|
|
|
if (!tableExist || tableExist.length < 1) {
|
|
throw new ErrorHandler(404, `Value table '${tableNameValue}' not found`);
|
|
}
|
|
|
|
const results = await getHistoryValueReportDb(tableExist[0].TABLE_NAME, param);
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(
|
|
error.statusCode || 500,
|
|
error.message || 'Error fetching history value report'
|
|
);
|
|
}
|
|
}
|
|
|
|
static async getHistoryValueReportPivot(param) {
|
|
try {
|
|
if (!param.plant_sub_section_id) {
|
|
throw new ErrorHandler(400, 'plant_sub_section_id is required');
|
|
}
|
|
if (!param.from || !param.to) {
|
|
throw new ErrorHandler(400, 'from and to date parameters are required');
|
|
}
|
|
|
|
const plantSubSection = await getSubSectionByIdDb(param.plant_sub_section_id);
|
|
|
|
if (!plantSubSection || plantSubSection.length < 1) {
|
|
throw new ErrorHandler(404, 'Plant sub section not found');
|
|
}
|
|
|
|
const tableNameValue = plantSubSection[0]?.table_name_value;
|
|
|
|
if (!tableNameValue) {
|
|
throw new ErrorHandler(404, 'Table name not configured for this sub section');
|
|
}
|
|
|
|
const tableExist = await checkTableNamedDb(tableNameValue);
|
|
|
|
if (!tableExist || tableExist.length < 1) {
|
|
throw new ErrorHandler(404, `Value table '${tableNameValue}' not found`);
|
|
}
|
|
|
|
const results = await getHistoryValueReportPivotDb(tableExist[0].TABLE_NAME, param);
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(
|
|
error.statusCode || 500,
|
|
error.message || 'Error fetching history value report pivot'
|
|
);
|
|
}
|
|
}
|
|
|
|
static async getHistoryValueTrendingPivot(param) {
|
|
try {
|
|
if (!param.plant_sub_section_id) {
|
|
throw new ErrorHandler(400, 'plant_sub_section_id is required');
|
|
}
|
|
if (!param.from || !param.to) {
|
|
throw new ErrorHandler(400, 'from and to date parameters are required');
|
|
}
|
|
|
|
const plantSubSection = await getSubSectionByIdDb(param.plant_sub_section_id);
|
|
|
|
if (!plantSubSection || plantSubSection.length < 1) {
|
|
throw new ErrorHandler(404, 'Plant sub section not found');
|
|
}
|
|
|
|
const tableNameValue = plantSubSection[0]?.table_name_value;
|
|
|
|
if (!tableNameValue) {
|
|
throw new ErrorHandler(404, 'Table name not configured for this sub section');
|
|
}
|
|
|
|
const tableExist = await checkTableNamedDb(tableNameValue);
|
|
|
|
if (!tableExist || tableExist.length < 1) {
|
|
throw new ErrorHandler(404, `Value table '${tableNameValue}' not found`);
|
|
}
|
|
|
|
const results = await getHistoryValueTrendingPivotDb(tableExist[0].TABLE_NAME, param);
|
|
return results;
|
|
} catch (error) {
|
|
throw new ErrorHandler(
|
|
error.statusCode || 500,
|
|
error.message || 'Error fetching history value trending pivot'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = HistoryValue; |