function addzero(num) { return num < 10 ? "0" + num : num; } /** * 取得異常資料 by baja * @param {any} startDate_millisecond * @param {any} endDate_millisecond * @param {any} isRecover * @param {any} isAck * @param {any} alarmClass * @param {any} callback */ // function getAlarmByBaja(startDate_millisecond, endDate_millisecond, isRecover, isAck, alarmClass, callback) { // let _sourceTmp; // var _result = ""; // var _ss = ""; // var _bfName = ""; // var _sourceName = ""; // var _index = 0; // var _recoverState = isRecover ? "!= null" : "= null"; // var _ackState = isAck ? "= 1" : "!= 1"; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " order by timestamp asc").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _sourceTmp = (record.get('alarmData').get('sourceName')).toString().split('_'); // _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; // _sourceName = _sourceTmp[7] + "-" + _sourceTmp[8]; // _ss += ', "' + _index + '": {"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // _index++; // }, // after: function () { // _result += '{' + '"count": ' + _index; // _result += _ss; // _result += '}'; // if (typeof callback === 'function') { // callback(_result); // } // } // }); // }); // }); // } // function getAlarmByBaja(startDate_millisecond, endDate_millisecond, isRecover, isAck, alarmClass, callback) { // let _sourceTmp; // var _result = ""; // var _ss = ""; // var _bfName = ""; // var _sourceName = ""; // var _index = 0; // var _recoverState = isRecover ? "!= null" : "= null" // var _ackState = isAck ? "= 1" : "!= 1"; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " order by timestamp asc").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _sourceTmp = (record.get('alarmData').get('sourceName')).toString().split('_'); // _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; // _sourceName = _sourceTmp[7] + "-" + _sourceTmp[8]; // if (_index == 0) // _ss += '{"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // else // _ss += ',{"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // _index++; // }, // after: function () { // _result += '{' + '"count": ' + _index + ', "data":['; // _result += _ss; // _result += ']}'; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); // } function getAlarmByBaja( startDate_millisecond, endDate_millisecond, isRecover, isAck, alarmClass, callback ) { let _sourceTmp; var _result = ""; var _ss = []; var _bfName = ""; var _sourceName = ""; var _index = 0; var _recoverState = isRecover ? "= 'normal'" : "= 'offnormal'"; var _ackState = isAck ? "= 'acked'" : "= 'unacked'"; //console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp asc") require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select timestamp, ackTime, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and sourceState " + _recoverState + " and ackState " + _ackState + " order by timestamp asc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { const alarmDisplayName = record.get("alarmData").get("sourceName").split(":")[1] ?? record.get("alarmData").get("sourceName").split(":")[0]; //console.log(alarmDisplayName) _sourceTmp = alarmDisplayName.split("_"); _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; _sourceName = _sourceTmp.slice(0, 8).join("_"); _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8]; if (!_sourceTmp.includes("undefined")) { _ss.push({ buildingFloorName_zh: _bfName, uuid: record.get("uuid"), timestamp: record.get("timestamp").$cEncStr, alarmClass: record.get("alarmClass"), sourceName_zh: _sourceName, sourceTmp: _sourceTmp, msgText: record.get("alarmData").get("msgText"), ackState: record.get("ackState"), normalTime: record.get("normalTime"), ackedTime: record.get("ackTime").$cEncStr, }); } _index++; }, after: function () { _result = { count: _index, data: _ss }; //console.log(552, _result); if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } /** * 取得單一設備最新10筆異常資料 by baja * @param {any} devicePath * @param {any} callback */ // function getOneDeviceAlarmTop10ByBaja(devicePath, callback) { // var _result = ""; // var _ss = ""; // var _index = 0; // //{ "count":2,"data": [{ "time": "2022/11/14 15:00:00", "errId": "0001", "ackCheck": "未確認", "errReason": "燈泡故障" }, { "time": "2022/11/14 15:00:00", "errId": "0002", "ackCheck": "未確認", "errReason": "燈泡故障" }]} // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:|alarm:|bql:select top 10 timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // if (_index == 0) // _ss += '{"uuid":"' + record.get('uuid') + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "timestamp":"' + record.get('timestamp') + '"}'; // else // _ss += ',{"uuid":"' + record.get('uuid') + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "timestamp":"' + record.get('timestamp') + '"}'; // _index++; // }, // after: function () { // _result += '{' + '"count": ' + _index +', "data":['; // _result += _ss+']'; // _result += '}'; // if (typeof callback === 'function') { // callback(_result); // } // } // }); // }); // }); // } function getOneDeviceAlarmTop10ByBaja(devicePath, callback) { var _result = {}; var _ss = []; var _occurrenceTime = ""; var _normalTime = ""; var _index = 0; //{ "count":2,"data": [{ "time": "2022/11/14 15:00:00", "errId": "0001", "ackCheck": "未確認", "errReason": "燈泡故障" }, { "time": "2022/11/14 15:00:00", "errId": "0002", "ackCheck": "未確認", "errReason": "燈泡故障" }]} require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select top 10 timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { _occurrenceTime = ""; _normalTime = ""; // console.log(record.get('timestamp'),record.get('normalTime') ) var _resultUuid = record.get("uuid").toString().split("-"); //43dc7846-bd96-4be2-ab35-f11aec729c60 var _occurrenceTime = new Date( record.get("timestamp").$cEncStr ).toLocaleString("zh-tw", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", }); // _occurrenceTime += _timestampTemp.getFullYear().toString() + "-" + addzero(_timestampTemp.getMonth() + 1).toString() + "-" + addzero(_timestampTemp.getDate()).toString() + " " + addzero(_timestampTemp.getHours()).toString() + ":" + addzero(_timestampTemp.getMinutes()).toString() + ":" + addzero(_timestampTemp.getSeconds()).toString(); //var _occurrenceTime = _timestamp.format("yyyy-MM-dd hh:mm:ss");//.toLocaleString(); var _normalTime = new Date( record.get("normalTime").$cEncStr ).toLocaleString("zh-tw", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", }); // _normalTime += _normaltime.getFullYear().toString() + "-" + addzero(_normaltime.getMonth() + 1).toString() + "-" + addzero(_normaltime.getDate()).toString() + " " + addzero(_normaltime.getHours()).toString() + ":" + addzero(_normaltime.getMinutes()).toString() + ":" + addzero(_normaltime.getSeconds()).toString(); var _msgText = record.get("alarmData").get("msgText"); // == 1 ? _occurrenceTime : "未確認"; var _ackText = record.get("ackState") == 1 ? _occurrenceTime : "未確認"; _ss.push({ uuid: _resultUuid[0], msgText: _msgText, ackState: _ackText, timestamp: _occurrenceTime, normalTime: _normalTime, }); _index++; }, after: function () { _result = JSON.stringify({ count: _index, data: _ss }); if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } /** * 在單一系統下,取得各個設備的異常狀態 * @param {any} systemPath * @param {any} callback */ // function getOneSystemAlarmStateByBaja(systemPath, callback) { // var _result = ""; // var _ss = ""; // var _index = 0; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:|alarm:|bql:select alarmData, alarmData.sourceName, sourceState, uuid where alarmData.sourceName like '%" + systemPath + "%' order by timestamp desc").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _ss += ', "' + _index + '": {"uuid":"' + record.get('uuid') + '", "sourceName":"' + record.get('alarmData').get('sourceName') + '", "sourceState":"' + record.get('sourceState') + '"}'; // _index++; // }, // after: function () { // _result += '{' + '"count": ' + _index; // _result += _ss; // _result += '}'; // if (typeof callback === 'function') { // callback(_result); // } // } // }); // }); // }); // } function getOneSystemAlarmStateByBaja(systemPath, callback) { var _result = ""; var _ss = ""; var _index = 0; /* console.log("local:|foxs:|alarm:|bql:select alarmData, alarmData.sourceName, sourceState, uuid where alarmData.sourceName like '%" + systemPath + "%' order by timestamp desc")*/ require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select alarmData, alarmData.sourceName, sourceState, uuid where alarmData.sourceName like '%" + systemPath + "%' order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { if (_index == 0) _ss += '{"uuid":"' + record.get("uuid") + '", "sourceName":"' + record.get("alarmData").get("sourceName") + '", "sourceState":"' + record.get("sourceState") + '"}'; else _ss += ',{"uuid":"' + record.get("uuid") + '", "sourceName":"' + record.get("alarmData").get("sourceName") + '", "sourceState":"' + record.get("sourceState") + '"}'; _index++; }, after: function () { _result += "{" + '"count": ' + _index + ', "data":['; _result += _ss; _result += "]}"; if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } /** * 在單一系統下,取得各個系統的狀態 異常與否 * @param {any} systemPath * @param {any} callback */ function getOneSystemStateByBaja(systemPath, callback) { var _result = ""; var _ss = ""; var _index = 0; require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select top 1 alarmData, alarmData.sourceName, sourceState where alarmData.sourceName like '%" + systemPath + "%' order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { //if (_index == 0) // _ss += '{"sourceState":"' + record.get('sourceState') + '"}'; //else // _ss += '{"sourceState":"' + record.get('sourceState') + '"}'; _ss += '{"sourceState":"' + record.get("sourceState") + '"}'; _index++; }, after: function () { _result += "{" + '"count": ' + _index + ', "data":['; _result += _ss; _result += "]}"; if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 查詢異常數量 * @param {any} callback */ function getAlarmCountByBaja(callback) { var _result = { count: 0 }; var _index = 0; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:"+port+"|alarm:|bql:select sourceState where sourceState = 'offnormal'").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _index++; // }, // after: function () { // _result.count = _index; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select COUNT(*) where sourceState = 'offnormal'" ) .get() .then(function (table) { return table.cursor({ each: function (record) { if (typeof callback === "function") { // console.log("@@@@@@@@@", record.get("COUNT$28toString$29").$val) callback(record.get("COUNT$28toString$29").$val); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 查詢復歸數量 * @param {any} callback */ function getRecoverCountByBaja(callback) { var _result = { count: 0 }; var _index = 0; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:"+port+"|alarm:|bql:select normalTime where normalTime != null").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _index++; // }, // after: function () { // _result.count = _index; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select COUNT(*) where normalTime != null" ) .get() .then(function (table) { return table.cursor({ each: function (record) { if (typeof callback === "function") { callback(record.get("COUNT$28toString$29").$val); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 查詢已確認異常數量 * @param {any} callback */ function getCheckedAckedCountByBaja(callback) { var _result = { count: 0 }; var _index = 0; // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:"+port+"|alarm:|bql:select ackState where ackState ='acked'").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _index++; // }, // after: function () { // _result.count = _index; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select COUNT(*) where ackState='acked'" ) .get() .then(function (table) { return table.cursor({ each: function (record) { if (typeof callback === "function") { callback(record.get("COUNT$28toString$29").$val); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 查詢未確認異常數量 * @param {any} callback */ function getUnCheckedAckedCountByBaja(callback) { var _result = { count: 0 }; var _index = 0; // console.log("######getUnCheckedAckedCountByBaja#######"); // require(['baja!'], function (baja) { // baja.Ord.make("local:|foxs:"+port+"|alarm:|bql:select ackState where ackState ='unacked'").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _index++; // }, // after: function () { // _result.count = _index; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select COUNT(*) where ackState='unacked'" ) .get() .then(function (table) { return table.cursor({ each: function (record) { if (typeof callback === "function") { callback(record.get("COUNT$28toString$29").$val); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 取得現在是異常的系統 (較快) * @param {any} callback */ function getSystemAlarmByBaja(callback) { var _result = { count: 0, data: [] }; var _index = 0; require(["baja!"], function (baja) { // console.log("local:|foxs:"+ port +"|alarm:|bql:select alarmClass where isAlarm") //baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where isAlarm").get() baja.Ord.make( "local:|foxs:" + port + "|alarm:|bql:select alarmClass where sourceState = 'offnormal'" ) .get() .then(function (table) { return table.cursor({ each: function (record) { // console.log(record) let main = {}; main.alarmClass = record.get("alarmClass"); _result.data.push(main); _index++; }, after: function () { _result.count = _index; if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } // /** // * 取得單一設備異常 // * @param {any} callback // */ // //(devicePath, callback) // function getOneDeviceAlarmByBaja(devicePath, startDate_millisecond, endDate_millisecond, isRecover, isAck, callback) { // // var _result = ""; // // var _ss = ""; // // var _occurrenceTime = ""; // // var _normalTime = ""; // // var _index = 0; // let _sourceTmp; // var _result = ""; // var _ss = ""; // var _bfName = ""; // var _sourceName = ""; // var _index = 0; // var _recoverState = isRecover ? "!= null" : "= null"; // //local:|foxs:|alarm:|bql:select ackState from openAlarms where ackState ='acked' // var _ackState = isAck ? "= 'acked'" : "= 'unacked'"; // //{ "count":2,"data": [{ "time": "2022/11/14 15:00:00", "errId": "0001", "ackCheck": "未確認", "errReason": "燈泡故障" }, { "time": "2022/11/14 15:00:00", "errId": "0002", "ackCheck": "未確認", "errReason": "燈泡故障" }]} // require(['baja!'], function (baja) { // console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmData.sourceName like '%" + devicePath + "%' and timestamp.millis >= " + startDate_millisecond + " and timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc"); // baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmData.sourceName like '%" + devicePath + "%' and timestamp.millis >= " + startDate_millisecond + " and timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc").get() // // console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmData.sourceName like '%" + devicePath + "%' and alarmClass = '" + alarmClass + "' and timestamp.millis >= " + startDate_millisecond + " and timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc"); // // baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where alarmData.sourceName like '%" + devicePath + "%' and alarmClass = '" + alarmClass + "' and timestamp.millis >= " + startDate_millisecond + " and timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc").get() // //baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc").get() // .then(function (table) { // return table.cursor({ // each: function (record) { // _sourceTmp = (record.get('alarmData').get('sourceName')).toString().split('_'); // _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; // _sourceName = _sourceTmp[7] + "-" + _sourceTmp[8]; // // _occurrenceTime = ""; // // _normalTime = ""; // //var _resultUuid = record.get('uuid').toString().split("-");//43dc7846-bd96-4be2-ab35-f11aec729c60 // // var _timestampTemp = new Date(record.get('timestamp').toString()); // // _occurrenceTime += _timestampTemp.getFullYear().toString() + "-" + addzero(_timestampTemp.getMonth() + 1).toString() + "-" + addzero(_timestampTemp.getDate()).toString() + " " + addzero(_timestampTemp.getHours()).toString() + ":" + addzero(_timestampTemp.getMinutes()).toString() + ":" + addzero(_timestampTemp.getSeconds()).toString(); // // var _normaltime = new Date(record.get('normalTime').toString()); // // _normalTime += _normaltime.getFullYear().toString() + "-" + addzero(_normaltime.getMonth() + 1).toString() + "-" + addzero(_normaltime.getDate()).toString() + " " + addzero(_normaltime.getHours()).toString() + ":" + addzero(_normaltime.getMinutes()).toString() + ":" + addzero(_normaltime.getSeconds()).toString(); // // var _msgText = record.get('alarmData').get('msgText');// == 1 ? _occurrenceTime : "未確認"; // // var _ackText = record.get('ackState') == 1 ? _occurrenceTime : "未確認"; // //_ss += '{"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // if (_index == 0) // _ss += '{"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // //_ss += '{"uuid":"' + record.get('uuid') + '", "msgText":"' + _msgText + '", "ackState":"' + _ackText + '", "timestamp":"' + _occurrenceTime + '", "normalTime":"' + _normalTime + '"}'; // else // _ss += ',{"buildingFloorName_zh":"' + _bfName + '", "uuid":"' + record.get('uuid') + '", "timestamp":"' + record.get('timestamp') + '", "alarmClass":"' + record.get('alarmClass') + '", "sourceName_zh":"' + _sourceName + '", "msgText":"' + record.get('alarmData').get('msgText') + '", "ackState":"' + record.get('ackState') + '", "normalTime":"' + record.get('normalTime') + '"}'; // _index++; // }, // after: function () { // _result += '{' + '"count": ' + _index + ', "data":['; // _result += _ss + ']'; // _result += '}'; // if (typeof callback === 'function') { // callback(_result); // } // }, // limit: -1, // offset: 0 // }); // }); // }); // } /** * 取得單一設備異常 * @param {any} devicePath * @param {any} callback */ function getOneDeviceAlarmByBaja(devicePath, callback) { let _sourceTmp; var _result = ""; var _ss = []; var _bfName = ""; var _sourceName = ""; var _index = 0; require(["baja!"], function (baja) { // console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc"); baja.Ord.make( "local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { _sourceTmp = record .get("alarmData") .get("sourceName") .toString() .split("_"); _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; _sourceName = _sourceTmp[7] + "-" + _sourceTmp[8]; _ss.push({ buildingFloorName_zh: _bfName, uuid: record.get("uuid"), timestamp: record.get("timestamp"), alarmClass: record.get("alarmClass"), sourceName_zh: _sourceName, msgText: record.get("alarmData").get("msgText"), ackState: record.get("ackState"), normalTime: record.get("normalTime"), }); _index++; }, after: function () { _result = { count: _index, data: _ss }; //console.log(552, _result); if (typeof callback === "function") { callback(_result); } }, limit: -1, offset: 0, }); }); }); } function getOtherAlarmByBaja( startDate_millisecond, endDate_millisecond, isRecover, isAck, callback ) { var _result = { count: 0, data: [] }; var _index = 0; var _recoverState = isRecover ? "= 'normal'" : "= 'offnormal'"; var _ackState = isAck ? "= 'acked'" : "= 'unacked'"; let startUrl = ""; if (startDate_millisecond) { startUrl = "timestamp.millis >= " + startDate_millisecond + " and "; } console.log( "告警2", "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and sourceState " + _recoverState + " and ackState " + _ackState + " order by timestamp desc" ); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { // console.log(record) let main = {}; // const alarmDisplayName = record.get('alarmData').get('sourceName').split(":")[1] ?? record.get('alarmData').get('sourceName').split(":")[0] const alarmDisplayName = record.get("alarmData").get("sourceName").split(":")[1] ?? record.get("alarmData").get("sourceName"); _sourceTmp = alarmDisplayName.split("_"); let _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; let _sourceName = _sourceTmp.slice(0, 8).join("_"); _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8]; console.log( record.get("alarmData").get("sourceName"), _bfName, _sourceName ); main.buildingFloorName_zh = _bfName; main.sourceName_zh = _sourceName; main.uuid = record.get("uuid").$val; main.timestamp = record.get("timestamp").$cEncStr; main.alarmClass = record.get("alarmClass"); main.point = _sourceTmp; main.sourceTmp = _sourceTmp; main.devicePath = _sourceName; main.msgText = record.get("alarmData").get("msgText"); main.normalTime = record.get("normalTime"); main.priority = record.get("priority"); main.ackedTime = record.get("ackTime").$cEncStr; main.ackState = record.get("ackState").$ordinal; if (_sourceTmp.includes("undefined")) { main.buildingFloorName_zh = "無"; main.alarmClass = "系統/設備異常"; main.sourceTmp = "無"; main.msgText = ""; _result.data.push(main); } _index++; }, after: function () { _result.count = _index; if (typeof callback === "function") { //console.log(_result) callback(_result); } }, limit: -1, offset: 0, }); }); }); } function getAllDeviceAlarmByBaja( startDate_millisecond, endDate_millisecond, isRecover, isAck, callback ) { var _result = { count: 0, data: [] }; var _index = 0; var _recoverState = isRecover ? "= 'normal'" : "= 'offnormal'"; var _ackState = isAck ? "= 'acked'" : "= 'unacked'"; let startUrl = ""; if (startDate_millisecond) { startUrl = "timestamp.millis >= " + startDate_millisecond + " and "; } // console.log("告警", "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc"); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and sourceState " + _recoverState + " and ackState " + _ackState + " order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { let main = {}; // const alarmDisplayName = record.get('alarmData').get('sourceName').split(":")[1] ?? record.get('alarmData').get('sourceName').split(":")[0] const alarmDisplayName = record.get("alarmData").get("sourceName").split(":")[1] ?? record.get("alarmData").get("sourceName"); _sourceTmp = alarmDisplayName.split("_"); let _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; let _sourceName = _sourceTmp.slice(0, 8).join("_"); _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8]; main.buildingFloorName_zh = _bfName; main.sourceName_zh = _sourceName; main.uuid = record.get("uuid").$val; main.timestamp = record.get("timestamp").$cEncStr; main.alarmClass = record.get("alarmClass"); main.point = _sourceTmp; main.sourceTmp = _sourceTmp; main.devicePath = _sourceName; main.msgText = record.get("alarmData").get("msgText"); main.normalTime = record.get("normalTime"); main.priority = record.get("priority"); main.ackedTime = record.get("ackTime").$cEncStr; main.ackState = record.get("ackState").$ordinal; if (_sourceTmp.includes("undefined")) { // console.log(main.ackState) main.buildingFloorName_zh = "無"; main.alarmClass = "系統/設備異常"; main.sourceTmp = "無"; main.msgText = ""; } _result.data.push(main); _index++; }, after: function () { _result.count = _index; if (typeof callback === "function") { //console.log(_result) callback(_result); } }, limit: -1, offset: 0, }); }); }); } function getDeviceAlarmCardByBaja( startDate_millisecond, endDate_millisecond, isRecover, isAck, callback ) { var _result = { count: 0, data: [] }; var _index = 0; var _recoverState = isRecover ? "= 'normal'" : "= 'offnormal'"; var _ackState = isAck ? "= 'acked'" : "= 'unacked'"; let startUrl = ""; if (startDate_millisecond) { startUrl = "timestamp.millis >= " + startDate_millisecond + " and "; } // console.log("首頁","local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime from openAlarms where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc"); require(["baja!"], function (baja) { baja.Ord.make( "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and sourceState " + _recoverState + " and ackState " + _ackState + " order by timestamp desc" ) .get() .then(function (table) { return table.cursor({ each: function (record) { // console.log("%%%%%%%%%%%%%%%%", record.get('alarmData').get('alarmClassDisplayName')) let main = {}; // console.log(record.get('alarmData').get('sourceName'),record.get('timestamp').$cEncStr) const alarmDisplayName = record.get("alarmData").get("sourceName").split(":")[1] ?? record.get("alarmData").get("sourceName").split(":")[0]; //console.log(alarmDisplayName) _sourceTmp = alarmDisplayName.split("_"); let _bfName = _sourceTmp[1] + "-" + _sourceTmp[4]; let _sourceName = _sourceTmp.slice(0, 8).join("_"); _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8]; main.buildingFloorName_zh = _bfName; main.sourceName_zh = _sourceName; main.uuid = record.get("uuid").$val; main.timestamp = record.get("timestamp").$cEncStr; main.alarmClass = record.get("alarmClass"); main.point = _sourceTmp; main.sourceTmp = _sourceTmp; main.devicePath = _sourceName; main.msgText = record.get("alarmData").get("msgText"); main.normalTime = record.get("normalTime"); main.priority = record.get("priority"); main.ackedTime = record.get("ackTime").$cEncStr; main.ackState = record.get("ackState").$ordinal; // if (!_sourceTmp.includes("undefined")) { // // console.log(main.ackState) // } _result.data.push(main); _index++; }, after: function () { _result.count = _index; if (typeof callback === "function") { //console.log(_result) callback(_result); } }, limit: -1, offset: 0, }); }); }); } /** * [首頁] 圓餅圖資料 - 全部的異常 * @param {any} callback */ function getAlarmForChartDataByBaja(callback) { var _result = ""; var _ss = ""; var _index = 0; require(["baja!"], function (baja) { baja.Ord.make("local:|foxs:|alarm:|bql:select *") .get() .then(function (table) { return table.cursor({ each: function (record) { if (_index == 0) _ss += '{"alarmClass":"' + record.get("alarmClass") + '", "ackState":"' + record.get("ackState") + '", "normalTime":"' + record.get("normalTime") + '"}'; else _ss += ',{"alarmClass":"' + record.get("alarmClass") + '", "ackState":"' + record.get("ackState") + '", "normalTime":"' + record.get("normalTime") + '"}'; _index++; }, after: function () { //_result += '{' + '"count": ' + _index + ', "data":['; //_result += _ss; //_result += ']}'; if (typeof callback === "function") { callback(_index); } }, limit: -1, offset: 0, }); }); }); }