123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 |
- BemsWebApplication.FacilityTaskReport = function (params, viewInfo) {
- "use strict";
- var initialized = false,
- shouldReload = false,
- dataSource;
- var CODE = $Code,
- FuelType = CODE.FuelType,
- FacilityType = CODE.FacilityType,
- FacilityCode = CODE.FacilityCode,
- F = CODE.Formula,
- TIT = CODE.TimeIntervalType;
- var useBusinessFiltering = ko.observable(false);
- var visiblePopup = ko.observable(false);
- //var barDataArray = [];
- var works = ko.observableArray();
- var works2 = ko.observableArray();
- var works3 = ko.observableArray(); // bar chart용
- var works4 = ko.observableArray(); // bar chart용
- var eq = BWA.DataUtil.constructEqualFilter,
- and = BWA.DataUtil.andFilter;
- //or = BWA.DataUtil.orFilter;
- var BFDataSource = BemsWebApplication.db.createDataSource('CmBusinessField'),
- progressDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeProgress'),
- chartPieDay = BWA.Chart.Instance('chartPieDayTReport', 'dxPieChart'),
- chartBarDay = BWA.Chart.Instance('chartBarDayTReport', 'dxChart');
- //chartPieMonth = BWA.Chart.Instance('chartPieMonth', 'dxPieChart'),
- //chartBarMonth = BWA.Chart.Instance('chartBarMonth', 'dxChart');
- var BF = ko.observableArray(),
- progresses = ko.observableArray();
- var LCCViewGet = new BWA.Chart.PointHistory_LCCViewGet(BWA.UserInfo.SiteId());
- var LCCViewPreSumGet = new BWA.Chart.PointHistory_LCCViewPreSumGet(BWA.UserInfo.SiteId());
- var timeBoxForSearch = BWA.SearchView.createDateTimeBox($G.TimeTypesForMonthOnly);
- var factorToe = null;
- var Toe = $Code.FuelType.WATER + 1;
- var fuelTypesDataSource = BemsWebApplication.db.createDataSource('BemsFuelType'),
- fuelTypesForSearch = ko.observableArray(),
- timeTypesForSearch = ko.observableArray(),
- timeTypeIdForSearch = ko.observable(0),
- fuelTypeIdForSearch = ko.observable(),
- deferredForSearch = new $.Deferred();
- var dataArray = ko.observableArray(),
- dataDayForPie = ko.observableArray(),
- dataMonthForPie = ko.observableArray(),
- dataDayForBar = ko.observableArray(),
- dataMonthForBar = ko.observableArray()
- ;
- var formulaGet = new BWA.Chart.FormulaGet(BWA.UserInfo.SiteId());
- timeTypesForSearch($G.TimeTypes);
- var m = moment();
- /*dataDayForBar([
- { DateTime: new Date(m.year(), m.month(), 1), PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 2), Value: 50, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 3), Value: 60, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 4), Value: 80, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 5), Value: 100, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 6), Value: 40, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 7), Value: 120, PowerToe: 40, GasToe: 40, WaterToe: 40 },
- { DateTime: new Date(m.year(), m.month(), 31), Value: 120, PowerToe: 40, GasToe: 40, WaterToe: 40 }
- ]);
- dataMonthForBar(dataDayForBar());
- dataDayForPie([
- { FuelTypeName: '전기', Value: 320 },
- { FuelTypeName: '가스', Value: 350 },
- { FuelTypeName: '수도', Value: 360 },
- ]);
- dataMonthForPie(dataDayForPie());
- */
- var workDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: [
- 'SiteId', 'WorkRequestId', 'FmsWorkRequest/FmsWorkCodeType/Name',
- 'FmsWorkRequest/WorkTypeId', 'Title', 'OrderDate', 'FmsWorkRequest/WorkProgressId',
- 'CmUser/Name', // 작업지시자
- 'FmsWorkRequest/CmBusinessField/Name',
- 'BusinessFieldId', 'FmsWorkRequest/CmBusinessField/Name', 'FmsWorkRequest/BusinessFieldId'
- ],
- expand: ['FmsWorkRequest',
- 'FmsWorkResult',
- 'FmsWorkResult/CmUser',
- 'FmsWorkResult/IsConfirmed',
- 'FmsWorkResult/ConfirmedDate',
- 'FmsWorkRequest/FmsWorkCodeType',
- 'FmsWorkRequest/CmBusinessField',
- 'FmsWorkRequest/FmsWorkCodeProgress',
- 'CmBusinessField', 'CmUser'],
- extendOptions: {
- forceOriginalField: true,
- }
- },
- }, 'FmsWorkOrder');
- //}, 'FmsWorkRequest');
- // 2016 05 11 추가
- var workDataSource2 = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: [
- 'SiteId', 'WorkRequestId',
- 'StartDate', 'EndDate',
- 'ConfirmedDate', 'ConfirmedUserId', 'IsConfirmed',
- 'CauseClassId', 'Content',
- 'FmsWorkRequest/WorkTypeId',
- 'FmsWorkOrder/Title',
- 'FmsWorkOrder/OrderDate',
- 'FmsWorkRequest/WorkProgressId',
- 'CmUser/Name', // 작업자
- 'CmUser1/Name', // 승인자
- 'FmsWorkRequest/FmsWorkCodeType/Name',
- 'FmsWorkRequest/CmBusinessField/Name',
- 'FmsWorkRequest/FmsWorkCodeProgress/Name',
- 'FmsWorkOrder/BusinessFieldId',
- 'FmsWorkOrder/Content',
- 'FmsWorkRequest/Content',
- ],
- expand: [
- 'FmsWorkRequest',
- 'FmsWorkOrder',
- 'FmsWorkRequest/FmsWorkCodeType',
- 'FmsWorkRequest/CmBusinessField',
- 'FmsWorkRequest/FmsWorkCodeProgress',
- 'FmsWorkOrder/CmBusinessField', 'CmUser', 'CmUser1'],
- extendOptions: {
- forceOriginalField: true
- }
- },
- }, 'FmsWorkResult');
- function handleViewShown() {
- if (initialized === false) {
- BFDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),//**kgpark
- ]);
- $.when(
- BFDataSource.load(),
- progressDataSource.load()
- ).done(function (BFResult, progressResult) {
- BF = BFResult[0];
- progresses = progressResult[0];
- BWA.ChartOptions.FacilityTaskReport.MakeSeries(progresses);
- chartPieDay = chartPieDay(BWA.ChartOptions.FacilityTaskReport.getPieChartDayOptions());
- chartBarDay = chartBarDay(BWA.ChartOptions.FacilityTaskReport.getBarChartDayOptions());
- handleSearchInSearchView();
- });
- initialized = true;
- }
- else
- handleSearchInSearchView();
- }
- function handleSearchInSearchView() {
- if (!useBusinessFiltering) {
- workDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- eq('FmsWorkRequest/WorkProgressId', 3) // 대기
- ]);
- } else {
- workDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- eq('FmsWorkRequest/WorkProgressId', 3), // 대기
- and,
- [eq('FmsWorkRequest/BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('FmsWorkRequest/BusinessFieldId', 1)]]);
- }
- workDataSource.load().done(function (workResult) {
- works(workResult);
- });
- if (!useBusinessFiltering) {
- workDataSource2.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [
- eq('FmsWorkRequest/WorkProgressId', $Code.WorkProgress.WORKING),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', $Code.WorkProgress.WORK_HOLD)
- ]
- ]);
- } else {
- workDataSource2.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [eq('FmsWorkRequest/WorkProgressId', $Code.WorkProgress.WORKING), 'or', eq('FmsWorkRequest/WorkProgressId', $Code.WorkProgress.WORK_HOLD)],
- and,
- [eq('FmsWorkRequest/BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('FmsWorkRequest/BusinessFieldId', 1)]]);
- }
- workDataSource2.load().done(function (workResult) {
- works2(workResult);
- });
- if (!useBusinessFiltering) {
- workDataSource.filter([
- [
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [eq('FmsWorkRequest/WorkProgressId', 3),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 4),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 5),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 7)], // 작업보류 추가 2016 05 10
- ]
- ]);
- } else {
- workDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [
- [eq('FmsWorkRequest/WorkProgressId', 3),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 4),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 5),
- 'or',
- eq('FmsWorkRequest/WorkProgressId', 7)], // 작업보류 추가 2016 05 10
- ],
- and,
- [eq('FmsWorkRequest/BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('FmsWorkRequest/BusinessFieldId', 1)]]);
- }
- workDataSource.load().done(function (workResult) {
- works3(workResult);
- var now = new Date();
- now = new Date(now.getFullYear(), now.getMonth(), 1, 0, 0, 0);
- //now = new Date(2015, 8, 1, 0, 0, 0);
- if (!useBusinessFiltering) {
- workDataSource.filter([
- [
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- eq('FmsWorkRequest/WorkProgressId', 6), // 완료승인
- and,
- eq('FmsWorkResult/IsConfirmed', true),
- and,
- ['FmsWorkResult/ConfirmedDate', ">=", now]
- ]
- ]);
- } else {
- workDataSource.filter([
- eq('SiteId', BWA.UserInfo.SiteId()),
- and,
- [
- eq('FmsWorkRequest/WorkProgressId', 6), // 완료승인
- and,
- eq('FmsWorkResult/IsConfirmed', true),
- and,
- ['FmsWorkResult/ConfirmedDate', ">=", now]
- ],
- and,
- [eq('FmsWorkRequest/BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('FmsWorkRequest/BusinessFieldId', 1)]]);
- }
- workDataSource.load().done(function (workResult2) {
- works4(workResult2);
- var pieDataArray = [];
- var barDataArray = [];
- _.each(BF, function (x) {
- barDataArray.push({
- PType: x.Name(),
- 작업대기: getWorkProcessCount(workResult, 3, x.BusinessFieldId()),
- 작업진행: getWorkProcessCount(workResult, 4, x.BusinessFieldId()),
- 작업완료: getWorkProcessCount(workResult, 5, x.BusinessFieldId()),
- 작업승인: getWorkProcessCount(workResult2, 6, x.BusinessFieldId()),
- 작업보류: getWorkProcessCount(workResult, 7, x.BusinessFieldId()),
- });
- });
- //2015 11 24 차트 다시 그리지 않는 문제
- //chartBarDay().option('dataSource', barDataArray); 대신 아래3줄로 변경
- var options = BWA.ChartOptions.FacilityTaskReport.getBarChartDayOptions();
- options.dataSource = barDataArray;
- chartBarDay().option(options);
- _.each(progresses, function (x) {
- if (x.WorkProgressId() >= 3)
- pieDataArray.push({
- FuelTypeName: x.Name(),
- Value: (x.WorkProgressId() == 6) ? workResult2.length : getWorkProcessCount(workResult, x.WorkProgressId(), null)
- })
- });
- chartPieDay().option('dataSource', pieDataArray);
- });
- });
- $("#large-indicator").dxLoadIndicator({
- height: 60,
- width: 60
- });
- }
- function handleViewHidden() {
- visiblePopup(false);
- }
- function handleViewShowing() {
- useBusinessFiltering = BWA.UserInfo.isDependBusinessField(viewInfo.viewName);
- }
- function getWorkProcessCount(datas, type, bf) {
- var cnt = 0;
- _.each(datas, function (x) {
- if (x['SiteId']() == BWA.UserInfo.SiteId() && x['FmsWorkRequest/WorkProgressId']() == type && (bf == null || x['FmsWorkRequest/BusinessFieldId']() == bf)) //**kgpark
- //alert(x.BusinessFieldId());
- //alert(x['FmsWorkRequest/WorkProgressId']());
- //if (x.FmsWorkRequest/WorkProgressId() == type && x.BusinessFieldId() == bf)
- cnt++;
- });
- return cnt;
- }
- function refreshList() {
- //dataSource.pageIndex(0);
- //dataSource.load();
- }
- //var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView), {
- var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, null, ko.observable(null), handleViewShown), {
- refreshList: refreshList,
- viewShowing: handleViewShowing,
- workDataGridOptions: utils.datagrid.defaultOptions({
- rowClick: function (row) {
- //selData = row.data;
- /*fName(row.values[1]);
- Name(row.values[2]);
- Energy(row.values[3]);
- Type(row.values[4]);
- getValue(row.values[5]);
- setValue(row.values[6]);
- visiblePopup(true);*/
- },
- //rowAlternationEnabled: true,
- useNumberColumn: true,
- dataSource: works,
- datagridId: 'gridContainer',
- paging: {
- enabled: true,
- pageSize: 6
- },
- pager: {
- //allowedPageSizes: true,
- showPageSizeSelector: false,
- allowedPageSizes: [6],
- visible: true
- },
- columns: [
- { dataField: 'WorkRequestId', caption: $G('number'), width: '8%', alignment: 'center' },
- { dataField: 'FmsWorkRequest/CmBusinessField/Name', caption: $G('businessFieldName'), width: '15%', alignment: 'center' },
- { dataField: 'FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '15%', alignment: 'center' },
- {
- dataField: 'OrderDate', caption: $G('orderedDate'), width: '20%', alignment: 'center', sortOrder: 'desc',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- { dataField: 'Title', caption: '작업명', width: '30%', alignment: 'center' },
- //{ dataField: 'CmUser/Name', caption: '작업지시자', width: '8%', alignment: 'center' },
- ],
- }),
- workDataGridOptions2: utils.datagrid.defaultOptions({
- rowClick: function (row) {
- //selData = row.data;
- /*fName(row.values[1]);
- Name(row.values[2]);
- Energy(row.values[3]);
- Type(row.values[4]);
- getValue(row.values[5]);
- setValue(row.values[6]);
- visiblePopup(true);*/
- },
- //rowAlternationEnabled: true,
- dataSource: works2,
- datagridId: 'gridContainer2',
- useNumberColumn: true,
- paging: {
- enabled: true,
- pageSize: 6
- },
- pager: {
- //allowedPageSizes: true,
- showPageSizeSelector: false,
- allowedPageSizes: [6],
- visible: true
- },
- columns: [
- { dataField: 'WorkRequestId', caption: $G('number'), width: '8%', alignment: 'center' },
- { dataField: 'FmsWorkRequest/CmBusinessField/Name', caption: $G('businessFieldName'), width: '10%', alignment: 'center' },
- { dataField: 'FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '10%', alignment: 'center' },
- {
- dataField: 'FmsWorkOrder/OrderDate', caption: $G('orderedDate'), width: '15%', alignment: 'center', sortOrder: 'desc',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- {
- dataField: 'EndDate', caption: '종료예정일', width: '15%', alignment: 'center',
- customizeText: function (cellInfo) {
- return $G.date(cellInfo.value);
- }
- },
- { dataField: 'FmsWorkOrder/Title', caption: '작업명', width: '30%', alignment: 'center' },
- { dataField: 'CmUser/Name', caption: '작업자', width: '10%', alignment: 'center' },
- ],
- })
- });
- viewModel.timeBoxForSearch = timeBoxForSearch;
- viewModel.popupOptions = {
- width: 300,
- height: 100,
- contentTemplate: "info",
- showTitle: false,
- title: "메세지",
- visible: visiblePopup,
- dragEnabled: false,
- shading: false,
- closeOnOutsideClick: false
- };
- return viewModel;
- };
|