1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102 |
- BemsWebApplication.PowerSavingCycle = function (params, viewInfo) {
- "use strict";
- //전역 변수 선언
- var endpointSelector = "";
- var currentTabIndex = ko.observable(0);
- if (BemsWebApplication.config.mode == "production") {
- endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production;
- } else {
- endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local;
- }
- var initialized = false, inoutdoorinitialized = false, Etcinitialized = false;
- var SiteId = BWA.UserInfo.SiteId();
- var today = new Date();
- var searchday = new Date();
- var eq = BWA.DataUtil.constructEqualFilter;
- var AIR_HANDLING = $Code.FacilityType.AIR_HANDLING;
- var timeIntervalType = $Code.TimeIntervalType.QUARTERMIN;
- var OUTDOOR = $Code.FacilityType.OUTDOOR;
- var temp_facility_DataSource = [{
- Name: "",
- Nickname: "",
- FacilityUsage: "",
- FacilityCode: 0
- }];
- var facilityname = "", facilitynickname = "", facilityusage = "", facilitycode = 0;
- var ENTHALPY_CHECK = $Code.Formula[AIR_HANDLING].ENTHALPY_CHECK;
- var CO2 = $Code.Formula[AIR_HANDLING].CO2;
- var CO = $Code.Formula[AIR_HANDLING].CO;
- var DUST = $Code.Formula[AIR_HANDLING].DUST;
- var OZONE = $Code.Formula[AIR_HANDLING].OZONE;
- var S_VOLUME = $Code.Formula[AIR_HANDLING].S_VOLUME;
- var F_TEMP = $Code.Formula[AIR_HANDLING].F_TEMP; //환기
- var F_HUMY = $Code.Formula[AIR_HANDLING].F_HUMY;
- var formulaGet = new BWA.Chart.FormulaGet(SiteId);
- var DUTYCYCLE_ONOFF = $Code.Formula[AIR_HANDLING].DUTYCYCLE_ONOFF;
- var ONOFF = $Code.Formula[AIR_HANDLING].ONOFF; //onoff
- var OUT_TEMPERATURE = $Code.Formula[OUTDOOR].TEMPERATURE;
- var OUT_HUMIDITY = $Code.Formula[OUTDOOR].HUMIDITY;
- var chartTempOnOFF = BWA.Chart.Instance('chartTempOnOFF', 'dxChart');
- var chartFanLoad = BWA.Chart.Instance('chartFanLoad', 'dxChart');
- var chartInOut = BWA.Chart.Instance('chartInOutdoor', 'dxChart');
- var chartEtc = BWA.Chart.Instance('chartEtc', 'dxChart');
- var chartLayout = new BWA.ChartLayout({
- divs: [
- {
- id: 'TempOnOFF',
- chartId: 'chartTempOnOFF'
- },
- {
- id: 'InOutDoor',
- chartId: 'chartInOutdoor'
- },
- ,
- {
- id: 'FanLoad',
- chartId: 'chartFanLoad'
- }
- ],
- multiViewOptions: {
- viewIndex: currentTabIndex,
- viewCount: 1
- }
- });
- var IndoordataArray = [], IndoortemponoffdataArray = [], IndoorhumydataArray = [], IndooronoffdataArray = [], IndoorstempdataArray = [], IndoortempdataArray = [], finalIndoortemponoffdataArray = [], Indoortemp = false, Indoorhumy = false;
- var CodataArray = [], Co2dataArray = [], DustdataArray = [], OzonedataArray = [], EtcdataArray = [];
- var Codata = false, Co2data = false, Dustdata = false, Ozonedata = false;
- var outdoordataArray = [], outdoorhumydataArray = [], outdoortempdataArray = [], outdoortemp = false, outdoorhumy = false;
- var outdoorenthalpy = false, Indoorenthalpy = false;
- var QUARTERMIN = $Code.TimeType.QUARTERMIN;
- var visiblePopup = ko.observable(false);
- var InOutdoorDataGridPopup_Visible = ko.observable(false), EtcDataGridPopup_Visible = ko.observable(false);
- function facilitydataSourceAdd(cnt) { // 설비 개수만큼 추가
- for (var i = 0; i < cnt ; i++) {
- temp_facility_DataSource.push({
- Name: "",
- Nickname: "",
- FacilityUsage: "",
- FacilityCode: 0
- });
- }
- }
- function GetDataSource(FacilityCode, FormulaId) { // 설비 개수만큼 추가
- var BemsTempFormulaDataSource = new DevExpress.data.DataSource({ // 실내온도 가져오기
- store: {
- type: "odata",
- url: endpointSelector + "/BemsFormulaParameter"
- },
- requireTotalCount: true,
- pageSize: 5
- });
- BemsTempFormulaDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityCode', FacilityCode),
- 'and',
- eq('FormulaId', FormulaId)
- ]);
- BemsTempFormulaDataSource.load()
- .done(function (BemsFormula) {
- if (BemsFormula.length != 0) {
- if (BemsFormula.length == 1) {
- var ParameterFacilityCode = BemsFormula[0].ParameterFacilityCode;
- var parameterpropertyId = BemsFormula[0].ParameterPropertyId;
- var BemsTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsMonitoringPointHistory15min"
- },
- requireTotalCount: true,
- pageSize: 1440
- });
- BemsTempDataSource.filter([
- ['CreatedDateTime', ">=", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0)],
- 'and',
- ['CreatedDateTime', "<", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)],
- 'and',
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", ParameterFacilityCode],
- 'and',
- ['PropertyId', "=", parameterpropertyId]
- ]);
- BemsTempDataSource.sort({ getter: "CreatedDateTime", desc: true });
- BemsTempDataSource.load()
- .done(function (BemsTemp) {
- if (BemsTemp.length != 0) {
- var Temp = BemsTemp[0].CurrentValue;
- if (FormulaId == CO2) {
- Co2dataArray = [];
- var state;
- if (Temp <= 1000) {
- state = "(적정)";
- }
- else {
- state = "(부적정)";
- }
- $("#co2").dxTextBox("instance").option('value', Temp.toFixed(2) + "ppm" + state);
- for (var i = 0; i < BemsTemp.length; i++) {
- Co2dataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- Co2: BemsTemp[i].CurrentValue
- });
- }
- Co2data = true;
- }
- else if (FormulaId == CO) {
- CodataArray = [];
- var state;
- if (Temp <= 2) {
- state = "(좋음)";
- }
- else if ((2 < Temp) && (Temp <= 9)) {
- state = "(보통)";
- }
- else if ((9 < Temp) && (Temp <= 15)) {
- state = "(나쁨)";
- }
- else {
- state = "(매우나쁨)";
- }
- $("#co").dxTextBox("instance").option('value', Temp.toFixed(2) + "ppm" + state);
- for (var i = 0; i < BemsTemp.length; i++) {
- CodataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- Co: BemsTemp[i].CurrentValue
- });
- }
- Codata = true;
- }
- else if (FormulaId == DUST) {
- DustdataArray = [];
- var state;
- if (Temp <= 30) {
- state = "(좋음)";
- }
- else if ((30 < Temp) && (Temp <= 80)) {
- state = "(보통)";
- }
- else if ((80 < Temp) && (Temp <= 150)) {
- state = "(나쁨)";
- }
- else {
- state = "(매우나쁨)";
- }
- $("#dust").dxTextBox("instance").option('value', Temp.toFixed(2) + "㎍/㎥" + state);
- for (var i = 0; i < BemsTemp.length; i++) {
- DustdataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- Dust: BemsTemp[i].CurrentValue
- });
- }
- Dustdata = true;
- }
- else if (FormulaId == OZONE) {
- OzonedataArray = [];
- var state;
- if (Temp <= 0.03) {
- state = "(좋음)";
- }
- else if ((0.03 < Temp) && (Temp <= 0.09)) {
- state = "(보통)";
- }
- else if ((0.09 < Temp) && (Temp <= 0.150)) {
- state = "(나쁨)";
- }
- else {
- state = "(매우나쁨)";
- }
- $("#ozone").dxTextBox("instance").option('value', Temp.toFixed(2) + "ppm" + state);
- for (var i = 0; i < BemsTemp.length; i++) {
- OzonedataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- Ozone: BemsTemp[i].CurrentValue
- });
- }
- Ozonedata = true;
- }
- }
- else {
- utils.toast.show("[BemsMonitoringPointHistory15min] 정보가 없습니다.");
- }
- });
- }
- }
- else {
- utils.toast.show("[BemsFormulaParameter] 실내외 정보가 없습니다.");
- }
- });
- }
- function GetEnthalpyDataSource(FacilityCode, FormulaId, FormulaId2) { // 온도, 습도
- var BemsTempFormulaDataSource = new DevExpress.data.DataSource({ // 실내온도 가져오기
- store: {
- type: "odata",
- url: endpointSelector + "/BemsFormulaParameter"
- },
- requireTotalCount: true,
- pageSize: 5
- });
- BemsTempFormulaDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityCode', FacilityCode),
- 'and',
- eq('FormulaId', FormulaId)
- ]);
- BemsTempFormulaDataSource.load()
- .done(function (BemsFormula) {
- if (BemsFormula.length != 0) {
- if (BemsFormula.length == 1) {
- var ParameterFacilityCode = BemsFormula[0].ParameterFacilityCode;
- var parameterpropertyId = BemsFormula[0].ParameterPropertyId;
- var BemsTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsMonitoringPointHistory15min"
- },
- requireTotalCount: true,
- pageSize: 1440
- });
- BemsTempDataSource.filter([
- ['CreatedDateTime', ">=", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0)],
- 'and',
- ['CreatedDateTime', "<", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)],
- 'and',
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", ParameterFacilityCode],
- 'and',
- ['PropertyId', "=", parameterpropertyId]
- ]);
- BemsTempDataSource.sort({ getter: "CreatedDateTime", desc: true });
- BemsTempDataSource.load()
- .done(function (BemsTemp) {
- if (BemsTemp.length != 0) {
- var Temp = BemsTemp[0].CurrentValue;
- if (FormulaId == F_TEMP) { // 환기 온도
- IndoortempdataArray = [], IndoorhumydataArray = [], IndoortemponoffdataArray = [], IndoordataArray = [], IndoorstempdataArray = [], IndooronoffdataArray = [], finalIndoortemponoffdataArray = [];
- $("#indoor_temp").dxTextBox("instance").option('value', Temp.toFixed(2) + "℃");
- for (var i = 0; i < BemsTemp.length; i++) {
- IndoortempdataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- IndoorTemp: BemsTemp[i].CurrentValue
- });
- }
- var BemsTempFormulaDataSource = new DevExpress.data.DataSource({ // 실내온도 가져오기
- store: {
- type: "odata",
- url: endpointSelector + "/BemsFormulaParameter"
- },
- requireTotalCount: true,
- pageSize: 5
- });
- BemsTempFormulaDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityCode', FacilityCode),
- 'and',
- eq('FormulaId', FormulaId2)
- ]);
- BemsTempFormulaDataSource.load()
- .done(function (BemsFormula) {
- if (BemsFormula.length != 0) {
- if (BemsFormula.length == 1) {
- var ParameterFacilityCode = BemsFormula[0].ParameterFacilityCode;
- var parameterpropertyId = BemsFormula[0].ParameterPropertyId;
- var BemsTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsMonitoringPointHistory15min"
- },
- requireTotalCount: true,
- pageSize: 1440
- });
- BemsTempDataSource.filter([
- ['CreatedDateTime', ">=", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0)],
- 'and',
- ['CreatedDateTime', "<", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)],
- 'and',
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", ParameterFacilityCode],
- 'and',
- ['PropertyId', "=", parameterpropertyId]
- ]);
- BemsTempDataSource.sort({ getter: "CreatedDateTime", desc: true });
- BemsTempDataSource.load()
- .done(function (BemsTemp) {
- if (BemsTemp.length != 0) {
- if (FormulaId2 == F_HUMY) {
- var Temp = BemsTemp[0].CurrentValue;
- $("#indoor_humy").dxTextBox("instance").option('value', Temp.toFixed(2) + "%"); //환기 습도
- for (var i = 0; i < BemsTemp.length; i++) {
- IndoorhumydataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- IndoorHumy: BemsTemp[i].CurrentValue
- });
- }
- var array_length_size = Math.max(IndoortempdataArray.length, IndoorhumydataArray.length);
- if (IndoortempdataArray.length == IndoorhumydataArray.length) {
- for (var i = 0; i < array_length_size; i++) {
- IndoordataArray.push(
- {
- DateTime: IndoortempdataArray[i].DateTime,
- IndoorTemp: IndoortempdataArray[i].IndoorTemp,
- IndoorHumy: IndoorhumydataArray[i].IndoorHumy
- });
- }
- }
- }
- else if (FormulaId2 == ONOFF) {
- for (var i = 0; i < BemsTemp.length; i++) {
- var temp;
- if (BemsTemp[i].CurrentValue == true) {
- temp = 1;
- }
- else {
- temp = 0;
- }
- IndooronoffdataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- Indooronoff: temp
- });
- }
- var array_length_size = Math.max(IndoortempdataArray.length, IndooronoffdataArray.length);
- if (IndoortempdataArray.length == IndooronoffdataArray.length) {
- for (var i = 0; i < array_length_size; i++) {
- IndoortemponoffdataArray.push(
- {
- DateTime: IndoortempdataArray[i].DateTime,
- IndoorTemp: IndoortempdataArray[i].IndoorTemp,
- Indooronoff: IndooronoffdataArray[i].Indooronoff
- });
- }
- var BemsSTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsControlAHUTempConfig"
- },
- requireTotalCount: true,
- pageSize: 1
- });
- BemsSTempDataSource.filter([
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", ParameterFacilityCode]
- ]);
- BemsSTempDataSource.load()
- .done(function (STemp) {
- var Maxtemp, Mintemp;
- if (STemp.length == 0) {
- //utils.toast.show("공조기 기준온도가 없습니다.");
- finalIndoortemponoffdataArray = IndoortemponoffdataArray;
- }
- else {
- Maxtemp = STemp[0].MaxTemperature;
- Mintemp = STemp[0].MinTemperature;
- for (var i = 0; i < IndoortemponoffdataArray.length; i++) {
- finalIndoortemponoffdataArray.push(
- {
- DateTime: IndoortempdataArray[i].DateTime,
- IndoorTemp: IndoortempdataArray[i].IndoorTemp,
- Indooronoff: IndooronoffdataArray[i].Indooronoff,
- Maxtemp: Maxtemp,
- Mintemp: Mintemp
- });
- }
- }
- var options = BWA.ChartOptions.PowerSavingCycle.getChartTempOnOFFOptions(QUARTERMIN);
- options.dataSource = finalIndoortemponoffdataArray;
- chartTempOnOFF().option(options);
- });
- }
- }
- }
- });
- }
- }
- });
- }
- }
- else {
- utils.toast.show("[BemsMonitoringPointHistory15min] 정보가 없습니다.");
- }
- });
- }
- }
- else {
- utils.toast.show("[BemsFormulaParameter] 실내외 정보가 없습니다.");
- }
- });
- }
- function GetLoadDataSource() { //팬부하 가져오기 함수
- var facilitycode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- var formula = $Code.Formula[$Code.FacilityType.AIR_HANDLING];
- var formulaIds = _.values(formula);
- var promises = [];
- _.each(formulaIds, function (formulaId) {
- var p = formulaGet.apiGet({
- SiteId: SiteId,
- FacilityTypeId: AIR_HANDLING,
- FacilityCode: facilitycode,
- FormulaId: formulaId,
- TimeIntervalType: timeIntervalType,
- StartDate: new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0),
- EndDate: new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)
- });
- promises.push(p);
- });
- $.when.apply(this, promises)
- .done(function (A23, A24, DUTYCYCLE_CHECK) {
- A23 = A23[0];//급기팬 소비전력
- A24 = A24[0];//환기팬 소비전력
- DUTYCYCLE_CHECK = DUTYCYCLE_CHECK[0];//절전사이클 확인
- var dataArray_Temp = [];
- var dataArray_Temp1 = [];
- var dataArray_Temp2 = [];
- var dataArray_Temp3 = [];
- var dataArray_Temp4 = [];
- var dataArray_Temp5 = [];
- _.each(A23, function (x) {
- dataArray_Temp.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(QUARTERMIN, moment(x.DateTime).toDate()),
- A23: x.Value
- });
- });
- _.each(A24, function (x) {
- dataArray_Temp1.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(QUARTERMIN, moment(x.DateTime).toDate()),
- A24: x.Value
- });
- });
- _.each(DUTYCYCLE_CHECK, function (x) {
- var temp;
- if (x.Value > 0) {
- temp = 1;
- }
- else {
- temp = 0
- }
- dataArray_Temp2.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(QUARTERMIN, moment(x.DateTime).toDate()),
- DUTYCYCLE_CHECK: temp
- });
- });
- var array_length_size = Math.max(dataArray_Temp.length, dataArray_Temp1.length, dataArray_Temp2.length);
- if (dataArray_Temp.length == dataArray_Temp1.length && dataArray_Temp1.length == dataArray_Temp2.length) {
- var tempFANLoad = 0, tempSave = 0, count = 0, tempfanload = 0, save = 0;
- for (var i = 0; i < array_length_size; i++) {
- dataArray_Temp3.push(
- {
- DateTime: dataArray_Temp[i].DateTime,
- FANLoad: dataArray_Temp[i].A23 + dataArray_Temp1[i].A24,
- DUTYCYCLE_CHECK: dataArray_Temp2[i].DUTYCYCLE_CHECK
- });
- }
- for (var i = 0; i < array_length_size; i++) {
- if (dataArray_Temp3[i].DUTYCYCLE_CHECK == 1) {
- if (count == 0) {
- tempFANLoad = 0;
- tempSave = dataArray_Temp4[i - 1].FANLoad;
- }
- else {
- tempFANLoad = 0;
- tempSave = dataArray_Temp4[i - 1].Save;
- }
- count++
- }
- else {
- tempFANLoad = dataArray_Temp3[i].FANLoad;
- tempSave = 0;
- count = 0;
- }
- dataArray_Temp4.push(
- {
- DateTime: dataArray_Temp3[i].DateTime,
- FANLoad: tempFANLoad,
- Save: tempSave
- });
- tempfanload += dataArray_Temp4[i].FANLoad;
- save += dataArray_Temp4[i].Save
- }
- $("#predfanload").dxTextBox("instance").option('value', parseFloat((tempfanload + save).toFixed(2)) + "Kwh");
- $("#nowfanload").dxTextBox("instance").option('value', parseFloat(tempfanload.toFixed(2)) + "Kwh");
- $("#totlareduction").dxTextBox("instance").option('value', parseFloat(save.toFixed(2)) + "Kwh");
- }
- var dataArrayresult = dataArray_Temp4;
- var options = BWA.ChartOptions.PowerSavingCycle.getChartFanLoadOptions(QUARTERMIN);
- options.dataSource = dataArrayresult;
- chartFanLoad().option(options);
- })
- .fail(function (error) {
- });
- }
- function GetOutDataSource() { // 온도, 습도
- var BemsTempFormulaDataSource = new DevExpress.data.DataSource({ // 실내온도 가져오기
- store: {
- type: "odata",
- url: endpointSelector + "/BemsFormulaParameter"
- },
- requireTotalCount: true,
- pageSize: 5
- });
- BemsTempFormulaDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityTypeId', OUTDOOR),
- 'and',
- eq('FormulaId', OUT_TEMPERATURE)
- ]);
- BemsTempFormulaDataSource.load()
- .done(function (BemsFormula) {
- if (BemsFormula.length != 0) {
- if (BemsFormula.length == 1) {
- var parameterpropertyId = BemsFormula[0].ParameterPropertyId;
- var FacilityCode = BemsFormula[0].ParameterFacilityCode;
- var BemsTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsMonitoringPointHistory15min"
- },
- requireTotalCount: true,
- pageSize: 1440
- });
- BemsTempDataSource.filter([
- ['CreatedDateTime', ">=", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0)],
- 'and',
- ['CreatedDateTime', "<", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)],
- 'and',
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", FacilityCode],
- 'and',
- ['PropertyId', "=", parameterpropertyId]
- ]);
- BemsTempDataSource.sort({ getter: "CreatedDateTime", desc: true });
- BemsTempDataSource.load()
- .done(function (BemsTemp) {
- if (BemsTemp.length != 0) {
- var Temp = BemsTemp[0].CurrentValue;
- outdoortempdataArray = [], outdoorhumydataArray = [], outdoordataArray = [];;
- outdoortemp = true;
- $("#outdoor_temp").dxTextBox("instance").option('value', Temp.toFixed(2) + "℃");
- for (var i = 0; i < BemsTemp.length; i++) {
- outdoortempdataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- outdoorTemp: BemsTemp[i].CurrentValue
- });
- }
- var BemsTempFormulaDataSource = new DevExpress.data.DataSource({ // 실내온도 가져오기
- store: {
- type: "odata",
- url: endpointSelector + "/BemsFormulaParameter"
- },
- requireTotalCount: true,
- pageSize: 5
- });
- BemsTempFormulaDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityTypeId', OUTDOOR),
- 'and',
- eq('FormulaId', OUT_HUMIDITY)
- ]);
- BemsTempFormulaDataSource.load()
- .done(function (BemsFormula) {
- if (BemsFormula.length != 0) {
- if (BemsFormula.length == 1) {
- var parameterpropertyId = BemsFormula[0].ParameterPropertyId;
- var FacilityCode = BemsFormula[0].ParameterFacilityCode;
- var BemsTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsMonitoringPointHistory15min"
- },
- requireTotalCount: true,
- pageSize: 1440
- });
- BemsTempDataSource.filter([
- ['CreatedDateTime', ">=", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate(), 0, 0, 0)],
- 'and',
- ['CreatedDateTime', "<", new Date(searchday.getFullYear(), searchday.getMonth(), searchday.getDate() + 1, 0, 0, 0)],
- 'and',
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", FacilityCode],
- 'and',
- ['PropertyId', "=", parameterpropertyId]
- ]);
- BemsTempDataSource.sort({ getter: "CreatedDateTime", desc: true });
- BemsTempDataSource.load()
- .done(function (BemsTemp) {
- if (BemsTemp.length != 0) {
- var Temp = BemsTemp[0].CurrentValue;
- $("#outdoor_humy").dxTextBox("instance").option('value', Temp.toFixed(2) + "%");
- for (var i = 0; i < BemsTemp.length; i++) {
- outdoorhumydataArray.push({
- DateTime: BemsTemp[i].CreatedDateTime,
- outdoorHumy: BemsTemp[i].CurrentValue
- });
- }
- var array_length_size = Math.max(outdoortempdataArray.length, outdoorhumydataArray.length);
- if (outdoortempdataArray.length == outdoorhumydataArray.length) {
- for (var i = 0; i < array_length_size; i++) {
- outdoordataArray.push(
- {
- DateTime: outdoortempdataArray[i].DateTime,
- outdoorTemp: outdoortempdataArray[i].outdoorTemp,
- outdoorHumy: outdoorhumydataArray[i].outdoorHumy
- });
- }
- }
- }
- });
- }
- }
- });
- }
- else {
- utils.toast.show("[BemsMonitoringPointHistory15min] 정보가 없습니다.");
- }
- });
- }
- }
- else {
- utils.toast.show("[BemsFormulaParameter] 실내외 정보가 없습니다.");
- }
- });
- }
- function handleViewShown() {
- if (initialized === false) {
- var chartOption = BWA.ChartOptions.PowerSavingCycle;
- chartTempOnOFF = chartTempOnOFF(chartOption.getChartTempOnOFFOptions(QUARTERMIN));
- chartFanLoad = chartFanLoad(chartOption.getChartFanLoadOptions(QUARTERMIN));
- initialized = true;
- }
- $("#PowerSaving_onoff").dxSwitch({
- value: false,
- onText: 'On',
- offText: 'Off'
- });
- $("#PowerSaving_control").dxButton({
- text: "제어",
- onClick: function () {
- var PowerSavingonoff = $("#PowerSaving_onoff").dxSwitch("instance").option('value');
- if (PowerSavingonoff)
- PowerSavingonoff = 1;
- else
- PowerSavingonoff = 0;
- var FacilityTypeId = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityTypeId();
- var FacilityCode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- var param = {
- SiteId: SiteId,
- FacilityTypeId: FacilityTypeId,
- FacilityCode: FacilityCode,
- FormulaId: DUTYCYCLE_ONOFF,
- ControlValue: PowerSavingonoff,
- };
- BWA.api.post('BemsFormula/ControlPoint', null, param).done(function () {
- utils.toast.show('절전 사이클 제어 완료');
- })
- .fail(function (error) {
- utils.toast.show('절전 사이클 제어를 실패하였습니다.');
- });
- }
- });
- $("#S_Temp_Btn").dxButton({
- text: "기준온도 설정",
- onClick: function () {
- if ($("#Set_Max_Temp").dxTextBox("instance") != null)
- $("#Set_Max_Temp").dxTextBox("instance").option('value', null);
- if ($("#Set_Min_Temp").dxTextBox("instance") != null)
- $("#Set_Min_Temp").dxTextBox("instance").option('value', null);
- visiblePopup(true);
- }
- });
- $("#inoutdoor_inform").dxButton({
- text: "차트",
- onClick: function () {
- InOutdoorDataGridPopup_Visible(true);
- }
- });
- $("#etc_inform").dxButton({
- text: "차트",
- onClick: function () {
- EtcDataGridPopup_Visible(true);
- }
- });
- $("#Airconfitioner_date").dxDateBox({
- displayFormat: "yyyy-MM-dd",
- value: today,
- max: today,
- onValueChanged: function (e) {
- if (e.value != null) {
- searchday = e.value;
- facilityname = $("#Airconfitioner_select").dxSelectBox("instance").option('value').Name();
- facilitynickname = $("#Airconfitioner_select").dxSelectBox("instance").option('value').Nickname();
- facilityusage = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityUsage();
- facilitycode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- $("#facilityname").dxTextBox("instance").option('value', facilityname);
- $("#facilitynickname").dxTextBox("instance").option('value', facilitynickname);
- $("#facilityusage").dxTextBox("instance").option('value', facilityusage);
- GetEnthalpyDataSource(facilitycode, F_TEMP, F_HUMY);
- GetEnthalpyDataSource(facilitycode, F_TEMP, ONOFF);
- GetOutDataSource();
- GetLoadDataSource();
- GetDataSource(facilitycode, CO2);
- GetDataSource(facilitycode, CO);
- GetDataSource(facilitycode, DUST);
- GetDataSource(facilitycode, OZONE);
- }
- }
- });
- $("#Airconfitioner_select").dxSelectBox({
- dataSource: temp_facility_DataSource,
- displayExpr: "Nickname",
- onValueChanged: function (e) {
- if (e.value != null) {
- facilityname = e.value.Name();
- facilitynickname = e.value.Nickname();
- facilityusage = e.value.FacilityUsage();
- facilitycode = e.value.FacilityCode();
- $("#facilityname").dxTextBox("instance").option('value', facilityname);
- $("#facilitynickname").dxTextBox("instance").option('value', facilitynickname);
- $("#facilityusage").dxTextBox("instance").option('value', facilityusage);
- GetEnthalpyDataSource(facilitycode, F_TEMP, F_HUMY);
- GetEnthalpyDataSource(facilitycode, F_TEMP, ONOFF);
- GetOutDataSource();
- GetLoadDataSource();
- GetDataSource(facilitycode, CO2);
- GetDataSource(facilitycode, CO);
- GetDataSource(facilitycode, DUST);
- GetDataSource(facilitycode, OZONE);
- }
- }
- });
- $("#co").dxTextBox({
- readOnly: true
- });
- $("#co2").dxTextBox({
- readOnly: true
- });
- $("#dust").dxTextBox({
- readOnly: true
- });
- $("#ozone").dxTextBox({
- readOnly: true
- });
- $("#predfanload").dxTextBox({
- readOnly: true
- });
- $("#nowfanload").dxTextBox({
- readOnly: true
- });
- $("#totlareduction").dxTextBox({
- readOnly: true
- });
- $("#outdoor_humy").dxTextBox({
- readOnly: true
- });
- $("#outdoor_temp").dxTextBox({
- readOnly: true
- });
- $("#indoor_humy").dxTextBox({
- readOnly: true
- });
- $("#indoor_temp").dxTextBox({
- readOnly: true
- });
- $("#enthalpy_content").dxTextBox({
- readOnly: true
- });
- $("#facilityname").dxTextBox({
- readOnly: true,
- });
- $("#facilitynickname").dxTextBox({
- readOnly: true,
- });
- $("#facilityusage").dxTextBox({
- readOnly: true,
- });
- }
- function handleViewHidden() {
- var paging = BWA.ChartLayout.Paging;
- paging.sideOverlayVisible(false);
- }
- function handleViewShowing() {
- var facilityDataSource = BWA.db.createDataSource('CmFacility');
- facilityDataSource.filter([
- eq('SiteId', SiteId),
- 'and',
- eq('FacilityTypeId', AIR_HANDLING)
- ]);
- facilityDataSource.load().done(function (facilities) {
- var cnt = 0, k = 0;
- if (facilities.length != 0) {
- for (var i = 0; i < facilities.length; i++) {
- if ((facilities[i].Nickname().substring(0, 3) != "OHU") && (facilities[i].Nickname().substring(0, 3) != "OAU")) {
- cnt++;
- }
- }
- var tempfacilities = new Array(cnt);
- for (var i = 0; i < facilities.length; i++) {
- if ((facilities[i].Nickname().substring(0, 3) != "OHU") && (facilities[i].Nickname().substring(0, 3) != "OAU")) {
- tempfacilities[k] = facilities[i];
- k++;
- }
- }
- if (tempfacilities.length > 1) {
- facilitydataSourceAdd(tempfacilities.length - 1);
- }
- temp_facility_DataSource = tempfacilities;
- $("#Airconfitioner_select").dxSelectBox({
- dataSource: temp_facility_DataSource,
- displayExpr: "Nickname",
- });
- $("#Airconfitioner_select").dxSelectBox("instance").option('value', temp_facility_DataSource[0]);
- }
- else {
- utils.toast.show("[CmFacility] 공조기 정보가 없습니다.");
- }
- });
- }
- function InoutDoorhandlePopupShown() {
- if (inoutdoorinitialized === false) {
- var chartOption = BWA.ChartOptions.EnthalpyControl;
- chartInOut = chartInOut(chartOption.getChartInOutDoorOptions(QUARTERMIN));
- inoutdoorinitialized = true;
- }
- var Array = [];
- var enthalpy_length_size = Math.max(IndoordataArray.length, outdoordataArray.length);
- if (IndoordataArray.length == outdoordataArray.length) {
- for (var i = 0; i < enthalpy_length_size; i++) {
- Array.push(
- {
- DateTime: IndoordataArray[i].DateTime,
- IndoorTemp: IndoortempdataArray[i].IndoorTemp,
- IndoorHumy: IndoorhumydataArray[i].IndoorHumy,
- outdoorTemp: outdoordataArray[i].outdoorTemp,
- outdoorHumy: outdoordataArray[i].outdoorHumy
- });
- }
- var options = BWA.ChartOptions.EnthalpyControl.getChartInOutDoorOptions(QUARTERMIN);
- options.dataSource = Array;
- chartInOut().option(options);
- }
- }
- function isNumber(s) {
- s += ''; // 문자열로 변환
- s = s.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
- if (s == '' || isNaN(s)) return false;
- return true;
- }
- function EtchandlePopupShown() {
- if (Etcinitialized === false) {
- var chartOption = BWA.ChartOptions.EnthalpyControl;
- chartEtc = chartEtc(chartOption.getChartEtcOptions(QUARTERMIN));
- Etcinitialized = true;
- }
- if (Ozonedata && Dustdata && Codata && Co2data) {
- EtcdataArray = [];
- var array_length_size = Math.max(OzonedataArray.length, DustdataArray.length, CodataArray.length, Co2dataArray.length);
- if (OzonedataArray.length == DustdataArray.length && CodataArray.length == Co2dataArray.length && DustdataArray.length == CodataArray.length) {
- for (var i = 0; i < array_length_size; i++) {
- EtcdataArray.push(
- {
- DateTime: OzonedataArray[i].DateTime,
- Ozone: OzonedataArray[i].Ozone,
- Dust: DustdataArray[i].Dust,
- Co: CodataArray[i].Co,
- Co2: Co2dataArray[i].Co2
- });
- }
- }
- Ozonedata = false, Dustdata = false, Codata = false, Co2data = false;
- var options = BWA.ChartOptions.EnthalpyControl.getChartEtcOptions(QUARTERMIN);
- options.dataSource = EtcdataArray;
- chartEtc().option(options);
- }
- }
- function handleSearchInSearchView(filter, searchViewItems) {
- }
- var searchViewOptions = {
- }
- var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView, undefined, chartLayout), {
- viewHidden: handleViewHidden,
- viewShowing: handleViewShowing,
- onHidden: function () {
- },
- });
- viewModel.InoutDoorDataGridPopupOptions = {
- width: '1000px',
- height: '550px',
- contentTemplate: "content",
- showTitle: true,
- title: "차트",
- visible: InOutdoorDataGridPopup_Visible,
- dragEnabled: true,
- closeOnOutsideClick: true,
- shownAction: InoutDoorhandlePopupShown,
- animation: window.utils.popup.createAnimation()
- };
- viewModel.EtcDataGridPopupOptions = {
- width: '1000px',
- height: '550px',
- contentTemplate: "content",
- showTitle: true,
- title: "차트",
- visible: EtcDataGridPopup_Visible,
- dragEnabled: true,
- closeOnOutsideClick: true,
- shownAction: EtchandlePopupShown,
- animation: window.utils.popup.createAnimation()
- };
- viewModel.popupOptions = {
- width: 330,
- height: 200,
- visible: visiblePopup,
- dragEnabled: true,
- shading: true,
- closeOnOutsideClick: true,
- shadingColor: 'transparent',
- showTitle: true,
- title: "기준온도 설정",
- showCloseButton: true,
- onShowing: function () {
- },
- onShown: function (t, tt) {
- $("#Save_Btn").dxButton({
- text: "저장",
- onClick: function () {
- var tempfacilitycode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- var tempMaxvalue = $("#Set_Max_Temp").dxTextBox("instance").option('value');
- var tempMinvalue = $("#Set_Min_Temp").dxTextBox("instance").option('value');
- if (!isNumber(tempMaxvalue) || !isNumber(tempMinvalue)) {
- utils.toast.show("숫자를 입력해주십시요.");
- }
- if (!(tempMaxvalue) >= tempMinvalue) {
- utils.toast.show("기준온도 최대값 , 최소값이 잘못 입력되었습니다.");
- return;
- }
- else {
- tempMaxvalue = parseFloat(parseFloat(tempMaxvalue).toFixed(2));
- tempMinvalue = parseFloat(parseFloat(tempMinvalue).toFixed(2));
- $("#Set_Max_Temp").dxTextBox("instance").option('value', tempMaxvalue);
- $("#Set_Min_Temp").dxTextBox("instance").option('value', tempMinvalue);
- var BemsSTempDataSource = new DevExpress.data.DataSource({
- store: {
- type: "odata",
- url: endpointSelector + "/BemsControlAHUTempConfig"
- },
- requireTotalCount: true,
- pageSize: 1
- });
- BemsSTempDataSource.filter([
- ['SiteId', "=", SiteId],
- 'and',
- ['FacilityCode', "=", tempfacilitycode]
- ]);
- BemsSTempDataSource.load()
- .done(function (STemp) {
- if (STemp.length == 0) {
- BWA.api.post('BemsControlAHUTempConfig/Insert', {
- SiteId: SiteId,
- FacilityTypeId: AIR_HANDLING,
- FacilityCode: tempfacilitycode,
- MaxTemperature: tempMaxvalue,
- MinTemperature: tempMinvalue
- }).done(function () {
- var facilitycode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- GetEnthalpyDataSource(facilitycode, F_TEMP, F_HUMY);
- GetEnthalpyDataSource(facilitycode, F_TEMP, ONOFF);
- utils.toast.show("공조기 기준온도를 설정하였습니다.");
- visiblePopup(false);
- }).fail(function (error) {
- utils.toast.show("공조기 기준온도 설정를 실패하였습니다.");
- });
- }
- else {
- BWA.api.post('BemsControlAHUTempConfig/Update', {
- SiteId: SiteId,
- FacilityTypeId: AIR_HANDLING,
- FacilityCode: tempfacilitycode,
- MaxTemperature: tempMaxvalue,
- MinTemperature: tempMinvalue
- }).done(function () {
- var facilitycode = $("#Airconfitioner_select").dxSelectBox("instance").option('value').FacilityCode();
- GetEnthalpyDataSource(facilitycode, F_TEMP, F_HUMY);
- GetEnthalpyDataSource(facilitycode, F_TEMP, ONOFF);
- utils.toast.show("공조기 기준온도를 설정하였습니다.");
- visiblePopup(false);
- }).fail(function (error) {
- utils.toast.show("공조기 기준온도 설정를 실패하였습니다.");
- });
- }
- });
- }
- }
- });
- $("#Set_Max_Temp").dxTextBox({
- placeholder: "기준온도 최대값 설정"
- });
- $("#Set_Min_Temp").dxTextBox({
- placeholder: "기준온도 최소값 설정"
- });
- },
- onHidden: function () {
- }
- };
- viewModel.currentTabIndex = currentTabIndex;
- return viewModel;
- };
|