BemsWebApplication.PlanEstablishment = function (params, viewInfo) { "use strict"; //로딩 팝업 visible초기화 false var visiblePopup = ko.observable(false); //에너지원 선택 초기화 통합 var energySelectButton = "all"; //캘린더 선택 초기화 월 var yearSelectButton = "month"; var m3calValue; var temppowerFacilityCode, tempgasFacilityCode, tempwaterFacilityCode; var SITEID = BWA.UserInfo.SiteId(); var FuelTypeIdtemp; var endpointSelector = ""; 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; } //각 에너지원 메인 차트 데이터 소스 Array //월,목표값,실적값으로 구성, 캘런더 년기준 선택시 월->년단위로 변경 var dataSource = [{ dateTime: "1", //월 Prediction: 0, //목표값 Perform: 0, //실적값 Goal: 0 }, { dateTime: "2", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "3", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "4", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "5", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "6", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "7", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "8", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "9", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "10", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "11", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "12", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "13", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "14", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "15", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "16", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "17", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "18", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "19", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "20", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "21", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "22", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "23", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "24", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "25", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "26", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "27", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "28", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "29", Prediction: 0, Perform: 0 , Goal: 0 }, { dateTime: "30", Prediction: 0, Perform: 0, Goal: 0 }, { dateTime: "31", Prediction: 0, Perform: 0 , Goal: 0 }]; //각 에너지원 메인 차트 데이터 소스 Array var allDataSource = [{ dateTime: "1", //날짜 PredictionPower: 0, //전력목표값 PredictionGas: 0, //가스목표값 PerformPower: 0, //전력실적값 PerformGas: 0 //가스실적값 }, { dateTime: "2", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "3", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "4", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "5", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "6", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "7", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "8", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "9", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "10", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "11", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "12", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "13", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "14", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "15", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "16", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "17", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "18", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "19", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "20", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "21", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "22", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "23", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "24", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "25", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "26", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "27", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "28", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "29", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "30", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }, { dateTime: "31", PredictionPower: 0, PredictionGas: 0, PerformPower: 0, PerformGas: 0 }]; var goalDataSource = { }; function handleViewShowing() { var getCmFacilitypowerDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility" }, requireTotalCount: true, pageSize: 3 }); getCmFacilitypowerDataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityTypeId", "=", $Code.FacilityType.ELECTRICITY] ]); getCmFacilitypowerDataSource.load() .done(function (Result) { if (Result.length != 0) { temppowerFacilityCode = Result[0].FacilityCode; } else { utils.toast.show("[CmFacility] 전력 데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show("[CmFacility] 전력 데이터를 불러오는데 실패 하였습니다."); }); var getCmFacilitygasDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility" }, requireTotalCount: true, pageSize: 3 }); getCmFacilitygasDataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityTypeId", "=", $Code.FacilityType.GAS] ]); getCmFacilitygasDataSource.load() .done(function (Result) { if (Result.length != 0) { tempgasFacilityCode = Result[0].FacilityCode; } else { utils.toast.show("[CmFacility] 가스 데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show("[CmFacility] 가스 데이터를 불러오는데 실패 하였습니다."); }); var getCmFacilitywaterDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/CmFacility" }, requireTotalCount: true, pageSize: 3 }); getCmFacilitywaterDataSource.filter([ ["SiteId", "=", SITEID], "and", ["FacilityTypeId", "=", $Code.FacilityType.WATER] ]); getCmFacilitywaterDataSource.load() .done(function (Result) { if (Result.length != 0) { tempwaterFacilityCode = Result[0].FacilityCode; } else { utils.toast.show("[CmFacility] 수도 데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show("[CmFacility] 수도 데이터를 불러오는데 실패 하였습니다."); }); var getTOEDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFactorToe" }, requireTotalCount: true, pageSize: 3 }); getTOEDataSource.load() .done(function (Result) { var powertoe, gastoe; if (Result.length != 0) { for (var i = 0; i < Result.length; i++) { if (Result[i].FuelTypeId == 1) { powertoe = Result[i].TotalFactor; } if (Result[i].FuelTypeId == 2) { gastoe = Result[i].TotalFactor; } } if (powertoe != null && gastoe != null) m3calValue = gastoe / powertoe; } else { utils.toast.show("[BemsFactorToe] 데이터가 없습니다."); } }) .fail(function (error) { utils.toast.show("[BemsFactorToe] 데이터를 불러오는데 실패 하였습니다."); }); } //재귀합산을 위한 전력 메타데이터카운트 var powerMetaResultCnt = 0; //재귀합산을 위한 가스 메타데이터카운트 var gasMetaResultCnt = 0; var powerMetaResultArray; var gasMetaResultArray; function getAllData2(SiteId) { var sumPrediction = 0; var sumPerform = 0; var compareValue = 0; var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); $("#sideBarChart").dxChart("instance").option('commonSeriesSettings').type = "stackedBar"; var opt = [ { valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#007994' }, { valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#03C700' }, { valueField: "PerformPower", name: "전력 사용량", stack: "perform", color: '#5F8B95' }, { valueField: "PerformGas", name: "가스 사용량", stack: "perform", color: '#7CC77B' }, ]; $("#sideBarChart").dxChart("instance").option('series', opt); for (var i = 0; i < allDataSource.length; i++) { allDataSource[i].dateTime = i + 1; allDataSource[i].PredictionPower = 0; allDataSource[i].PredictionGas = 0; allDataSource[i].PerformPower = 0; allDataSource[i].PerformGas = 0; } $("#sideBarChart").dxChart("instance").option('dataSource', allDataSource); var powerMetaDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormulaParameter" }, map: function (itemData) { return { SiteId: itemData.SiteId, FacilityTypeId: itemData.FacilityTypeId, FormulaId: itemData.FormulaId, ParameterFacilityCode: itemData.ParameterFacilityCode, ParameterPropertyId: itemData.ParameterPropertyId } }, requireTotalCount: true, pageSize: 20 }); powerMetaDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FacilityCode", "=", temppowerFacilityCode], //전력 시설ID "and", ["FormulaId", "=", 1] ]); powerMetaDataSource.sort({ getter: "ParameterPropertyId", asc: true }); powerMetaDataSource.load() .done(function (powerMetaResult) { powerMetaResultArray = new Array(powerMetaResult.length); for (var t in powerMetaResult) { powerMetaResultArray[t] = new Array(5); } for (var i in powerMetaResult) { powerMetaResultArray[i][0] = powerMetaResult[i].SiteId; powerMetaResultArray[i][1] = powerMetaResult[i].FacilityTypeId; powerMetaResultArray[i][2] = powerMetaResult[i].FormulaId; powerMetaResultArray[i][3] = powerMetaResult[i].ParameterFacilityCode; powerMetaResultArray[i][4] = powerMetaResult[i].ParameterPropertyId; } getAllPredictionData(SiteId, 1, powerMetaResultArray[powerMetaResultCnt], powerMetaResultArray.length); powerMetaResultCnt = 0; }) .fail(function (error) { utils.toast.show("데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } function getAllPredictionData(SiteId, FuelTypeId, metaResultArrayElement, recursiveCnt) { var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var predictionDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsEnergyDaily" }, map: function (itemData) { return { dateTime: itemData.CreatedDate, Prediction: itemData.Goal, } }, requireTotalCount: true, pageSize: 366 }); if (yearSelectButton == "year") { predictionDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FuelTypeId", "=", FuelTypeId], "and", ["CreatedDate", ">=", new Date(tmpDate.getFullYear(), 0, 1)], "and", ["CreatedDate", "<", new Date(tmpDate.getFullYear(), 12, 31)] ]); } else if (yearSelectButton == "month") { predictionDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FuelTypeId", "=", FuelTypeId], "and", ["CreatedDate", ">=", new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 1)],//tmpDate.getMonth() "and", ["CreatedDate", "<", new Date(tmpDate.getFullYear(), tmpDate.getMonth() + 1, 1)] //new Date(tmpDate.getFullYear(), tmpDate.getMonth(), endDay)] ]); } else { utils.toast.show("년월 선택이 되지 않았습니다."); } predictionDataSource.sort({ getter: "CreatedDate", asc: true }); predictionDataSource.load() .done(function (predictionResult) { for (var i in predictionResult) { if (yearSelectButton == "year") { allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].dateTime = (predictionResult[i].dateTime.getMonth() + 1).toString(); if (energySelectButton == "gaskwh") {//가스m3변환 if (FuelTypeId == 1) { allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionPower = allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionPower + predictionResult[i].Prediction;//1kWh당 10430kcal } else if (FuelTypeId == 2) { allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionGas = allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionGas + predictionResult[i].Prediction;//1kWh당 10430kcal } else { utils.toast.show("에너지원 선택이 없습니다."); } sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear()) { if (YearToDay() - 1 >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { if (FuelTypeId == 1) { allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionPower = allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionPower + predictionResult[i].Prediction; } else if (FuelTypeId == 2) { allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionGas = allDataSource[(predictionResult[i].dateTime.getMonth()).toString()].PredictionGas + predictionResult[i].Prediction; } else { utils.toast.show("에너지원 선택이 없습니다."); } sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear()) { if (YearToDay() - 1 >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } } else if (yearSelectButton == "month") { allDataSource[i].dateTime = (parseInt(i) + 1).toString(); if (energySelectButton == "gaskwh") {//가스m3변환 if (FuelTypeId == 1) { allDataSource[i].PredictionPower = predictionResult[i].Prediction; } else if (FuelTypeId == 2) { allDataSource[i].PredictionGas = predictionResult[i].Prediction; } else { utils.toast.show("에너지원 선택이 없습니다."); } sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear() && tmpDate.getMonth() == new Date().getMonth()) { if ((new Date().getDate() - 1) >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { if (FuelTypeId == 1) { allDataSource[i].PredictionPower = predictionResult[i].Prediction; } else if (FuelTypeId == 2) { allDataSource[i].PredictionGas = predictionResult[i].Prediction; } else { utils.toast.show("에너지원 선택이 없습니다."); } sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear() && tmpDate.getMonth() == new Date().getMonth()) { if ((new Date().getDate() - 1) >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } } } GetAllPerformData(metaResultArrayElement, recursiveCnt, FuelTypeId); }) .fail(function (error) { utils.toast.show("데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } function GetAllPerformData(metaResultArrayElement, recursiveCnt, FuelTypeId) { if (metaResultArrayElement == null) { $("#LoadPanel").dxLoadPanel('instance').option('visible', false); utils.toast.show("데이터가 존재하지 않습니다.."); return; } var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var getPerformDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, map: function (itemData) { return { dateTime: itemData.CreatedDateTime, Perform: itemData.DailyValue } }, requireTotalCount: true, pageSize: 366 }); if (yearSelectButton == "year") { getPerformDataSource.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", metaResultArrayElement[3]], "and", ["PropertyId", "=", metaResultArrayElement[4]], "and", ["CreatedDateTime", ">=", new Date(tmpDate.getFullYear(), 0, 1)], "and", ["CreatedDateTime", "<", new Date(tmpDate.getFullYear(), 12, 31)] ]); } else if (yearSelectButton == "month") { getPerformDataSource.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", metaResultArrayElement[3]], "and", ["PropertyId", "=", metaResultArrayElement[4]], "and", ["CreatedDateTime", ">=", new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 1)],// tmpDate.getMonth() "and", ["CreatedDateTime", "<", new Date(tmpDate.getFullYear(), tmpDate.getMonth() + 1, 1)] ]); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } getPerformDataSource.sort({ getter: "CreatedDateTime", asc: true }); getPerformDataSource.load() .done(function (result) { for (var i in result) { if (yearSelectButton == "year") { if (energySelectButton == "gaskwh" || energySelectButton == "all") {//가스m3변환 if (FuelTypeId == 1) { allDataSource[(result[i].dateTime.getMonth()).toString()].PerformPower = allDataSource[(result[i].dateTime.getMonth()).toString()].PerformPower + result[i].Perform; } else if (FuelTypeId == 2) { allDataSource[(result[i].dateTime.getMonth()).toString()].PerformGas = allDataSource[(result[i].dateTime.getMonth()).toString()].PerformGas + result[i].Perform * m3calValue; } else { utils.toast.show("에너지원 선택이 없습니다."); } if (FuelTypeId == 2) { totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()) * m3calValue; } else { totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } } else { if (FuelTypeId == 1) { allDataSource[(result[i].dateTime.getMonth()).toString()].PerformPower = allDataSource[(result[i].dateTime.getMonth()).toString()].PerformPower + result[i].Perform; } else if (FuelTypeId == 2) { allDataSource[(result[i].dateTime.getMonth()).toString()].PerformGas = allDataSource[(result[i].dateTime.getMonth()).toString()].PerformGas + result[i].Perform; } else { utils.toast.show("에너지원 선택이 없습니다."); } totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } performLength++; } else if (yearSelectButton == "month") { var GetDate = result[i].dateTime.getDate() - 1; //목표데이터와 실측데이터 병합 if (energySelectButton == "gaskwh" || energySelectButton == "all") {//가스m3변환 if (FuelTypeId == 1) { allDataSource[GetDate].PerformPower = allDataSource[GetDate].PerformPower + result[i].Perform; //kgpark } else if (FuelTypeId == 2) { allDataSource[GetDate].PerformGas = allDataSource[GetDate].PerformGas + result[i].Perform * m3calValue; } else { utils.toast.show("에너지원 선택이 없습니다."); } if (FuelTypeId == 2) { totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()) * m3calValue; } else { totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } } else { if (FuelTypeId == 1) { allDataSource[GetDate].PerformPower = allDataSource[GetDate].PerformPower + result[i].Perform; } else if (FuelTypeId == 2) { allDataSource[GetDate].PerformGas = allDataSource[GetDate].PerformGas + result[i].Perform; } else { utils.toast.show("에너지원 선택이 없습니다."); } totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } performLength++; } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } } recursiveCnt--; if (recursiveCnt >= 1) { if (FuelTypeId == 1) { powerMetaResultCnt++; GetAllPerformData(powerMetaResultArray[powerMetaResultCnt], recursiveCnt, FuelTypeId); } else if (FuelTypeId == 2) { gasMetaResultCnt++; GetAllPerformData(gasMetaResultArray[gasMetaResultCnt], recursiveCnt, FuelTypeId); } } else { if (FuelTypeId == 2) { SetEnergyResult(); } else if (FuelTypeId == 1) { //가스 메타 조회 var gasMetaDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormulaParameter" }, map: function (itemData) { return { SiteId: itemData.SiteId, FacilityTypeId: itemData.FacilityTypeId, FormulaId: itemData.FormulaId, ParameterFacilityCode: itemData.ParameterFacilityCode, ParameterPropertyId: itemData.ParameterPropertyId } }, requireTotalCount: true, pageSize: 20 }); gasMetaDataSource.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", tempgasFacilityCode], //가스 시설ID "and", ["FormulaId", "=", 1] ]); gasMetaDataSource.sort({ getter: "ParameterPropertyId", asc: true }); gasMetaDataSource.load() .done(function (gasMetaResult) { gasMetaResultArray = new Array(gasMetaResult.length); for (var t in gasMetaResult) { gasMetaResultArray[t] = new Array(5); } for (var i in gasMetaResult) { gasMetaResultArray[i][0] = gasMetaResult[i].SiteId; gasMetaResultArray[i][1] = gasMetaResult[i].FacilityTypeId; gasMetaResultArray[i][2] = gasMetaResult[i].FormulaId; gasMetaResultArray[i][3] = gasMetaResult[i].ParameterFacilityCode; gasMetaResultArray[i][4] = gasMetaResult[i].ParameterPropertyId; } getAllPredictionData(metaResultArrayElement[0], 2, gasMetaResultArray[gasMetaResultCnt], gasMetaResultArray.length); }) .fail(function (error) { utils.toast.show("데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } else { } } return true; }) .fail(function (error) { utils.toast.show("사용량 데이터를 불러오는데 실패 하였습니다."); }); } function YearToDay() { var msecPerMinute = 1000 * 60; var msecPerHour = msecPerMinute * 60; var msecPerDay = msecPerHour * 24; var date = new Date(); var dateMsec = date.getTime(); date.setMonth(0); date.setDate(1); date.setHours(0, 0, 0, 0); var interval = dateMsec - date.getTime(); var days = Math.floor(interval / msecPerDay); return days; } var performLength = 0; var metaResultCnt = 0; var sumPrediction = 0; var sumCurPrediction = 0; var metaResultArray; function getEnergyData2(SiteId, FacilityTypeId, FormulaId, FuelTypeId) { var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); FuelTypeIdtemp = FuelTypeId; //통합->각 에너지원별 차트 타입 초기화 $("#sideBarChart").dxChart("instance").option('commonSeriesSettings').type = "bar"; var opt; if (yearSelectButton == "year") { if (FuelTypeId == 1) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#72A7B3' }, { valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' } ]; } else if (FuelTypeId == 2) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#90E68E' }, { valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' } ]; } else if (FuelTypeId == 3) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#FAE0D4' }, { valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' } ]; } else { utils.toast.show("에너지원이 선택되지 않았습니다."); } } else { if (FuelTypeId == 1) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#72A7B3' }, { valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' } // , { valueField: "Goal", name: "목표치", color: '#FF0000', type: 'line' } ]; } else if (FuelTypeId == 2) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#90E68E' }, { valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' } //, { valueField: "Goal", name: "목표치", color: '#FF0000', type: 'line' } ]; } else if (FuelTypeId == 3) { opt = [ //{ valueField: "Prediction", name: "목표", color: '#FAE0D4' }, { valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' } // , { valueField: "Goal", name: "목표치", color: '#FF0000', type: 'line' } ]; } else { utils.toast.show("에너지원이 선택되지 않았습니다."); } } $("#sideBarChart").dxChart("instance").option('series', opt); //dataSource 초기화 for (var i = 0; i < dataSource.length; i++) { dataSource[i].dateTime = i + 1; dataSource[i].Prediction = 0; dataSource[i].Perform = 0; dataSource[i].Goal = 0; } $("#sideBarChart").dxChart("instance").option('dataSource', dataSource); var metaDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsFormulaParameter" }, map: function (itemData) { return { SiteId: itemData.SiteId, FacilityTypeId: itemData.FacilityTypeId, FormulaId: itemData.FormulaId, ParameterFacilityCode: itemData.ParameterFacilityCode, ParameterPropertyId: itemData.ParameterPropertyId } }, requireTotalCount: true, pageSize: 20 }); metaDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FacilityTypeId", "=", FacilityTypeId], "and", ["FormulaId", "=", FormulaId] ]); metaDataSource.sort({ getter: "ParameterPropertyId", asc: true }); metaDataSource.load() .done(function (metaResult) { //목표데이터는 1번 조회, 조회합계 산출 var getPredictionDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsEnergyDaily" }, map: function (itemData) { return { dateTime: itemData.CreatedDate, Prediction: itemData.Goal, } }, requireTotalCount: true, pageSize: 366 }); if (yearSelectButton == "year") { getPredictionDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FuelTypeId", "=", FuelTypeId], "and", ["CreatedDate", ">=", new Date(tmpDate.getFullYear(), 0, 1)], "and", ["CreatedDate", "<", new Date(tmpDate.getFullYear(), 12, 31)] ]); } else if (yearSelectButton == "month") { getPredictionDataSource.filter([ ["SiteId", "=", SiteId], "and", ["FuelTypeId", "=", FuelTypeId], "and", ["CreatedDate", ">=", new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 1)], "and", ["CreatedDate", "<", new Date(tmpDate.getFullYear(), tmpDate.getMonth() + 1, 1)] ]); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } getPredictionDataSource.sort({ getter: "CreatedDate", asc: true }); getPredictionDataSource.load() .done(function (predictionResult) { for (var i in predictionResult) { //getPredictionDataSource._items[i].dateTime = (parseInt(i) + 1).toString(); if (yearSelectButton == "year") { dataSource[(predictionResult[i].dateTime.getMonth()).toString()].dateTime = (predictionResult[i].dateTime.getMonth() + 1).toString(); if (energySelectButton == "gasm3") {//가스m3변환 dataSource[(predictionResult[i].dateTime.getMonth()).toString()].Prediction = dataSource[(predictionResult[i].dateTime.getMonth()).toString()].Prediction + predictionResult[i].Prediction / m3calValue;//1kWh당 10430kcal sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString() / m3calValue); if (tmpDate.getFullYear() == new Date().getFullYear()) { if (YearToDay() - 1 >= i) { sumCurPrediction = parseFloat((parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()) / m3calValue)); } } else { sumCurPrediction = parseFloat((parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()) / m3calValue)); } } else { dataSource[(predictionResult[i].dateTime.getMonth()).toString()].Prediction = dataSource[(predictionResult[i].dateTime.getMonth()).toString()].Prediction + predictionResult[i].Prediction; sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear()) { if (YearToDay() - 1 >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } } else if (yearSelectButton == "month") { dataSource[i].dateTime = (parseInt(i) + 1).toString(); if (energySelectButton == "gasm3") {//가스m3변환 dataSource[i].Prediction = predictionResult[i].Prediction / m3calValue; sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()) / m3calValue; if (tmpDate.getFullYear() == new Date().getFullYear() && tmpDate.getMonth() == new Date().getMonth()) { if ((new Date().getDate() - 1) >= i) { sumCurPrediction = parseFloat((parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()) / m3calValue)); } } else { sumCurPrediction = parseFloat((parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()) / m3calValue)); } } else { dataSource[i].Prediction = predictionResult[i].Prediction; sumPrediction = parseFloat(sumPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); if (tmpDate.getFullYear() == new Date().getFullYear() && tmpDate.getMonth() == new Date().getMonth()) { if ((new Date().getDate() - 1) >= i) { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } else { sumCurPrediction = parseFloat(sumCurPrediction.toString()) + parseFloat(predictionResult[i].Prediction.toString()); } } } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } } metaResultArray = new Array(metaResult.length); for (var t in metaResult) { metaResultArray[t] = new Array(5); } for (var i in metaResult) { metaResultArray[i][0] = metaResult[i].SiteId; metaResultArray[i][1] = metaResult[i].FacilityTypeId; metaResultArray[i][2] = metaResult[i].FormulaId; metaResultArray[i][3] = metaResult[i].ParameterFacilityCode; metaResultArray[i][4] = metaResult[i].ParameterPropertyId; } GetPerformData(metaResultArray[metaResultCnt], metaResultArray.length); if (yearSelectButton == "month") sumPerform_function(metaResultArray[metaResultCnt]); }) .fail(function (error) { utils.toast.show("목표 데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); }) .fail(function (error) { utils.toast.show("메타 데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } function delay(gap) { /* gap is in millisecs */ var then, now; then = new Date().getTime(); now = then; while ((now - then) < gap) { now = new Date().getTime(); // 현재시간을 읽어 함수를 불러들인 시간과의 차를 이용하여 처리 } } var totalPerform = 0; var sumPerform = 0; function SetEnergyResult() { var compareValue = 0; var today = new Date(); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); if (energySelectButton == "all") { $("#sideBarChart").dxChart("instance").option('dataSource', allDataSource);//병합데이터 최종 연동 } else { $("#sideBarChart").dxChart("instance").option('dataSource', dataSource);//병합데이터 최종 연동 } $("#textPrediction").html(numberWithCommas(sumPrediction.toFixed(2).toString())); $("#textPrediction2").html(numberWithCommas(sumCurPrediction.toFixed(2).toString())); $("#textPerform").html(numberWithCommas(totalPerform.toFixed(2).toString())); if (yearSelectButton == "year") { if (energySelectButton == "all") { var length = powerMetaResultArray.length + gasMetaResultArray.length; if (tmpDate.getFullYear() != new Date().getFullYear()) { $("#textPredictionStandard").html("[1.1 ~ 12.31]"); $("#textPerformStandard").html("[1.1 ~ 12.31]"); } else { var tempDate = new Date(); $("#textPredictionStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); $("#textPerformStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); } } else { if (tmpDate.getFullYear() != new Date().getFullYear()) { $("#textPredictionStandard").html("[1.1 ~ 12.31]"); $("#textPerformStandard").html("[1.1 ~ 12.31]"); } else { var tempDate = new Date(); $("#textPredictionStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); $("#textPerformStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); } } } else if (yearSelectButton == "month") { if (energySelectButton == "all") { var length = powerMetaResultArray.length + gasMetaResultArray.length; if (tmpDate.getFullYear() == today.getFullYear() && tmpDate.getMonth() == today.getMonth()) { $("#textPredictionStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); $("#textPerformStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); } else { $("#textPredictionStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); $("#textPerformStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); } } else { if (tmpDate.getFullYear() == today.getFullYear() && tmpDate.getMonth() == today.getMonth()) { $("#textPredictionStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); $("#textPerformStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); } else { $("#textPredictionStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); $("#textPerformStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); } } } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } if (totalPerform != 0) { compareValue = totalPerform / sumCurPrediction; compareValue = (compareValue * 100).toFixed(2); var resultTmp = compareValue; if (!isFinite(resultTmp) || isNaN(resultTmp)) { $("#textResult").html("계산수치 부적절"); } else { $("#textResult").html(resultTmp.toString() + "%"); } } else { compareValue = totalPerform / sumCurPrediction; compareValue = (compareValue * 100).toFixed(2); var resultTmp = (100 - compareValue).toFixed(2); if (!isFinite(resultTmp) || isNaN(resultTmp)) { $("#textResult").html("계산수치 부적절"); } else { $("#textResult").html(compareValue.toString() + "%"); } } if (yearSelectButton == "year") { if (energySelectButton == "all") { var length = powerMetaResultArray.length + gasMetaResultArray.length; var tempDate = new Date(); if (tmpDate.getFullYear() == today.getFullYear()) { $("#textResultStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); } else { $("#textResultStandard").html("[1.1 ~ 12.31]"); } } else { var tempDate = new Date(); if (tmpDate.getFullYear() == today.getFullYear()) { $("#textResultStandard").html("[1.1 ~ " + (tempDate.getMonth() + 1) + "." + tempDate.getDate() + "]"); } else { $("#textResultStandard").html("[1.1 ~ 12.31]"); } } } else if (yearSelectButton == "month") { if (energySelectButton == "all") { var length = powerMetaResultArray.length + gasMetaResultArray.length; if (tmpDate.getFullYear() == today.getFullYear() && tmpDate.getMonth() == today.getMonth()) { $("#textResultStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); } else { $("#textResultStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); } } else { if (tmpDate.getFullYear() == today.getFullYear() && tmpDate.getMonth() == today.getMonth()) { $("#textResultStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + today.getDate() + "]"); } else { $("#textResultStandard").html("[" + (tmpDate.getMonth() + 1) + ".1 ~ " + (tmpDate.getMonth() + 1) + "." + endDay + "]"); } } } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } var maxValue = 0; if (energySelectButton == "all") { for (var i = 0; i < allDataSource.length; i++) { if (allDataSource[i].PredictionPower > maxValue) { maxValue = allDataSource[i].PredictionPower; } else if (allDataSource[i].PredictionGas > maxValue) { maxValue = allDataSource[i].PredictionGas; } else if (allDataSource[i].PerformPower > maxValue) { maxValue = allDataSource[i].PerformPower; } else if (allDataSource[i].PerformGas > maxValue) { maxValue = allDataSource[i].PerformGas; } else { maxValue = maxValue; } } } else { for (var i = 0; i < dataSource.length; i++) { if (dataSource[i].Prediction > maxValue) { maxValue = dataSource[i].Prediction; } else if (dataSource[i].Perform > maxValue) { maxValue = dataSource[i].Perform; } else { maxValue = maxValue; } } } var valAxis = $("#sideBarChart").dxChart("instance").option('valueAxis'); //valAxis.max = parseInt(maxValue * 1.1); if (energySelectButton == "all") { //valAxis.max = valAxis.max * 1.5; } $("#sideBarChart").dxChart("instance").option('valueAxis', valAxis); if (totalPerform != 0) { $("#dxCircularGauge").dxCircularGauge("instance").option('value', compareValue); } else { $("#dxCircularGauge").dxCircularGauge("instance").option('value', 0.00); } performLength = 0; totalPerform = 0; sumPerform = 0; sumPrediction = 0; sumCurPrediction = 0; metaResultCnt = 0; powerMetaResultCnt = 0; gasMetaResultCnt = 0; $("#LoadPanel").dxLoadPanel('instance').option('visible', false); } function GetPerformData(metaResultArrayElement, recursiveCnt) { var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); var endDay = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var getPerformDataSource = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, map: function (itemData) { return { dateTime: itemData.CreatedDateTime, Perform: itemData.DailyValue } }, requireTotalCount: true, pageSize: 366 }); if (yearSelectButton == "year") { getPerformDataSource.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", metaResultArrayElement[3]], "and", ["PropertyId", "=", metaResultArrayElement[4]], "and", ["CreatedDateTime", ">=", new Date(tmpDate.getFullYear(), 0, 1)], "and", ["CreatedDateTime", "<", new Date(tmpDate.getFullYear(), 12, 31)] ]); } else if (yearSelectButton == "month") { getPerformDataSource.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", metaResultArrayElement[3]], "and", ["PropertyId", "=", metaResultArrayElement[4]], "and", ["CreatedDateTime", ">=", new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 1)], "and", ["CreatedDateTime", "<", new Date(tmpDate.getFullYear(), tmpDate.getMonth() + 1, 1)] ]); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } getPerformDataSource.sort({ getter: "CreatedDateTime", asc: true }); getPerformDataSource.load() .done(function (result) { for (var i in result) { if (yearSelectButton == "year") { if (energySelectButton == "gaskwh" || energySelectButton == "all") {//가스m3변환 if (FuelTypeIdtemp == 2) { dataSource[(result[i].dateTime.getMonth()).toString()].Perform = dataSource[(result[i].dateTime.getMonth()).toString()].Perform + result[i].Perform * m3calValue; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()) * m3calValue; } else { dataSource[(result[i].dateTime.getMonth()).toString()].Perform = dataSource[(result[i].dateTime.getMonth()).toString()].Perform + result[i].Perform; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } } else { dataSource[(result[i].dateTime.getMonth()).toString()].Perform = dataSource[(result[i].dateTime.getMonth()).toString()].Perform + result[i].Perform; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } performLength++; } else if (yearSelectButton == "month") { var GetDate = result[i].dateTime.getDate() - 1; //목표데이터와 실측데이터 병합 if (energySelectButton == "gaskwh" || energySelectButton == "all") {//가스m3변환 if (FuelTypeIdtemp == 2) { dataSource[GetDate].Perform = dataSource[GetDate].Perform + result[i].Perform * m3calValue; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()) * m3calValue; } else { dataSource[GetDate].Perform = dataSource[GetDate].Perform + result[i].Perform; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } } else { dataSource[GetDate].Perform = dataSource[GetDate].Perform + result[i].Perform; totalPerform = parseFloat(totalPerform.toString()) + parseFloat(result[i].Perform.toString()); } performLength++; } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } } metaResultCnt++; recursiveCnt--; if (recursiveCnt >= 1) { GetPerformData(metaResultArray[metaResultCnt], recursiveCnt); } else { SetEnergyResult(); } return true; }) .fail(function (error) { utils.toast.show("사용량 데이터를 불러오는데 실패 하였습니다."); $("#LoadPanel").dxLoadPanel('instance').option('visible', false); }); } function sumPerform_function(metaResultArrayElement) { var Today = new Date(); var getPerformDataSource1 = new DevExpress.data.DataSource({ store: { type: "odata", url: endpointSelector + "/BemsMonitoringPointHistoryDaily" }, map: function (itemData) { return { dateTime: itemData.CreatedDateTime, Perform: itemData.DailyValue } }, requireTotalCount: true, pageSize: 366 }); if (yearSelectButton == "month") { getPerformDataSource1.filter([ ["SiteId", "=", metaResultArrayElement[0]], "and", ["FacilityCode", "=", metaResultArrayElement[3]], "and", ["PropertyId", "=", metaResultArrayElement[4]], "and", ["CreatedDateTime", ">=", new Date(Today.getFullYear(), 0, 1)], "and", ["CreatedDateTime", "<", new Date(Today.getFullYear(), Today.getMonth(), Today.getDate() + 1)] ]); } getPerformDataSource1.sort({ getter: "CreatedDateTime", asc: true }); getPerformDataSource1.load() .done(function (result) { for (var i in result) { if (yearSelectButton == "month") { //목표데이터와 실측데이터 병합 if (energySelectButton == "gaskwh" || energySelectButton == "all") {//가스m3변환 if (FuelTypeIdtemp == 2) sumPerform = parseFloat(sumPerform.toString()) + parseFloat(result[i].Perform.toString()) * m3calValue; else sumPerform = parseFloat(sumPerform.toString()) + parseFloat(result[i].Perform.toString()); } else { sumPerform = parseFloat(sumPerform.toString()) + parseFloat(result[i].Perform.toString()); } } } }) .fail(function (error) { utils.toast.show("사용량 데이터를 불러오는데 실패 하였습니다."); }); } function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function handleViewShown() { energySelectButton = "all"; yearSelectButton = "month"; $("#LoadPanel").dxLoadPanel({ message: '로딩 중...', showIndicator: true, visible: false }); $("#LoadPanel").dxLoadPanel('instance').option('visible', true); visiblePopup(false); var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); $("#divGoal").hide(); $("#modGoalBtn").hide(); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); //getAllData2(1); $('#allBtn').trigger('click'); } var now = new Date(); var firstDay = new Date(now.getFullYear(), now.getMonth(), 1); var searchViewOptions = { }; function handleSearchInSearchView() { } var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), { viewShowing: handleViewShowing, chartOptions: { dataSource: dataSource, barWidth: 0.5, size: { height: 520 }, commonSeriesSettings: { argumentField: "dateTime", type: "bar" }, series: [ //{ valueField: "Prediction", name: "목표", color: '#72A7B3' }, { valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' } ], legend: { verticalAlignment: "top", horizontalAlignment: "center", position: "outside", border: { visible: false } }, valueAxis: ko.observable({ visible: true, label: { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }, min: 0, //max: 11000, valueType: 'numeric', //tickInterval: 1000 }), argumentAxis: ko.observable({ visible: true, label: { customizeText: function () { return this.value + '일'; } }, min: 1, max: 32 - new Date(now.getFullYear, now.getMonth, 32).getDate(), valueType: 'numeric', tickInterval: 1 }), "export": { enabled: true }, tooltip: { enabled: true, //format: 'largeNumber', customizeTooltip: function (point) { return { text: numberWithCommas(point.value.toFixed(2)) }; } } }, startDatePicker: { pickerType: "calendar", value: firstDay, formatString: "yyyy년 MM월", maxZoomLevel: "year", width: "9%", onValueChanged: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); if (energySelectButton == "all") { $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; //argSeries = [{ valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#72A7B3' }, argSeries = [{ valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#007994' }, //{ valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#90E68E' }, { valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#03C700' }, { valueField: "PerformPower", name: "전력 사용량", stack: "perform", color: '#5F8B95' }, { valueField: "PerformGas", name: "가스 사용량", stack: "perform", color: '#7CC77B' }, ]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getAllData2(SITEID); } else if (energySelectButton == "power") { if (yearSelectButton == "month") { $("#divGoal").show(); $("#modGoalBtn").show(); } else { $("#divGoal").hide(); $("#modGoalBtn").hide(); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.ELECTRICITY, 1, 1); } else if (energySelectButton == "gaskwh") { if (yearSelectButton == "month") { $("#divGoal").show(); $("#modGoalBtn").show(); } else { $("#divGoal").hide(); $("#modGoalBtn").hide(); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "gasm3") { if (yearSelectButton == "month") { $("#divGoal").show(); $("#modGoalBtn").show(); } else { $("#divGoal").hide(); $("#modGoalBtn").hide(); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "water") { if (yearSelectButton == "month") { $("#divGoal").show(); $("#modGoalBtn").show(); } else { $("#divGoal").hide(); $("#modGoalBtn").hide(); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.WATER, 1, 3); } else { utils.toast.show("에너지원이 선택되지 않았습니다."); } } }, tooltipVisible: ko.observable(false), toggleTooltip: function () { this.tooltipVisible(!this.tooltipVisible()); }, monthButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); yearSelectButton = "month"; $("#startDatePicker").dxDateBox("instance").option("formatString", "yyyy년 MM월"); $("#startDatePicker").dxDateBox("instance").option("maxZoomLevel", "year"); $("#startDatePicker").dxDateBox("instance").option("width", "9%"); $("#monthBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#yearBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); var argAxis = this.chartOptions.argumentAxis(); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; argAxis.label = labelObj; this.chartOptions.argumentAxis(argAxis); if (energySelectButton == "water") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 100; //valAxis.tickInterval = 10; var labelObj = { customizeText: function () { if (this.value >= 1000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (energySelectButton == "gasm3") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 100; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (energySelectButton == "gaskwh") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 200; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 11000; //valAxis.tickInterval = 1000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } if (energySelectButton == "all") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#007994' }, { valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#03C700' }, { valueField: "PerformPower", name: "전력 사용량", stack: "perform", color: '#5F8B95' }, { valueField: "PerformGas", name: "가스 사용량", stack: "perform", color: '#7CC77B' }, ]; this.chartOptions.series = argSeries; getAllData2(SITEID); } else if (energySelectButton == "power") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").show(); $("#modGoalBtn").show(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.ELECTRICITY, 1, 1); } else if (energySelectButton == "gaskwh") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").show(); $("#modGoalBtn").show(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "gasm3") { $("#unitPrediction").html("금월 목표 사용량(m3)"); $("#unitPerform").html("금월 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").show(); $("#modGoalBtn").show(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "water") { $("#unitPrediction").html("금월 목표 사용량(m3)"); $("#unitPerform").html("금월 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").show(); $("#modGoalBtn").show(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.WATER, 1, 3); } else { utils.toast.show("에너지원이 선택되지 않았습니다."); } }, yearButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); yearSelectButton = "year"; $("#startDatePicker").dxDateBox("instance").option("formatString", "yyyy년"); $("#startDatePicker").dxDateBox("instance").option("maxZoomLevel", "decade"); $("#startDatePicker").dxDateBox("instance").option("width", "7%"); $("#yearBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#monthBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); var argAxis = this.chartOptions.argumentAxis(); argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; argAxis.label = labelObj; this.chartOptions.argumentAxis(argAxis); if (energySelectButton == "water") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 5000; //valAxis.tickInterval = 500; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (energySelectButton == "gasm3") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = this.value; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000 && this.value < 1000000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else if (this.value >= 1000000000) { this.value = this.value.toString().substring(0, 4) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (energySelectButton == "gaskwh") { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 200; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 500000; //valAxis.tickInterval = 50000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } if (energySelectButton == "all") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#007994' }, { valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#03C700' }, { valueField: "PerformPower", name: "전력 사용량", stack: "perform", color: '#5F8B95' }, { valueField: "PerformGas", name: "가스 사용량", stack: "perform", color: '#7CC77B' }, ]; this.chartOptions.series = argSeries; getAllData2(SITEID); } else if (energySelectButton == "power") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#007994' }, { valueField: "Perform", name: "사용량", color: '#5F8B95' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.ELECTRICITY, 1, 1); } else if (energySelectButton == "gaskwh") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "gasm3") { $("#unitPrediction").html("금년 목표 사용량(m3)"); $("#unitPerform").html("금년 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); } else if (energySelectButton == "water") { $("#unitPrediction").html("금년 목표 사용량(m3)"); $("#unitPerform").html("금년 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.WATER, 1, 3); } else { utils.toast.show("에너지원이 선택되지 않았습니다."); } }, powerButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); energySelectButton = "power"; $("#powerBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#allBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gasm3Btn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gaskWhBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); if (yearSelectButton == "month") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").show(); $("#modGoalBtn").show(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 11000; //valAxis.tickInterval = 1000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (yearSelectButton == "year") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 500000; //valAxis.tickInterval = 50000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.ELECTRICITY, 1, 1); }, gasm3ButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); energySelectButton = "gasm3"; $("#gasm3Btn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#gaskWhBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#allBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); if (yearSelectButton == "month") { $("#divGoal").show(); $("#unitPrediction").html("금월 목표 사용량 (m3)"); $("#unitPerform").html("금월 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#modGoalBtn").show(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 100; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (yearSelectButton == "year") { $("#unitPrediction").html("금년 목표 사용량(m3)"); $("#unitPerform").html("금년 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 100; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000 && this.value < 1000000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else if (this.value >= 1000000 && this.value < 10000000) { this.value = this.value.toString().substring(0, 1) + 'M'; } else if (this.value >= 10000000 && this.value < 100000000) { this.value = this.value.toString().substring(0, 2) + 'M'; } else if (this.value >= 100000000 && this.value < 1000000000) { this.value = this.value.toString().substring(0, 3) + 'M'; } else if (this.value >= 1000000000) { this.value = this.value.toString().substring(0, 4) + 'M'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); }, gaskWhButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); energySelectButton = "gaskwh"; $("#gaskWhBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#gasm3Btn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#allBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); if (yearSelectButton == "month") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").show(); $("#modGoalBtn").show(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 200; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (yearSelectButton == "year") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 2000; //valAxis.tickInterval = 200; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#03C700' }, { valueField: "Perform", name: "사용량", color: '#7CC77B' }]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getEnergyData2(SITEID, $Code.FacilityType.GAS, 1, 2); }, waterButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); energySelectButton = "water"; $("#waterBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#allBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gasm3Btn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gaskWhBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); if (yearSelectButton == "month") { $("#unitPrediction").html("금월 목표 사용량(m3)"); $("#unitPerform").html("금월 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").show(); $("#modGoalBtn").show(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 100; //valAxis.tickInterval = 10; var labelObj = { customizeText: function () { if (this.value >= 1000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else { this.value = this.value; } return this.value + ' m3'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (yearSelectButton == "year") { $("#unitPrediction").html("금년 목표 사용량(m3)"); $("#unitPerform").html("금년 사용량(m3)"); $("#unitPrediction2").html("금일까지 목표 사용량(m3)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 5000; //valAxis.tickInterval = 500; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else { utils.toast.show("년/월 선택이 되지 않았습니다."); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "Prediction", name: "목표", color: '#FC6D00' }, { valueField: "Perform", name: "사용량", color: '#FDCFAD' }]; this.chartOptions.series = argSeries; getEnergyData2(SITEID, $Code.FacilityType.WATER, 1, 3); }, allButtonClicked: function () { $("#LoadPanel").dxLoadPanel('instance').option('visible', true); energySelectButton = "all"; $("#allBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)"); $("#powerBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#waterBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gasm3Btn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#gaskWhBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)"); $("#divGoal").hide(); $("#modGoalBtn").hide(); if (yearSelectButton == "month") { $("#unitPrediction").html("금월 목표 사용량(kWh)"); $("#unitPerform").html("금월 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 11000; //valAxis.tickInterval = 1000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } else if (yearSelectButton == "year") { $("#unitPrediction").html("금년 목표 사용량(kWh)"); $("#unitPerform").html("금년 사용량(kWh)"); $("#unitPrediction2").html("금일까지 목표 사용량(kWh)"); var valAxis = this.chartOptions.valueAxis(); valAxis.min = 0; //valAxis.max = 500000; //valAxis.tickInterval = 50000; var labelObj = { customizeText: function () { if (this.value >= 1000 && this.value < 10000) { this.value = this.value.toString().substring(0, 1) + 'K'; } else if (this.value >= 10000 && this.value < 100000) { this.value = this.value.toString().substring(0, 2) + 'K'; } else if (this.value >= 100000) { this.value = this.value.toString().substring(0, 3) + 'K'; } else { this.value = this.value; } return this.value + ' kWh'; } }; valAxis.label = labelObj; this.chartOptions.valueAxis(valAxis); } var argSeries = this.chartOptions.series; argSeries = [{ valueField: "PredictionPower", name: "목표 전력", stack: "prediction", color: '#007994' }, { valueField: "PredictionGas", name: "목표 가스", stack: "prediction", color: '#03C700' }, { valueField: "PerformPower", name: "전력 사용량", stack: "perform", color: '#5F8B95' }, { valueField: "PerformGas", name: "가스 사용량", stack: "perform", color: '#7CC77B' }, ]; this.chartOptions.series = argSeries; var argAxis = $("#sideBarChart").dxChart("instance").option('argumentAxis'); var tmpDate = $("#startDatePicker").dxDateBox("instance").option('value'); if (yearSelectButton == "month") { argAxis.max = 32 - new Date(tmpDate.getFullYear(), tmpDate.getMonth(), 32).getDate(); var labelObj = { customizeText: function () { return this.value + '일'; } }; } else { argAxis.max = 12; var labelObj = { customizeText: function () { return this.value + '월'; } }; } argAxis.label = labelObj; $("#sideBarChart").dxChart("instance").option('argumentAxis', argAxis); getAllData2(SITEID); }, dxCircularGauge: { geometry: { startAngle: 180, endAngle: 0 }, scale: { startValue: 0, endValue: 150, }, rangeContainer: { ranges: [ { startValue: 0, endValue: 90, color: '#77DD77' }, { startValue: 90, endValue: 100, color: 'orange' }, { startValue: 100, endValue: 150, color: '#92000A' } ], }, tickInterval: 50, label: { customizeText: function (arg) { return arg.valueText + " %"; } }, value: 0, valueIndicator: { type: "triangleNeedle", color: "#8FBC8F" }, animation: { easing: 'linear' }, spindleSize: 14, indentFromCenter: 0, tooltip: { enabled: true } }, modGoalButtonClicked: function () { visiblePopup(true); }, dataGrid: { dataSource: goalDataSource, columns: ["날짜", "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"], scrolling: { mode: 'standard' }, paging: { enabled: false } } } ); viewModel.popupOptions = { width: 1000, height: 800, visible: visiblePopup, dragEnabled: false, shading: false, showTitle: true, title: "목표치", showCloseButton: true, onShown: function (t, tt) { } }; return viewModel; };