123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934 |
- BemsWebApplication.RefrigeratorAnalysis = function(params, viewInfo) {
- "use strict";
- var initialized = false,
- shouldReload = false,
- datagrid = null,
- check_A = ko.observable(false),
- check_R = ko.observable(false),
- //check_s = ko.observable(true),
- currentTabIndex = ko.observable(0),
- facilityViewModel = new BWA.CmFacilityViewModel(),
- dataSource;
- var m_Facility;
- var multiViewItems = [{
- template: 'mainCharts'
- }, {
- template: 'subCharts',
- check_A: check_A,
- check_R: check_R,
- //check_s : check_s,
- }
- ];
- //var buttonInstance = $('#check_input').dxChechkBox('instance');
-
- var facilityDataSource = BWA.db.createDataSource('CmFacility'),
- facilitiesForSearch = ko.observableArray(),
- facilityCodeForSearch = ko.observable(0),
- deferredForSearch = new $.Deferred();
- var dataArraycoolingApproaches = [];
- var dataSourceCop = ko.observableArray(),
- dataSourceLoadRate = ko.observableArray(),
- dataSourceElectricityLoadRate = ko.observableArray(),
- dataSourceTemperatureCop = ko.observableArray(),
- dataSourceCoolingApproach = ko.observableArray();
-
- //todayValue = ko.observable(0)
-
- var visiblePopup = ko.observable(false);
- var formulaGet = new BWA.Chart.FormulaGet(BWA.UserInfo.SiteId());
- //var timeBoxForSearch = BWA.SearchView.createDateTimeBox();
- // cyim 2016.08.22 : 성능분석 그래프의 경우 시간 데이타만 표시되어야 한다
- var timeBoxForSearch = BWA.SearchView.createDateTimeBox($G.TimeTypesForHourOnly, null, false);
- var chartCop = BWA.Chart.Instance('chartCop', 'dxChart'),
- chartLoadRate = BWA.Chart.Instance('chartLoadRate', 'dxChart'),
- chartGasLoadRate = BWA.Chart.Instance('chartGasLoadRate', 'dxChart'),
- chartElectricityLoadRate = BWA.Chart.Instance('chartElectricityLoadRate', 'dxChart'),
- chartTemperatureCop = BWA.Chart.Instance('chartTemperatureCop', 'dxChart'),
- chart6 = BWA.Chart.Instance('chart6', 'dxChart'),
- chartReturnEfficiency = BWA.Chart.Instance('chartReturnEfficiency', 'dxChart'),
- chartATF = BWA.Chart.Instance('chartATF', 'dxChart'),
- chartCopLoadRate = BWA.Chart.Instance('chartCopLoadRate', 'dxChart'),
-
-
- chartEFFSW = BWA.Chart.Instance('chartEFFSW', 'dxChart'),
- chartCoolingApproach = BWA.Chart.Instance('chartCoolingApproach', 'dxChart')
- //chartCoolingApproach_ChangeSeries = BWA.Chart.Instance('chartCoolingApproach', 'dxChart')
- ;
- var m = moment();
- dataSourceCop([
- { DateTime: new Date(m.year(), m.month(), 1), Value: 50 },
- { DateTime: new Date(m.year(), m.month(), 2), Value: 50 },
- { DateTime: new Date(m.year(), m.month(), 3), Value: 60 },
- { DateTime: new Date(m.year(), m.month(), 4), Value: 80 },
- { DateTime: new Date(m.year(), m.month(), 5), Value: 100 },
- { DateTime: new Date(m.year(), m.month(), 6), Value: 40, },
- { DateTime: new Date(m.year(), m.month(), 7), Value: 120 },
- { DateTime: new Date(m.year(), m.month(), 31), Value: 120 }
- ]);
- // 추가 2015 04 20 hcLee ->
- var CODE = $Code,
- FuelType = CODE.FuelType,
- FT = CODE.FacilityType,
- FC = CODE.FacilityCode,
- F = CODE.Formula,
- TIT = CODE.TimeIntervalType;
- // 추가 2015 04 20 hcLee <-
- var chartLayout = new BWA.ChartLayout({
- divs: [[{ //hcLee 2015 07 20 V14.1-V15.1
- id: 'regrigeratorDetail'
- }, {
- id: 'cop',
- chartId: 'chartCop'
- }, {
- id: 'loadRate',
- chartId: 'chartLoadRate'
- }, {
- id: 'GasLoadRate',
- chartId: 'chartGasLoadRate'
- }, {
- id: 'electricityLoadRate',
- chartId: 'chartElectricityLoadRate'
- }, {
- id: 'temperatureCop',
- chartId: 'chartTemperatureCop'
- }], [{
- id: 'b6',
- chartId: 'chart6'
- },
- {
- id: 'returnEfficiency',
- chartId: 'chartReturnEfficiency'
- }, {
- id: 'ATF',
- chartId: 'chartATF'
- },
- {
- id: 'CopLoadRate',
- chartId: 'chartCopLoadRate'
- },
- {
- id: 'EFFSW',
- chartId: 'chartEFFSW'
- }, {
- id: 'coolingApproach',
- chartId: 'chartCoolingApproach'
- }]
- ],
- multiViewOptions: {
- viewIndex: currentTabIndex,
- viewCount: 2,
- PageChanged: function () { // //hcLee 2015 07 20 V14.1-V15.1
- //alert(currentTabIndex());
- handleSearchInSearchView();
- },
- }
- });
- //dataMonthForBar(dataDayForBar());
- //dataDayForPie([
- // { FuelTypeName: '전기', Value: 320 },
- // { FuelTypeName: '가스', Value: 350 },
- // { FuelTypeName: '수도', Value: 360 },
- //]);
- //dataMonthForPie(dataDayForPie());
- function handleViewShown() {
- if (initialized === false) {
- var chartOption = BWA.ChartOptions.RefrigeratorAnalysis;
- // chart 설정, 최초 한번
- chartCop = chartCop(chartOption.getCopChartOptions($Code.TimeType.HOUR));
- chartLoadRate = chartLoadRate(chartOption.getLoadRateChartOptions($Code.TimeType.HOUR));
- //chartGasLoadRate = chartGasLoadRate(chartOption.getGasLoadRateChartOptions($Code.TimeType.HOUR));
- chartGasLoadRate = chartGasLoadRate(chartOption.getChart_3_Options($Code.TimeType.HOUR));
-
- chartElectricityLoadRate = chartElectricityLoadRate(chartOption.getElectricityLoadRateChartOptions($Code.TimeType.HOUR));
- chartTemperatureCop = chartTemperatureCop(chartOption.getTemperatureCopChartOptions($Code.TimeType.HOUR));
- chart6 = chart6(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartReturnEfficiency = chartReturnEfficiency(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartATF = chartATF(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartCopLoadRate = chartCopLoadRate(chartOption.getCopLoadRateChartOptions($Code.TimeType.HOUR));
- chartEFFSW = chartEFFSW(chartOption.getEFFSWChartOptions($Code.TimeType.HOUR));
- chartCoolingApproach = chartCoolingApproach(chartOption.getCoolingApproachChartOptions($Code.TimeType.HOUR));
- initialized = true;
- }
- //hcLee 2016 07 12
- timeBoxForSearch.setDefaultDate();
- //timeBoxForSearch.hour();
- var eq = BWA.DataUtil.constructEqualFilter;
- facilityDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- 'and',
- eq('FacilityTypeId', $Code.FacilityType.REFRIGERATOR) // 냉동기($Code.FacilityType.REFRIGERATOR)
- ]);
- facilityDataSource.load().done(function (facilities) {
- facilitiesForSearch(facilities);
- if (_.isEmpty(facilities) === false) {
- var f = facilities[0]; // 첫번째 설비 그려주기 위해
- handleSelectedFacilityInSearchView(f);
- handleSearchInSearchView();
- var datagrid = $('#refrigeratorDataGridViewInSearchView').dxDataGrid('instance');
- if (_.has(datagrid, 'selectRows')) {
- datagrid.selectRows(f);
- }
- }
- });
- }
- $('#temperatureCop').css('visibility', 'hidden');
- $('#coolingApproach').css('margin-left', '10.5%');
- if (shouldReload) {
- //shouldReload = false;
- //dataSource.pageIndex(0);
- //dataSource.load();
- }
- function handleViewHidden() {
- //hideOverlay();
- // var dataGrid = $('#gridContainer').dxDataGrid('instance');
- // dataGrid.clearSelection();
- //chartLayout.multiViewOptions.viewCount = 1;
- //var view = $('#RefrigeratorAnalysisView');
- //view.
- //$('#RefrigeratorAnalysisView').sideOverlayVisible(false);
- //$('#RefrigeratorAnalysisView').paging.hideNextButton(true);
- //$('#RefrigeratorAnalysisView').paging.hideNextButton(true);
- var paging = BWA.ChartLayout.Paging;
- paging.sideOverlayVisible(false);
- //paging.hideNextButton(true);
- //paging.hidePrevButton(true);
- $SearchView.visibleObservable(false); // hcLee 2015 03 23
- visiblePopup(false);
- }
- function handleViewShowing() {
- }
- function refreshList() {
- //dataSource.pageIndex(0);
- //dataSource.load();
- }
- var searchViewOptions = {
- searchViewItems: [
- { id: 'FacilityCode', ignoreValue: 0, defaultValue: 0, value: facilityCodeForSearch, dataSource: facilitiesForSearch },
- ],
- promiseDataInSearchView: deferredForSearch.promise()
- };
- function handleSelectedFacilityInSearchView(facility) {
- m_Facility = facility;
- return;
- }
- function setChartElectricityByLoadRate(loadRateDataArray, electricityDataArray) {
- var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- loadRateDataArray, electricityDataArray, 'LoadRate', 'EV');
- //chartElectricityLoadRate().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getElectricityLoadRateChartOptions(timeBoxForSearch.type());
- //chartElectricityLoadRate().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartElectricityLoadRate().option(options);
- }
- function setChartGasByLoadRate(loadRateDataArray, gasDataArray) {
- var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- loadRateDataArray, gasDataArray, 'LoadRate', 'm');
- //chartGasLoadRate().option('dataSource', dataArray); // 아래 4줄로 변경
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getGasLoadRateChartOptions(timeBoxForSearch.type());
- //chartGasLoadRate().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartGasLoadRate().option(options);
- }
- // 냉열원 생산열량
- function setChart_3(DataArray1, DataArray2, maxValueatf) {
- var dataArray = [];
- _.each(DataArray1, function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- kcal : x.Value
- });
- });
- _.each(DataArray2, function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- temp : x.Value
- });
- });
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getChart_3_Options(timeBoxForSearch.type());
- if (maxValueatf != undefined) // 한축에 온도가 있는 경우
- options.valueAxis[0].tickInterval = Math.round(maxValueatf / 5) + 1;
- options.dataSource = dataArray;
- chartGasLoadRate().option(options);
- }
- function setChartCopByTemperature(temperatureDataArray, copDataArray, loadDataArray) {
- var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- temperatureDataArray, copDataArray, 'Temperature', 'Cop');
- var dataArray2 = BWA.Chart.getRelationDataArrayOnDateTime(
- temperatureDataArray, loadDataArray, 'Temperature', 'load');
- _.each(dataArray2, function (x) {
- dataArray.push(x);
- });
- //console.log(dataArray);
- //chartTemperatureCop().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getTemperatureCopChartOptions(timeBoxForSearch.type());
- //chartTemperatureCop().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartTemperatureCop().option(options);
- }
- function setChart_678(DataArray1, DataArray2, chart678) {
- var dataArray = [];
- _.each(DataArray1, function (x) {
- dataArray.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- kw : x.Value
- });
- });
- _.each(DataArray2, function (x) {
- dataArray.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- hz: x.Value
- });
- });
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getChart_678_Options(timeBoxForSearch.type());
- options.dataSource = dataArray;
- chart678().option(options);
- }
- function setChartCopLoadRates(copDataArray, loadRateDataArray) {
- var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- copDataArray, loadRateDataArray, 'cop', 'LoadRate');
- //chartCopLoadRate().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getCopLoadRateChartOptions(timeBoxForSearch.type());
- //chartCopLoadRate().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartCopLoadRate().option(options);
- }
- function setChartReturnEfficiency(pkwDataArray, CoolAbtyDataArray) {
- var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- pkwDataArray, CoolAbtyDataArray, 'pkwh', 'CoolAbty');
- //chartReturnEfficiency().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getReturnEfficiencyChartOptions(timeBoxForSearch.type());
- //chartReturnEfficiency().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartReturnEfficiency().option(options);
- }
- function setChartATF(tempDataArray, atfDataArray, maxValueatf) {
- //var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- // tempDataArray, atfDataArray, 'temp', 'atf');
- var dataArray = [];
- _.each(tempDataArray, function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- temp: x.Value
- });
- });
- _.each(atfDataArray, function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- atf: x.Value
- });
- });
- //chartATF().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getATFChartOptions(timeBoxForSearch.type());
- //chartATF().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.valueAxis[0].tickInterval = Math.round(maxValueatf / 5)+1;
- options.dataSource = dataArray;
- chartATF().option(options);
- }
- function setChartEFFSW(effDataArray, swDataArray) {
- //var dataArray = BWA.Chart.getRelationDataArrayOnDateTime(
- // tempDataArray, atfDataArray, 'temp', 'atf');
- var dataArray = [];
- /*
- _.each(effDataArray, function (x) {
- dataArray.push({
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- eff: x.Value
- });
- }); */
- _.each(swDataArray, function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- sw: x.Value
- });
- });
- //chartEFFSW().option('dataSource', dataArray);
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getEFFSWChartOptions(timeBoxForSearch.type());
- //chartEFFSW().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = dataArray;
- chartEFFSW().option(options);
- }
- function handleSearchInSearchView(filter, searchViewItems) {
- //console.log(filter);
- //console.log(searchViewItems);
- if (m_Facility == null) return;
- visiblePopup(true);
- var f = m_Facility.toJS();
- facilityViewModel.fromJS(f); // 선택한 설비
- //var timeIntervalType = $Code.TimeIntervalType.QUARTERMIN;
- var timeIntervalType = timeBoxForSearch.type();
- // $Code.FacilityType.REFRIGERATOR -> 이 화면은 냉동기 -> REFRIGERATOR: 2, 냉동기 (DB FacilityType 테이블 내용과 같아야 한다.)
- var formula = $Code.Formula[$Code.FacilityType.REFRIGERATOR]; // 1~ 6까지
- var formulaIds = _.values(formula);
- var date = timeBoxForSearch.getDate();
- /*
- timeBoxForSearch.type($Code.TimeIntervalType.DAY);
- timeIntervalType = $Code.TimeIntervalType.DAY;
- date.startDate = new Date(2015, 0, 1);
- date.endDate = new Date(2015, 11, 31);
- */
- // var startDate = moment().
- var promises = [];
- _.each(formulaIds, function (formulaId) {
- var p = formulaGet.apiGet({
- FacilityTypeId: f.FacilityTypeId,
- FacilityCode: f.FacilityCode, // 선택한 설비별 포뮬러를 가져온다
- FormulaId: formulaId,
- TimeIntervalType: timeIntervalType,
- StartDate: date.startDate,
- EndDate: date.endDate
- });
- promises.push(p);
- });
- // 외기 온도와 습도를 위해 추가 hcLee 2015 04 20 ->
- var commonParameters = {
- TimeIntervalType: timeBoxForSearch.type(),
- StartDate: date.startDate,
- EndDate: date.endDate
- };
- var temperatureParameters = {
- FacilityTypeId: FT.OUTDOOR,
- FacilityCode: FC.OUTDOOR,
- FormulaId: F[FT.OUTDOOR].TEMPERATURE,
- };
- var humidityParameters = _.extend({}, temperatureParameters, {
- FormulaId: F[FT.OUTDOOR].HUMIDITY,
- });
- promises.push(formulaGet.apiGet(_.extend(temperatureParameters, commonParameters)));
- promises.push(formulaGet.apiGet(_.extend(humidityParameters, commonParameters)));
- // 외기 온도와 습도를 위해 추가 hcLee 2015 04 20 <-
- $.when.apply(this, promises)
- .done(function (cops, loadRates, coolingApproaches,
- ratedCapacities, electricities, temperatures, gas, pkwh, CoolAbty, atf, eff, sw,
- c_out_temp, h_temp,
- R15, R16, R17, R18, R19, R20, R21,
- R22, // 2016 06 30 추가 쿨링레인지
- OUTtemperatures, humidities) { // done의 리턴 파라메터는 정해져 있다 2015 04 20, 끝에 2개 (OUTtemperatures, humidities)추가
- R15 = R15[0]; R16 = R16[0]; R17 = R17[0]; R18 = R18[0]; R19 = R19[0]; R20 = R20[0]; R21 = R21[0];
- R22 = R22[0]; // 2016 06 30 추가 쿨링레인지
- cops = cops[0];
- loadRates = loadRates[0];
- var maxValuecops = 0;
- var maxValueloadRates = 0;
- _.each(cops, function (x) {
- if (maxValuecops < x.Value) maxValuecops = x.Value;
- });
- _.each(loadRates, function (x) {
- if (maxValueloadRates < x.Value) maxValueloadRates = x.Value;
- });
- coolingApproaches = coolingApproaches[0];
- /*
- var maxValuecoolingApproaches = 0;
- _.each(coolingApproaches, function (x) {
- if (maxValuecoolingApproaches < x.Value) maxValuecoolingApproaches= x.Value; // 2015 07 02 쿨링어프로치의 온도들은 외기온도가 아니기 떄문에 min max가 없는 걸로 일단 처리 한다.
- });*/
- dataArraycoolingApproaches = coolingApproaches;
- ratedCapacities = ratedCapacities[0]; // 추가 hcLee 2015 04 20
- electricities = electricities[0]; // 전력량
- temperatures = temperatures[0]; // 냉각수 입구 온도
- gas = gas[0];
- pkwh = pkwh[0];
- CoolAbty = CoolAbty[0];
- //OUTtemperatures = OUTtemperatures[0];
- atf = atf[0];
- var maxValueatf = 0;
- _.each(atf, function (x) {
- if (maxValueatf < x.Value) maxValueatf = x.Value;
- });
- eff = eff[0];
- sw = sw[0];
- c_out_temp = c_out_temp[0];
- h_temp = h_temp[0];
- /*
- var dataArray = [];
- _.each(OUTtemperatures[0], function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- Temperature: x.Value
- });
- });
- _.each(humidities[0], function (x) {
- dataArray.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- Humidity: x.Value
- });
- }); */
- var copDataArray = BWA.Chart.mapNewWithConvertingDateTime(cops, timeBoxForSearch.type());
- var loadRateDataArray = BWA.Chart.mapNewWithConvertingDateTime(loadRates, timeBoxForSearch.type());
- //_.each(OUTtemperatures[0], function (x) {
- // copDataArray.push({
- // //DateTime: moment(x.DateTime).toDate(),
- // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- // Temperature: x.Value
- // });
- // loadRateDataArray.push({
- // //DateTime: moment(x.DateTime).toDate(),
- // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- // Temperature: x.Value
- // });
- //});
- //_.each(humidities[0], function (x) {
- // copDataArray.push({
- // //DateTime: moment(x.DateTime).toDate(),
- // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- // Humidity: x.Value
- // });
- // loadRateDataArray.push({
- // //DateTime: moment(x.DateTime).toDate(),
- // DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- // Humidity: x.Value
- // });
- //});
- //hcLee 2015 07 20 V14.1-V15.1
- if (currentTabIndex() == 0) {
- //BWA.Chart.mapWithConvertingDateTime(coolingApproaches, timeBoxForSearch.type());
- // 1차트 냉동기 COP
- // chartCop().option('dataSource', copDataArray); 2015 06 25 아래 4줄로 변경
- var options = BWA.ChartOptions.RefrigeratorAnalysis.getCopChartOptions(timeBoxForSearch.type());
- //chartCop().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- //options.valueAxis[0].tickInterval = Math.round(maxValuecops / 5) + 1;
- options.dataSource = copDataArray;
- chartCop().option(options);
- // 2차트 부하율
- //chartLoadRate().option('dataSource', loadRateDataArray);
- options = BWA.ChartOptions.RefrigeratorAnalysis.getLoadRateChartOptions(timeBoxForSearch.type());
- //options.valueAxis[0].tickInterval = Math.round(maxValueloadRates / 5) + 1;
- //chartLoadRate().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- options.dataSource = loadRateDataArray;
- chartLoadRate().option(options);
- // 3차트 추가 가스량vs부하
- //setChartGasByLoadRate(loadRates, gas);
- setChart_3(R15, electricities, maxValueatf);
- //$('#electricityLoadRate').css('visibility', 'hidden'); //
- //$('#electricityLoadRate').css('width', '0%');
- // 4차트 냉동기 소비전력과 부하율 관계 -> 차트4
- setChartElectricityByLoadRate(loadRates, electricities);
- // 5차트 냉각수 입구 온도와 COP, 부하율 관계
- setChartCopByTemperature(temperatures, cops, loadRates);
- }
- //hcLee 2015 07 20 V14.1-V15.1
- else if (currentTabIndex() == 1) {
- //if (chartCopLoadRate().option == 'undefined')
- //if (chartCopLoadRate() != object)
- //BWA.Chart.mapWithConvertingDateTime(coolingApproaches, timeBoxForSearch.type());
- {
- //hcLee 2015 07 20 V14.1-V15.1
- var chartOption = BWA.ChartOptions.RefrigeratorAnalysis;
- chart6 = BWA.Chart.Instance('chart6', 'dxChart'),
- chartReturnEfficiency = BWA.Chart.Instance('chartReturnEfficiency', 'dxChart'),
- chartATF = BWA.Chart.Instance('chartATF', 'dxChart'),
- chartCopLoadRate = BWA.Chart.Instance('chartCopLoadRate', 'dxChart'),
- chartEFFSW = BWA.Chart.Instance('chartEFFSW', 'dxChart'),
- chartCoolingApproach = BWA.Chart.Instance('chartCoolingApproach', 'dxChart')
- chart6 = chart6(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartReturnEfficiency = chartReturnEfficiency(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartATF = chartATF(chartOption.getChart_678_Options($Code.TimeType.HOUR));
- chartCopLoadRate = chartCopLoadRate(chartOption.getCopLoadRateChartOptions($Code.TimeType.HOUR));
- chartEFFSW = chartEFFSW(chartOption.getEFFSWChartOptions($Code.TimeType.HOUR));
- chartCoolingApproach = chartCoolingApproach(chartOption.getCoolingApproachChartOptions($Code.TimeType.HOUR));
- }
- // 6차트 COP와 부하율 분석 (다음페이지 첫 차트)
- setChart_678(R16, R19, chart6);
- // 7차트 수반송 효율
- //setChartReturnEfficiency(pkwh, CoolAbty);
- setChart_678(R17, R20, chartReturnEfficiency);
- // 8차트 ATF
- //setChartATF(temperatures, atf);
- //setChartATF(OUTtemperatures[0], atf, maxValueatf);
- setChart_678(R18, R21, chartATF);
- //
- setChartCopLoadRates(cops, loadRates);
- // 9차트 EFFSW
- setChartEFFSW(eff, sw);
- // 마지막차트 냉동기 시간대별 쿨링어프로치
- var OUTtemperatures = OUTtemperatures[0];
- BWA.Chart.mapWithConvertingDateTime(OUTtemperatures, timeBoxForSearch.type());
- _.each(temperatures, function (x) {
- OUTtemperatures.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- c_in_temp: x.Value
- });
- });
- _.each(c_out_temp, function (x) {
- OUTtemperatures.push({
- //DateTime: moment(x.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(x.DateTime).toDate()),
- c_out_temp: x.Value
- });
- });
- _.each(h_temp, function (y) {
- OUTtemperatures.push({
- //DateTime: moment(y.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(y.DateTime).toDate()),
- h_temp: y.Value
- });
- });
- _.each(coolingApproaches, function (ca) {
- OUTtemperatures.push({
- //DateTime: moment(y.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(ca.DateTime).toDate()),
- ca_value: ca.Value
- });
- });
- _.each(R22, function (cr) {
- OUTtemperatures.push({
- //DateTime: moment(y.DateTime).toDate(),
- DateTime: BWA.Chart.getCustermTimeArgumentAxisString(timeBoxForSearch.type(), moment(cr.DateTime).toDate()),
- cr_value: cr.Value
- });
- });
- //chartCoolingApproach().option('dataSource', coolingApproaches);
- options = BWA.ChartOptions.RefrigeratorAnalysis.getCoolingApproachChartOptions(timeBoxForSearch.type());
- //chartCoolingApproach().option('argumentAxis', null); // 2015 05 21 결국 이 코드가 필요 함 (시간 축 에러 해결)
- //options.valueAxis[0].tickInterval = Math.round(maxValuecoolingApproaches / 10); // 2015 07 02 쿨링어프로치의 온도들은 외기온도가 아니기 떄문에 min max가 없는 걸로 일단 처리 한다.
- options.dataSource = OUTtemperatures;
- chartCoolingApproach().option(options);
- }
- visiblePopup(false);
- })
- .fail(function (error) {
- //alert(error);
- visiblePopup(false);
- });
- }
- var viewModel = $.extend(BWA.CommonView.create(
- params, viewInfo, searchViewOptions, ko.observable(null),
- handleViewShown, null, handleSearchInSearchView,
- undefined, chartLayout), {
- facility: facilityViewModel,
- viewHidden: handleViewHidden, // hcLee 2015 06 03
- refreshList: refreshList,
- viewShowing: handleViewShowing,
- scrolling: { mode: 'infinite' },
- waterCoolingDataGridOptions: {
- dataSource: facilitiesForSearch,
- columns: [
- { dataField: 'Name', caption: $G('facilityName'), width: '100%', alignment: 'left' }
- ],
- filterRow: {
- visible: true,
- showOperationChooser: false
- },
- selection: {
- mode: 'single'
- },
- rowClick: function(clickRow) {
- handleSelectedFacilityInSearchView(clickRow.data);
- }
- },
- contentReadyAction: function(e) {
- datagrid = e.component;
- },
- });
- viewModel.check_A_f = function () {
- setCheckBoxChart();
- }
- var valueAxises = [
- {
- title: {
- text: '온도 (°C)'
- }
- },
- ];
- var seriesS = [
- {
- //type: 'bar',
- type: 'spline',
- argumentField: 'DateTime',
- valueField: 'Value',
- //width: 5,
- //valueField: 'h_temp',
- name: '외기온도',
- label: {
- visible: false,
- },
- point: { size: 1 }
- },
- {
- type: 'spline',
- color: '#c96374',
- //pane: 'topPane',
- // axis: 'intemp',
- valueField: 'c_in_temp',
- point: { size: 1 },
- //name: '냉각수 입구온도',
- name : '냉각탑 출구온도',
- label: {
- visible: false,
- font: { color: '#c96374', },
- customizeText: function () {
- return this.valueText + ' °C';
- }
- }
- }, {
- type: 'spline',
- //pane: 'topPane',
- // axis: 'outtemp',
- color: '#00A7C6',
- valueField: 'c_out_temp',
- point: { size: 1 },
- //name: '냉각수 출구온도',
- name: '냉각탑 입구온도',
-
- label: {
- font: { color: '#00A7C6', },
- visible: false,
- customizeText: function () {
- return this.valueText + ' °C';
- }
- }
- }, {
- type: 'spline',
- // pane: 'topPane',
- // axis: 'htemp',
- color: 'darkgreen',
- valueField: 'h_temp',
- point: { size: 1 },
- name: '습구온도',
- label: {
- font: { color: 'darkgreen', },
- visible: false,
- customizeText: function () {
- return this.valueText + ' °C';
- }
- }
- },
- {
- type: 'bar',
- argumentField: 'DateTime',
- //argumentField: 'string',
- valueField: 'ca_value',
- color: 'red',
- width: 5,
- //valueField: 'h_temp',
- name: $G('coolingApproach'),
- label: {
- visible: false,
- },
- point: { size: 4 }
- },
- {
- type: 'bar',
- argumentField: 'DateTime',
- //argumentField: 'string',
- valueField: 'cr_value',
- color: 'blue',
- width: 5,
- //valueField: 'h_temp',
- name: '쿨링 레인지',
- label: {
- visible: false,
- },
- point: { size: 4 }
- },
- ];
- function setCheckBoxChart()
- {
- /*
- var cO = BWA.ChartOptions.RefrigeratorAnalysis;
- var S = chartCoolingApproach(cO.getCoolingApproachSeriesOptions(check_input(), check_out(), check_s()));
- var V = chartCoolingApproach(cO.getCoolingApproachvalueAxisOptions(check_input(), check_out(), check_s()));
- var chart = $('#chartCoolingApproach').dxChart('instance');
- chart.option('valueAxis', V);
- chart.option('series', S); */ // 이렇게 옵션에서 가져오면 안됨.
-
- // OK 코드
- var chart = $('#chartCoolingApproach').dxChart('instance');
- var valueAxisNew = [];
- valueAxisNew.push(valueAxises[0]);
- //if (check_input()) valueAxisNew.push(valueAxises[1]);
- //if (check_out()) valueAxisNew.push(valueAxises[2]);
- //if (check_s()) valueAxisNew.push(valueAxises[3]);
- chart.option('valueAxis', valueAxisNew);
- var seriesNew = [];
- for (var i = 0; i < 4; i++)
- seriesNew.push(seriesS[i]); // 기본4개, 외기/입구/출구/습구
- if (check_A()) seriesNew.push(seriesS[4]);
- if (check_R()) seriesNew.push(seriesS[5]);
- chart.option('series', seriesNew);
- // OK 코드
- }
- viewModel.check_A_f = function () {
- setCheckBoxChart();
- }
- viewModel.check_R_f = function () {
- setCheckBoxChart();
- }
- check_A.subscribe(viewModel.check_A_f);
- check_R.subscribe(viewModel.check_R_f);
-
-
- viewModel.timeBoxForSearch = timeBoxForSearch;
- viewModel.currentTabIndex = currentTabIndex;
- viewModel.multiViewItems = [{
- facility: facilityViewModel,
-
- template: 'mainCharts'
- }, {
- template: 'subCharts',
- check_A: check_A,
- check_R: check_R,
- //check_s: check_s,
- }
- ];
- //ko.applyBindgings(viewModel, check_input);
- //ko.a
- //ko.applyBindings(viewModel, document.getElementById("multiview"));
- $HourGlassPopup(viewModel, visiblePopup);
- return viewModel;
- };
|