1060 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			1060 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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, 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"
 | 
						|
  // );
 | 
						|
  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];
 | 
						|
            _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,  ackTime, 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
 | 
						|
            )
 | 
						|
            // _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 _ackTime = new Date(
 | 
						|
              record.get("ackTime").$cEncStr
 | 
						|
            )
 | 
						|
            // _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 _normalTime = new Date(
 | 
						|
              record.get("normalTime").$cEncStr
 | 
						|
            )
 | 
						|
 | 
						|
            var _msgText = record.get("alarmData").get("msgText"); // == 1 ? _occurrenceTime : "未確認";
 | 
						|
            var _ackText =
 | 
						|
              record.get("ackState")
 | 
						|
            _ss.push({
 | 
						|
              uuid: _resultUuid[0],
 | 
						|
              msgText: _msgText,
 | 
						|
              ackState: _ackText,
 | 
						|
              timestamp: _occurrenceTime,
 | 
						|
              normalTime: _normalTime,
 | 
						|
              ackedTime: _ackTime
 | 
						|
            });
 | 
						|
            _index++;
 | 
						|
          },
 | 
						|
          after: function () {
 | 
						|
            $(loadEle).Loading("close");
 | 
						|
            _result = JSON.stringify({ count: _index, data: _ss });
 | 
						|
            if (typeof callback === "function") {
 | 
						|
              callback(_result);
 | 
						|
            }
 | 
						|
          },
 | 
						|
          limit: -1,
 | 
						|
          offset: 0,
 | 
						|
        });
 | 
						|
      })
 | 
						|
      .catch(() => {
 | 
						|
        $(loadEle).Loading("close");
 | 
						|
      });
 | 
						|
  });
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * 在單一系統下,取得各個設備的異常狀態
 | 
						|
 * @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 sourceState='offnormal' and alarmData.sourceName like '%${pageAct.AreaTag}_${pageAct.buiTag}%'`)*/
 | 
						|
    baja.Ord.make(`local:|foxs:${port}|alarm:|bql:select alarmClass where sourceState='offnormal' and alarmData.sourceName like '%${pageAct.AreaTag}_${pageAct.buiTag}%'`)
 | 
						|
    
 | 
						|
      .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 sourceState " +
 | 
						|
      _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) {
 | 
						|
            if (record.get("alarmData").get("sourceName")) {
 | 
						|
              let main = {};
 | 
						|
              // console.log("告警", record.get("alarmData").get("sourceName"));
 | 
						|
              //   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,
 | 
						|
        });
 | 
						|
      });
 | 
						|
  });
 | 
						|
}
 |