| 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;};
 |