dashbord 校區即時契約容量圖表 | 報表棟別改多選
This commit is contained in:
parent
0f675b4eba
commit
2c02b75baa
@ -166,7 +166,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="row h-100">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<div class="row" id="sysSubBtnList"></div>
|
||||
</div>
|
||||
@ -182,9 +182,9 @@
|
||||
<div class="panel-hdr">
|
||||
<h2>本月/上月用電比較 (kWh)</h2>
|
||||
</div>
|
||||
<div class="panel-container show">
|
||||
<div class="panel-content poisition-relative">
|
||||
<div style="width: 100%; min-height: 270px">
|
||||
<div class="panel-container show h-100">
|
||||
<div class="panel-content poisition-relative h-100">
|
||||
<div style="width: 100%; min-height: 450px">
|
||||
<canvas class="chart" id="eveMonElecChart"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
@ -192,12 +192,30 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div id="panel-3" class="panel" style="height: calc(100% - 1.5rem)">
|
||||
<div class="row h-100">
|
||||
<div class="col-12 h-50">
|
||||
<div id="panel-3"
|
||||
class="panel"
|
||||
style="height: calc(100% - 1.5rem)">
|
||||
<div class="panel-hdr">
|
||||
<h2>契約容量</h2>
|
||||
<h2>即時契約容量占比 - 第一校區</h2>
|
||||
</div>
|
||||
<div class="panel-container show h-100">
|
||||
<div class="h-100 py-2" id="contractValueChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 h-50">
|
||||
<div id="panel-3"
|
||||
class="panel"
|
||||
style="height: calc(100% - 1.5rem)">
|
||||
<div class="panel-hdr">
|
||||
<h2>即時契約容量占比 - 第一校區</h2>
|
||||
</div>
|
||||
<div class="panel-container h-100 show">
|
||||
<div class="h-100" id="contractValueChart"></div>
|
||||
<div class="h-100 py-2" id="contractValueChart2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -268,6 +286,7 @@
|
||||
var errRecChart = null;
|
||||
var errChkChart = null;
|
||||
var contractValueChart = null;
|
||||
var contractValueChart2 = null;
|
||||
var loadedCnt = 0;
|
||||
var chartDataCnt = {
|
||||
alarmCnt: 0,
|
||||
@ -283,6 +302,8 @@
|
||||
show3DModel();
|
||||
getSubList();
|
||||
getAutDemVal();
|
||||
getContractValueChange("Arean1");
|
||||
getContractValueChange("Arean2");
|
||||
});
|
||||
|
||||
function demoSubList() {
|
||||
@ -405,19 +426,46 @@
|
||||
|
||||
myBaja.setSubscribeElectricmeterByBql(tempOrdPath);
|
||||
myBaja.setSubscribeElectricmeterCallBack(function (data) {
|
||||
console.log(data.point_name);
|
||||
if (data.point_name == "P") {
|
||||
let value = parseFloat(data.value).roundDecimal(2);
|
||||
$("#insPower").text(value);
|
||||
// $("#insPowerPer").text((value / 4).roundDecimal(2));
|
||||
$("#insPowerPer").text((value / contractCapacity).roundDecimal(2));
|
||||
chartContractValue((value / contractCapacity).roundDecimal(2) * 100);
|
||||
}
|
||||
});
|
||||
myBaja.setSubscribeElectricmeterEndCallBack(function () {
|
||||
chkBajaLoaded();
|
||||
});
|
||||
}
|
||||
let contractCapacityForchart1, contractCapacityForchart2;
|
||||
function getContractValueChange(compus) {
|
||||
let devPath = `Data/${compus}`;
|
||||
BajaSubscribeElectricmeterByBql({ devicePath: devPath }, (data) => {
|
||||
let value = data.find(({ point_name }) => point_name === "P")?.value;
|
||||
|
||||
if (compus === "Arean1") {
|
||||
if (data.some(({ point_name }) => point_name === "Capacity")) {
|
||||
contractCapacityForchart1 = data.find(
|
||||
({ point_name }) => point_name === "Capacity"
|
||||
)?.value;
|
||||
}
|
||||
chartContractValue(
|
||||
"contractValueChart",
|
||||
(value / contractCapacityForchart1).roundDecimal(2) * 100
|
||||
);
|
||||
} else {
|
||||
if (data.some(({ point_name }) => point_name === "Capacity")) {
|
||||
contractCapacityForchart2 = data.find(
|
||||
({ point_name }) => point_name === "Capacity"
|
||||
)?.value;
|
||||
}
|
||||
chartContractValue(
|
||||
"contractValueChart2",
|
||||
(value / contractCapacityForchart2).roundDecimal(2) * 100
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//從 baja 取得電表用電量
|
||||
function getElectricBaja() {
|
||||
@ -521,7 +569,6 @@
|
||||
(data) => {
|
||||
const cur = new Date().getMonth();
|
||||
const pre = new Date().getMonth() - 1;
|
||||
console.log(data.data);
|
||||
let curMonthData = data.data.filter(
|
||||
(x) => x.timestamp.$date.$month === cur
|
||||
);
|
||||
@ -780,10 +827,6 @@
|
||||
|
||||
// 圖表 - 本月即上月用電量
|
||||
function chartEveMonsElec(curMonData, prevMonData) {
|
||||
console.log(
|
||||
curMonData.map((x) => x.sum),
|
||||
prevMonData.map((x) => x.sum)
|
||||
);
|
||||
let eveMonElecChartCanvas = $("#eveMonElecChart").get(0).getContext("2d");
|
||||
|
||||
let eveMonElecChartData = {
|
||||
@ -1058,8 +1101,8 @@
|
||||
}
|
||||
|
||||
// 圖表 - 取得契約容量
|
||||
function chartContractValue(value) {
|
||||
var chartDom = document.getElementById("contractValueChart");
|
||||
function chartContractValue(ele, value) {
|
||||
var chartDom = document.getElementById(ele);
|
||||
contractValueChart = echarts.init(chartDom, null, {
|
||||
renderer: "canvas",
|
||||
useDirtyRect: false,
|
||||
|
@ -207,7 +207,7 @@
|
||||
month: "ExportElectricList",
|
||||
year: "ExportElectricList",
|
||||
compare: "ExportElectricCompareList",
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
var token = cookies.get("JWT-Authorization");
|
||||
@ -235,7 +235,7 @@
|
||||
var html = "";
|
||||
for (let building of pageAct.buildList) {
|
||||
html += `<label class="btn btn-outline-success waves-effect waves-themed">
|
||||
<input type="radio" name="buildingRadio" id="radio_${building.building_tag}" value="${building.building_tag}" onChange="SelectBuild(this,'${building.building_tag}')"> ${building.full_name}
|
||||
<input type="checkbox" name="buildingRadio" id="radio_${building.building_tag}" value="${building.building_tag}" onChange="SelectBuild(this,'${building.building_tag}')"> ${building.full_name}
|
||||
</label>`;
|
||||
}
|
||||
$("#building").find(".item").empty();
|
||||
@ -457,7 +457,6 @@
|
||||
$("[name=compareTypeRadio]")
|
||||
.parent("label")
|
||||
.on("click", function () {
|
||||
debugger;
|
||||
$("[name=compareTypeRadio]").parent("label").removeClass("active");
|
||||
const oldVal = $("label.active [name=compareTypeRadio]").val();
|
||||
$(this).addClass("active");
|
||||
@ -534,7 +533,7 @@
|
||||
$("li.active [name=reportTypeRadio]").data("value") == "compare"
|
||||
? $("[name=compareTypeRadio]:checked").val()
|
||||
: $("li.active [name=reportTypeRadio]").data("value"),
|
||||
building_tag: $("[name=buildingRadio]:checked").val(),
|
||||
building_tag: SelectBuildings.join(","),
|
||||
floor_tag: $("[name=floorCheckbox]:checked")
|
||||
.map((i, e) => $(e).val())
|
||||
.toArray(),
|
||||
@ -596,11 +595,11 @@
|
||||
}
|
||||
if (i == 0) {
|
||||
result = result.concat(rel.data);
|
||||
result.forEach(r => {
|
||||
result.forEach((r) => {
|
||||
r._compare_price = null;
|
||||
r._compare_total = null;
|
||||
r._compare_total_price = null;
|
||||
})
|
||||
});
|
||||
} else {
|
||||
rel.data.forEach((r) => {
|
||||
let target =
|
||||
@ -639,12 +638,10 @@
|
||||
},
|
||||
});
|
||||
});
|
||||
debugger;
|
||||
setReportTable(result);
|
||||
}
|
||||
|
||||
function getPrice() {
|
||||
debugger;
|
||||
var sentdata = {
|
||||
type: reportTypeDict["RElec"]["name"],
|
||||
};
|
||||
@ -760,7 +757,12 @@
|
||||
|
||||
return compareResult.map((dc) => {
|
||||
if (dc._isCompared) {
|
||||
return { title: dc.value, data: dc.value, sClass: "compare", sWidth: columnWidth };
|
||||
return {
|
||||
title: dc.value,
|
||||
data: dc.value,
|
||||
sClass: "compare",
|
||||
sWidth: columnWidth,
|
||||
};
|
||||
}
|
||||
return { title: dc, data: dc, sWidth: columnWidth };
|
||||
});
|
||||
@ -830,8 +832,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("datas", datas)
|
||||
console.log("totalColumns", totalColumns)
|
||||
console.log("datas", datas);
|
||||
console.log("totalColumns", totalColumns);
|
||||
datatable = $("#report_table").DataTable({
|
||||
data: datas,
|
||||
destroy: true,
|
||||
@ -851,6 +853,7 @@
|
||||
title: "樓層",
|
||||
data: "floor_tag",
|
||||
sWidth: "8%",
|
||||
className: "text-nowrap",
|
||||
},
|
||||
{
|
||||
title: "設備",
|
||||
@ -869,23 +872,27 @@
|
||||
if (!Array.isArray(sent_data)) {
|
||||
sent_data = [sent_data];
|
||||
}
|
||||
if (!sent_data.some((s) => s.building_tag)) {
|
||||
toast_error("請選擇棟別");
|
||||
return;
|
||||
}
|
||||
if (!sent_data.some((s) => s.floor_tag)) {
|
||||
toast_error("請選擇樓層");
|
||||
return;
|
||||
}
|
||||
debugger
|
||||
// if (!sent_data.some((s) => s.building_tag)) {
|
||||
// toast_error("請選擇棟別");
|
||||
// return;
|
||||
// }
|
||||
// if (!sent_data.some((s) => s.floor_tag)) {
|
||||
// toast_error("請選擇樓層");
|
||||
// return;
|
||||
// }
|
||||
var url =
|
||||
baseApiUrl + "/api/" + reportTypeDict["RElec"]["exportListApiUrl"][tableType];
|
||||
baseApiUrl +
|
||||
"/api/" +
|
||||
reportTypeDict["RElec"]["exportListApiUrl"][tableType];
|
||||
|
||||
setLoading(true, "匯出中");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: url,
|
||||
data: tableType == "compare" ? JSON.stringify(sent_data) : JSON.stringify(sent_data[0]),
|
||||
data:
|
||||
tableType == "compare"
|
||||
? JSON.stringify(sent_data)
|
||||
: JSON.stringify(sent_data[0]),
|
||||
headers: {
|
||||
Authorization: "Bearer " + token,
|
||||
},
|
||||
@ -915,6 +922,11 @@
|
||||
|
||||
//選擇棟別
|
||||
function SelectBuild(e, building_tag) {
|
||||
if (SelectBuildings.includes(building_tag)) {
|
||||
SelectBuildings = SelectBuildings.filter((bui) => bui !== building_tag);
|
||||
} else {
|
||||
SelectBuildings.push(building_tag);
|
||||
}
|
||||
checkIsSelectedBuilding();
|
||||
// GetFloors(building_tag);
|
||||
}
|
||||
|
@ -39,67 +39,89 @@ class subscriptionDevices {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
this.changeCallback = callBackFunc;
|
||||
}
|
||||
}
|
||||
};
|
||||
// BQL訂閱結束回傳的Function
|
||||
setSubscribeDeviceEndCallBack = function (callBackFunc) {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
this.changeEndCallback = callBackFunc;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
BajaSubscribeDevicesByBql = function () {
|
||||
let _this = this;
|
||||
require(['baja!'], function (baja) {
|
||||
require(["baja!"], function (baja) {
|
||||
console.log("進入Function 準備執行BQL訂閱");
|
||||
startPageLoading ? startPageLoading() : ""
|
||||
startPageLoading ? startPageLoading() : "";
|
||||
var init_start = new Date(Date.now());
|
||||
var sub = new baja.Subscriber();
|
||||
|
||||
sub.attach('changed', function (prop) {
|
||||
if (prop.getName() === 'out') {
|
||||
sub.attach(
|
||||
"changed",
|
||||
function (prop) {
|
||||
if (prop.getName() === "out") {
|
||||
var out_value = this.getOutDisplay();
|
||||
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = this.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
var point_name = this.getDisplayName();
|
||||
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = this.getFacets1().$cEncStr.split('|');
|
||||
var facets_split = this.getFacets1().$cEncStr.split("|");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('=s:'));
|
||||
facets_arr.push(item.split("=s:"));
|
||||
});
|
||||
|
||||
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
var facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = this.getOutDisplay().split(' ');
|
||||
var point_out_split = this.getOutDisplay().split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
"device_number_full": this.$parent.getSlotPath().$names.join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
}
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
device_number: target_device_number ? target_device_number : null,
|
||||
device_number_full: this.$parent.getSlotPath().$names.join("_"),
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
}, function (err) {
|
||||
console.log(err)
|
||||
});
|
||||
},
|
||||
function (err) {
|
||||
console.log(err);
|
||||
}
|
||||
);
|
||||
|
||||
//使用bql語法
|
||||
// var building_tag = "H";
|
||||
// var system_tag = "M10";
|
||||
// baja.Ord.make(`ip:greencloud.fic.com.tw|foxs:|station:|slot:/Arena/${building_tag}/${system_tag}|bql:select name, displayname, slotPath, out.value, out from control:ControlPoint`)
|
||||
console.log(`local:|foxs:${port}|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}${_this.ordPath.flo_tag ? `/${_this.ordPath.flo_tag}` : ""}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`);
|
||||
baja.Ord.make(`local:|foxs:${port}|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}${_this.ordPath.flo_tag ? `/${_this.ordPath.flo_tag}` : ""}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`)
|
||||
.get(
|
||||
function (table) {
|
||||
console.log(
|
||||
`local:|foxs:${port}|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag
|
||||
}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}${_this.ordPath.flo_tag ? `/${_this.ordPath.flo_tag}` : ""
|
||||
}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`
|
||||
);
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|station:|slot:/${_this.ordPath.area_tag}/${_this.ordPath.building_tag
|
||||
}/${_this.ordPath.system_tag}/${_this.ordPath.name_tag}${_this.ordPath.flo_tag ? `/${_this.ordPath.flo_tag}` : ""
|
||||
}|bql:select name, displayname, slotPath, out.value, out, facets from control:ControlPoint`
|
||||
).get(function (table) {
|
||||
var tableStart, tableFinish;
|
||||
var subStart, subFinish;
|
||||
var component_index = 0;
|
||||
@ -108,14 +130,15 @@ class subscriptionDevices {
|
||||
var readBqlFinish = new Date(Date.now());
|
||||
// $("#readPath-finish-timestamp").html(readBqlFinish.toISOString());
|
||||
// $("#readPath-finish-time").html((readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
|
||||
console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
|
||||
console.log(
|
||||
"讀取路徑完成-花費時間",
|
||||
(readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec"
|
||||
);
|
||||
table.cursor({
|
||||
before: function () {
|
||||
totalTargetDevice = [];
|
||||
tableStart = new Date(Date.now());
|
||||
$("#table-start-timestamp").html(tableStart.toISOString());
|
||||
|
||||
|
||||
},
|
||||
each: function (item, index) {
|
||||
if (index < 1) {
|
||||
@ -125,93 +148,141 @@ class subscriptionDevices {
|
||||
$("#sub-number").html(index + 1);
|
||||
total_component_index = index;
|
||||
|
||||
|
||||
|
||||
var target_device_number_split = this.getDisplay("slotPath").split('/');
|
||||
var target_device_number_split =
|
||||
this.getDisplay("slotPath").split("/");
|
||||
var target_device_number = target_device_number_split[8];
|
||||
//console.log(target_device_number);
|
||||
var point_name = this.getDisplay("name");
|
||||
var facets = this.getDisplay("facets");
|
||||
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = facets.split(',');
|
||||
var facets_split = facets.split(",");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('='));
|
||||
facets_arr.push(item.split("="));
|
||||
});
|
||||
|
||||
facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = this.getDisplay("out").split(' ');
|
||||
var point_out_split = this.getDisplay("out").split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
"device_number_full": this.getDisplay("slotPath").split("slot:")[1].split('/').slice(1, -1).join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
}
|
||||
device_number: target_device_number ? target_device_number : null,
|
||||
device_number_full: this.getDisplay("slotPath")
|
||||
.split("slot:")[1]
|
||||
.split("/")
|
||||
.slice(1, -1)
|
||||
.join("_"),
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
totalTargetDevice.push(modify_target_device);
|
||||
//取得component當下就更新設備點位
|
||||
// if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
// _this.changeCallback(modify_target_device);
|
||||
// }
|
||||
if (pageAct.sysSubTag === "L1") {
|
||||
if (point_name === "SSC" || point_name === "TRIP" || point_name === "ONOFF") {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
point_name === "SSC" ||
|
||||
point_name === "TRIP" ||
|
||||
point_name === "ONOFF"
|
||||
) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
baja.Ord.make(`local:|foxs:${port}|station:|` + this.getDisplay("slotPath"))
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|station:|` +
|
||||
this.getDisplay("slotPath")
|
||||
)
|
||||
.get()
|
||||
.then(function (component) {
|
||||
// console.log("component",component)
|
||||
component_index++;
|
||||
var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = component.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
|
||||
var out_value = component.getOutDisplay();
|
||||
var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = component.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
var point_name = component.getDisplayName();
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = component.getFacets1().$cEncStr.split('|');
|
||||
var facets_split = component
|
||||
.getFacets1()
|
||||
.$cEncStr.split("|");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('=s:'));
|
||||
facets_arr.push(item.split("=s:"));
|
||||
});
|
||||
|
||||
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
var facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = component.getOutDisplay().split(' ');
|
||||
var point_out_split = component
|
||||
.getOutDisplay()
|
||||
.split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
"device_number_full": component.$parent.getSlotPath().$names.join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
}
|
||||
device_number: target_device_number
|
||||
? target_device_number
|
||||
: null,
|
||||
device_number_full: component.$parent
|
||||
.getSlotPath()
|
||||
.$names.join("_"),
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
|
||||
if (pageAct.sysSubTag === "L1") {
|
||||
if (point_name === "SSC" || point_name === "TRIP" || point_name === "ONOFF") {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
point_name === "SSC" ||
|
||||
point_name === "TRIP" ||
|
||||
point_name === "ONOFF"
|
||||
) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// //依據Facets判斷回傳的內容值為何
|
||||
// var facets_split = component.getFacets1().$cEncStr.split('|');
|
||||
// var facets_arr = [];
|
||||
@ -246,7 +317,11 @@ class subscriptionDevices {
|
||||
// }
|
||||
|
||||
if (pageAct.sysSubTag === "L1") {
|
||||
if (point_name === "SSC" || point_name === "TRIP" || point_name === "ONOFF") {
|
||||
if (
|
||||
point_name === "SSC" ||
|
||||
point_name === "TRIP" ||
|
||||
point_name === "ONOFF"
|
||||
) {
|
||||
sub.subscribe({
|
||||
comps: component,
|
||||
});
|
||||
@ -263,60 +338,96 @@ class subscriptionDevices {
|
||||
tolSubList.push(sub);
|
||||
subFinish = new Date(Date.now());
|
||||
$("#sub-end").html(subFinish.toISOString());
|
||||
$("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
$("#sub-time").html(
|
||||
(subFinish.getTime() - subStart.getTime()) / 1000 +
|
||||
"sec"
|
||||
);
|
||||
// console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
baja.Ord.make(`local:|foxs:${port}|station:|` + this.getDisplay("slotPath"))
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|station:|` + this.getDisplay("slotPath")
|
||||
)
|
||||
.get()
|
||||
.then(function (component) {
|
||||
component_index++;
|
||||
var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = component.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
|
||||
var out_value = component.getOutDisplay();
|
||||
var target_device_number = component.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = component.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
var point_name = component.getDisplayName();
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = component.getFacets1().$cEncStr.split('|');
|
||||
var facets_split = component
|
||||
.getFacets1()
|
||||
.$cEncStr.split("|");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('=s:'));
|
||||
facets_arr.push(item.split("=s:"));
|
||||
});
|
||||
|
||||
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
var facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = component.getOutDisplay().split(' ');
|
||||
var point_out_split = component.getOutDisplay().split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
"device_number_full": component.$parent.getSlotPath().$names.join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
}
|
||||
device_number: target_device_number
|
||||
? target_device_number
|
||||
: null,
|
||||
device_number_full: component.$parent
|
||||
.getSlotPath()
|
||||
.$names.join("_"),
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
|
||||
if (pageAct.sysSubTag === "L1") {
|
||||
if (point_name === "SSC" || point_name === "TRIP" || point_name === "ONOFF") {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
point_name === "SSC" ||
|
||||
point_name === "TRIP" ||
|
||||
point_name === "ONOFF"
|
||||
) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (_this.changeCallback != undefined && _this.changeCallback != null) {
|
||||
if (
|
||||
_this.changeCallback != undefined &&
|
||||
_this.changeCallback != null
|
||||
) {
|
||||
_this.changeCallback(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// //依據Facets判斷回傳的內容值為何
|
||||
// var facets_split = component.getFacets1().$cEncStr.split('|');
|
||||
// var facets_arr = [];
|
||||
@ -351,7 +462,11 @@ class subscriptionDevices {
|
||||
// }
|
||||
|
||||
if (pageAct.sysSubTag === "L1") {
|
||||
if (point_name === "SSC" || point_name === "TRIP" || point_name === "ONOFF") {
|
||||
if (
|
||||
point_name === "SSC" ||
|
||||
point_name === "TRIP" ||
|
||||
point_name === "ONOFF"
|
||||
) {
|
||||
sub.subscribe({
|
||||
comps: component,
|
||||
});
|
||||
@ -368,32 +483,37 @@ class subscriptionDevices {
|
||||
tolSubList.push(sub);
|
||||
subFinish = new Date(Date.now());
|
||||
$("#sub-end").html(subFinish.toISOString());
|
||||
$("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
$("#sub-time").html(
|
||||
(subFinish.getTime() - subStart.getTime()) / 1000 + "sec"
|
||||
);
|
||||
// console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
after: function () {
|
||||
tableFinish = new Date(Date.now());
|
||||
// $("#table-finish-timestamp").html(tableFinish.toISOString());
|
||||
// $("#table-time").html((tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
|
||||
//取得component當下就更新設備點位
|
||||
if (_this.changeEndCallback != undefined && _this.changeEndCallback != null) {
|
||||
if (
|
||||
_this.changeEndCallback != undefined &&
|
||||
_this.changeEndCallback != null
|
||||
) {
|
||||
_this.changeEndCallback(totalTargetDevice);
|
||||
}
|
||||
endPageLoading ? endPageLoading() : ""
|
||||
console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
|
||||
endPageLoading ? endPageLoading() : "";
|
||||
console.log(
|
||||
"表格完成時間",
|
||||
(tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec"
|
||||
);
|
||||
},
|
||||
limit: -1,
|
||||
offset: 0
|
||||
offset: 0,
|
||||
});
|
||||
});
|
||||
})
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
//function subscriptionDevices() {
|
||||
@ -427,23 +547,22 @@ function subscriptionAlarms() {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
baja_subscribe_alarm_callback_func = callBackFunc;
|
||||
}
|
||||
}
|
||||
};
|
||||
// BQL訂閱結束回傳的Function
|
||||
this.setSubscribeAlarmEndCallBack = function (callBackFunc) {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
baja_subscribe_end_alarm_callback_func = callBackFunc;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
function subscriptionElectricmeter() {
|
||||
// 用BQL的方式去訂閱
|
||||
this.setSubscribeElectricmeterByBql = function (tempOrdPath) {
|
||||
if(tempOrdPath.devicePath?.includes("/")){
|
||||
if (tempOrdPath.devicePath?.includes("/")) {
|
||||
let newDevPath = [];
|
||||
for(var tag of tempOrdPath.devicePath?.split("/")){
|
||||
if(!isNaN(parseInt(tag.slice(0,1)))){
|
||||
for (var tag of tempOrdPath.devicePath?.split("/")) {
|
||||
if (!isNaN(parseInt(tag.slice(0, 1)))) {
|
||||
tag = "$3" + tag;
|
||||
}
|
||||
newDevPath.push(tag);
|
||||
@ -457,23 +576,22 @@ function subscriptionElectricmeter() {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
baja_subscribe_electricmeter_callback_func = callBackFunc;
|
||||
}
|
||||
}
|
||||
};
|
||||
// BQL訂閱結束回傳的Function
|
||||
this.setSubscribeElectricmeterEndCallBack = function (callBackFunc) {
|
||||
if (callBackFunc != undefined && callBackFunc != null) {
|
||||
baja_subscribe_end_electricmeter_callback_func = callBackFunc;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function MyBaja() {
|
||||
// 取得使用者帳號
|
||||
this.setMyUserAccount = function (callBackFunc = null) {
|
||||
require(['baja!'], function (baja) {
|
||||
require(["baja!"], function (baja) {
|
||||
user_name = baja.getUserName();
|
||||
callBackFunc ? callBackFunc(user_name) : "";
|
||||
});
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@ -482,7 +600,6 @@ function MyBaja() {
|
||||
*/
|
||||
//function BajaSubscribeDevicesByBql() {
|
||||
|
||||
|
||||
// require(['baja!'], function (baja) {
|
||||
// console.log("進入Function 準備執行BQL訂閱");
|
||||
// startPageLoading ? startPageLoading() : ""
|
||||
@ -560,8 +677,6 @@ function MyBaja() {
|
||||
// $("#sub-number").html(index + 1);
|
||||
// total_component_index = index;
|
||||
|
||||
|
||||
|
||||
// var target_device_number_split = this.getDisplay("slotPath").split('/');
|
||||
// var target_device_number = target_device_number_split[8];
|
||||
// //console.log(target_device_number);
|
||||
@ -597,7 +712,6 @@ function MyBaja() {
|
||||
// baja_subscribe_device_callback_func(modify_target_device);
|
||||
// }
|
||||
|
||||
|
||||
// baja.Ord.make(`local:|foxs:${port}|station:|` + this.getDisplay("slotPath"))
|
||||
// .get()
|
||||
// .then(function (component) {
|
||||
@ -670,21 +784,34 @@ function MyBaja() {
|
||||
* 使用者透過BQL指定路徑去訂閱Alarm
|
||||
*/
|
||||
function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
|
||||
require(['baja!'], function (baja) {
|
||||
require(["baja!"], function (baja) {
|
||||
console.log("進入Function 準備執行BQL訂閱");
|
||||
var init_start = new Date(Date.now());
|
||||
var sub = new baja.Subscriber();
|
||||
startPageLoading ? startPageLoading() : ""
|
||||
sub.attach('changed', function (prop) {
|
||||
if (prop.getName() === 'out') {
|
||||
var sourceState = (this.$map.$map.in10.$val.$map.$map.value.$display) == 'true' ? "Offnormal" : "Normal";
|
||||
startPageLoading ? startPageLoading() : "";
|
||||
sub.attach("changed", function (prop) {
|
||||
if (prop.getName() === "out") {
|
||||
var sourceState =
|
||||
this.$map.$map.in10.$val.$map.$map.value.$display == "true"
|
||||
? "Offnormal"
|
||||
: "Normal";
|
||||
|
||||
var modify_target_device = {
|
||||
"system": ordPathForAlarm.area_tag + "_" + ordPathForAlarm.building_tag + "_" + ordPathForAlarm.system_tag + "_" + ordPathForAlarm.name_tag,
|
||||
"sourceState": sourceState ? sourceState : null
|
||||
}
|
||||
system:
|
||||
ordPathForAlarm.area_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.building_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.system_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.name_tag,
|
||||
sourceState: sourceState ? sourceState : null,
|
||||
};
|
||||
|
||||
if (baja_subscribe_alarm_callback_func != undefined && baja_subscribe_alarm_callback_func != null) {
|
||||
if (
|
||||
baja_subscribe_alarm_callback_func != undefined &&
|
||||
baja_subscribe_alarm_callback_func != null
|
||||
) {
|
||||
baja_subscribe_alarm_callback_func(modify_target_device);
|
||||
}
|
||||
}
|
||||
@ -692,16 +819,19 @@ function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
|
||||
|
||||
//使用bql語法
|
||||
// console.log(`local:|foxs:${port}|alarm:|bql:select top 1 timestamp, sourceState, normalTime where alarmData.sourceName like '%${ordPathForAlarm.area_tag}_${ordPathForAlarm.building_tag}_${ordPathForAlarm.system_tag}_${ordPathForAlarm.name_tag}_%' order by timestamp desc`);
|
||||
baja.Ord.make(`local:|foxs:${port}|alarm:|bql:select top 1 timestamp, sourceState, alarmData, alarmData.sourceName, normalTime where alarmData.sourceName like '%${ordPathForAlarm.area_tag}_${ordPathForAlarm.building_tag}_${ordPathForAlarm.system_tag}_${ordPathForAlarm.name_tag}_%' order by timestamp desc`)
|
||||
.get(
|
||||
function (table) {
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|alarm:|bql:select top 1 timestamp, sourceState, alarmData, alarmData.sourceName, normalTime where alarmData.sourceName like '%${ordPathForAlarm.area_tag}_${ordPathForAlarm.building_tag}_${ordPathForAlarm.system_tag}_${ordPathForAlarm.name_tag}_%' order by timestamp desc`
|
||||
).get(function (table) {
|
||||
var tableStart, tableFinish;
|
||||
var subStart, subFinish;
|
||||
var totalTargetDevice = [];
|
||||
var component_index = 0;
|
||||
var total_component_index = 0;
|
||||
var readBqlFinish = new Date(Date.now());
|
||||
console.log("讀取路徑完成-花費時間", (readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec");
|
||||
console.log(
|
||||
"讀取路徑完成-花費時間",
|
||||
(readBqlFinish.getTime() - init_start.getTime()) / 1000 + "sec"
|
||||
);
|
||||
|
||||
table.cursor({
|
||||
before: function () {
|
||||
@ -717,17 +847,45 @@ function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
|
||||
|
||||
var sourceState = this.getDisplay("sourceState");
|
||||
//var sourceName = (item.$map.$map.alarmData$2esourceName.$display).replace('_', '/');
|
||||
var sourceNameArray = (item.$map.$map.alarmData$2esourceName.$display).split('_');
|
||||
var slotPath = sourceNameArray[0] + "/" + sourceNameArray[1] + "/" + sourceNameArray[2] + "/" + sourceNameArray[3] + "/" + sourceNameArray[4] + "/" + sourceNameArray[5] + "/" + sourceNameArray[6] + "/" + sourceNameArray[7] + "/" + sourceNameArray[8];
|
||||
var sourceNameArray =
|
||||
item.$map.$map.alarmData$2esourceName.$display.split("_");
|
||||
var slotPath =
|
||||
sourceNameArray[0] +
|
||||
"/" +
|
||||
sourceNameArray[1] +
|
||||
"/" +
|
||||
sourceNameArray[2] +
|
||||
"/" +
|
||||
sourceNameArray[3] +
|
||||
"/" +
|
||||
sourceNameArray[4] +
|
||||
"/" +
|
||||
sourceNameArray[5] +
|
||||
"/" +
|
||||
sourceNameArray[6] +
|
||||
"/" +
|
||||
sourceNameArray[7] +
|
||||
"/" +
|
||||
sourceNameArray[8];
|
||||
var normalTime = this.getDisplay("normalTime");
|
||||
|
||||
var modify_target_device = {
|
||||
"system": ordPathForAlarm.area_tag + "_" + ordPathForAlarm.building_tag + "_" + ordPathForAlarm.system_tag + "_" + ordPathForAlarm.name_tag,
|
||||
"sourceState": sourceState ? sourceState : null
|
||||
}
|
||||
system:
|
||||
ordPathForAlarm.area_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.building_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.system_tag +
|
||||
"_" +
|
||||
ordPathForAlarm.name_tag,
|
||||
sourceState: sourceState ? sourceState : null,
|
||||
};
|
||||
totalTargetDevice.push(modify_target_device);
|
||||
//取得component當下就更新設備點位
|
||||
if (baja_subscribe_alarm_callback_func != undefined && baja_subscribe_alarm_callback_func != null) {
|
||||
if (
|
||||
baja_subscribe_alarm_callback_func != undefined &&
|
||||
baja_subscribe_alarm_callback_func != null
|
||||
) {
|
||||
baja_subscribe_alarm_callback_func(modify_target_device);
|
||||
}
|
||||
|
||||
@ -741,19 +899,28 @@ function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
|
||||
});
|
||||
|
||||
subFinish = new Date(Date.now());
|
||||
console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
console.log(
|
||||
"訂閱完成時間",
|
||||
(subFinish.getTime() - subStart.getTime()) / 1000 + "sec"
|
||||
);
|
||||
});
|
||||
},
|
||||
after: function () {
|
||||
tableFinish = new Date(Date.now());
|
||||
if (baja_subscribe_end_alarm_callback_func != undefined && baja_subscribe_end_alarm_callback_func != null) {
|
||||
if (
|
||||
baja_subscribe_end_alarm_callback_func != undefined &&
|
||||
baja_subscribe_end_alarm_callback_func != null
|
||||
) {
|
||||
baja_subscribe_end_alarm_callback_func(totalTargetDevice);
|
||||
}
|
||||
endPageLoading ? endPageLoading() : ""
|
||||
console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
|
||||
endPageLoading ? endPageLoading() : "";
|
||||
console.log(
|
||||
"表格完成時間",
|
||||
(tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec"
|
||||
);
|
||||
},
|
||||
limit: -1,
|
||||
offset: 0
|
||||
offset: 0,
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -762,58 +929,84 @@ function BajaSubscribeAlarmsByBql(ordPathForAlarm) {
|
||||
/**
|
||||
* 使用者透過BQL指定路徑去訂閱 electricmeter
|
||||
*/
|
||||
function BajaSubscribeElectricmeterByBql(ordPathForElectricmeter) {
|
||||
|
||||
|
||||
require(['baja!'], function (baja) {
|
||||
function BajaSubscribeElectricmeterByBql(
|
||||
ordPathForElectricmeter,
|
||||
callback = null
|
||||
) {
|
||||
require(["baja!"], function (baja) {
|
||||
//console.log("進入Function 準備執行BQL訂閱");
|
||||
startPageLoading ? startPageLoading() : ""
|
||||
startPageLoading ? startPageLoading() : "";
|
||||
var init_start = new Date(Date.now());
|
||||
var sub = new baja.Subscriber();
|
||||
|
||||
sub.attach('changed', function (prop) {
|
||||
if (prop.getName() === 'out') {
|
||||
sub.attach(
|
||||
"changed",
|
||||
function (prop) {
|
||||
if (prop.getName() === "out") {
|
||||
var out_value = this.getOutDisplay();
|
||||
var target_device_number = this.$parent.getDisplayName().split('_').slice(0, 5).join('_');
|
||||
var target_device_number = this.$parent
|
||||
.getDisplayName()
|
||||
.split("_")
|
||||
.slice(0, 5)
|
||||
.join("_");
|
||||
var point_name = this.getDisplayName();
|
||||
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = this.getFacets1().$cEncStr.split('|');
|
||||
var facets_split = this.getFacets1().$cEncStr.split("|");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('=s:'));
|
||||
facets_arr.push(item.split("=s:"));
|
||||
});
|
||||
|
||||
var facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
var facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = this.getOutDisplay().split(' ');
|
||||
var point_out_split = this.getOutDisplay().split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
device_number: target_device_number ? target_device_number : null,
|
||||
//"device_number_full": this.$parent.getSlotPath().$names.join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
|
||||
if (callback !== null) {
|
||||
callback([modify_target_device]);
|
||||
}
|
||||
|
||||
if (baja_subscribe_electricmeter_callback_func != undefined && baja_subscribe_electricmeter_callback_func != null) {
|
||||
baja_subscribe_electricmeter_callback_func(modify_target_device, true); //第2參數用在平面圖,刷新畫面
|
||||
if (
|
||||
baja_subscribe_electricmeter_callback_func != undefined &&
|
||||
baja_subscribe_electricmeter_callback_func != null
|
||||
) {
|
||||
baja_subscribe_electricmeter_callback_func(
|
||||
modify_target_device,
|
||||
true
|
||||
); //第2參數用在平面圖,刷新畫面
|
||||
}
|
||||
}
|
||||
}, function (err) {
|
||||
console.log(err)
|
||||
});
|
||||
},
|
||||
function (err) {
|
||||
console.log(err);
|
||||
}
|
||||
);
|
||||
|
||||
//使用bql語法
|
||||
// console.log(`local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`);
|
||||
baja.Ord.make(`local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`)
|
||||
.get(
|
||||
function (table) {
|
||||
// console.log(
|
||||
// `local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`
|
||||
// );
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|station:|slot:/${ordPathForElectricmeter.devicePath}|bql:select name, out, out.value, slotPath, facets from control:ControlPoint`
|
||||
).get(function (table) {
|
||||
var tableStart, tableFinish;
|
||||
var subStart, subFinish;
|
||||
var component_index = 0;
|
||||
@ -827,7 +1020,6 @@ function BajaSubscribeElectricmeterByBql(ordPathForElectricmeter) {
|
||||
tableStart = new Date(Date.now());
|
||||
$("#table-start-timestamp").html(tableStart.toISOString());
|
||||
render_start = new Date(Date.now());
|
||||
|
||||
},
|
||||
each: function (item, index) {
|
||||
if (index < 1) {
|
||||
@ -837,45 +1029,53 @@ function BajaSubscribeElectricmeterByBql(ordPathForElectricmeter) {
|
||||
$("#sub-number").html(index + 1);
|
||||
total_component_index = index;
|
||||
|
||||
|
||||
|
||||
var target_device_number_split = this.getDisplay("slotPath").split('/');
|
||||
var target_device_number_split =
|
||||
this.getDisplay("slotPath").split("/");
|
||||
var target_device_number = target_device_number_split[8];
|
||||
//console.log(target_device_number);
|
||||
var point_name = this.getDisplay("name");
|
||||
var facets = this.getDisplay("facets");
|
||||
|
||||
//依據Facets判斷回傳的內容值為何
|
||||
var facets_split = facets.split(',');
|
||||
var facets_split = facets.split(",");
|
||||
var facets_arr = [];
|
||||
facets_split.forEach(function (item, index) {
|
||||
facets_arr.push(item.split('='));
|
||||
facets_arr.push(item.split("="));
|
||||
});
|
||||
|
||||
facets = facets_arr.reduce((obj, cur) => ({ ...obj, [cur[0]]: cur[1] }), {})
|
||||
facets = facets_arr.reduce(
|
||||
(obj, cur) => ({ ...obj, [cur[0]]: cur[1] }),
|
||||
{}
|
||||
);
|
||||
|
||||
var point_out_split = this.getDisplay("out").split(' ');
|
||||
var point_out_split = this.getDisplay("out").split(" ");
|
||||
|
||||
let key = Object.keys(facets).find(k => facets[k] === point_out_split[0]);
|
||||
let key = Object.keys(facets).find(
|
||||
(k) => facets[k] === point_out_split[0]
|
||||
);
|
||||
|
||||
if (key == undefined) {
|
||||
key = point_out_split[0];
|
||||
}
|
||||
|
||||
var modify_target_device = {
|
||||
"device_number": target_device_number ? target_device_number : null,
|
||||
device_number: target_device_number ? target_device_number : null,
|
||||
//"device_number_full": this.getDisplay("slotPath").split("slot:")[1].split('/').slice(1, -1).join("_"),
|
||||
"point_name": point_name ? point_name : null,
|
||||
"value": key
|
||||
}
|
||||
point_name: point_name ? point_name : null,
|
||||
value: key,
|
||||
};
|
||||
totalTargetDevice.push(modify_target_device);
|
||||
//取得component當下就更新設備點位
|
||||
if (baja_subscribe_electricmeter_callback_func != undefined && baja_subscribe_electricmeter_callback_func != null) {
|
||||
if (
|
||||
baja_subscribe_electricmeter_callback_func != undefined &&
|
||||
baja_subscribe_electricmeter_callback_func != null
|
||||
) {
|
||||
baja_subscribe_electricmeter_callback_func(modify_target_device);
|
||||
}
|
||||
|
||||
|
||||
baja.Ord.make(`local:|foxs:${port}|station:|` + this.getDisplay("slotPath"))
|
||||
baja.Ord.make(
|
||||
`local:|foxs:${port}|station:|` + this.getDisplay("slotPath")
|
||||
)
|
||||
.get()
|
||||
.then(function (component) {
|
||||
component_index++;
|
||||
@ -888,23 +1088,31 @@ function BajaSubscribeElectricmeterByBql(ordPathForElectricmeter) {
|
||||
tolSubList.push(sub);
|
||||
subFinish = new Date(Date.now());
|
||||
$("#sub-end").html(subFinish.toISOString());
|
||||
$("#sub-time").html((subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
$("#sub-time").html(
|
||||
(subFinish.getTime() - subStart.getTime()) / 1000 + "sec"
|
||||
);
|
||||
// console.log("訂閱完成時間", (subFinish.getTime() - subStart.getTime()) / 1000 + "sec");
|
||||
});
|
||||
},
|
||||
after: function () {
|
||||
tableFinish = new Date(Date.now());
|
||||
if (baja_subscribe_end_electricmeter_callback_func != undefined && baja_subscribe_end_electricmeter_callback_func != null) {
|
||||
if (callback !== null) {
|
||||
callback(totalTargetDevice);
|
||||
}
|
||||
if (
|
||||
baja_subscribe_end_electricmeter_callback_func != undefined &&
|
||||
baja_subscribe_end_electricmeter_callback_func != null
|
||||
) {
|
||||
baja_subscribe_end_electricmeter_callback_func(totalTargetDevice);
|
||||
}
|
||||
endPageLoading ? endPageLoading() : ""
|
||||
endPageLoading ? endPageLoading() : "";
|
||||
//console.log("表格完成時間", (tableFinish.getTime() - tableStart.getTime()) / 1000 + "sec");
|
||||
},
|
||||
limit: -1,
|
||||
offset: 0
|
||||
offset: 0,
|
||||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
// function getAlarmCountByBaja(callback) {
|
||||
|
Loading…
Reference in New Issue
Block a user