55a792c2359cc57bb9b2e9b11863cb0e3ffab755.svn-base 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165
  1. BemsWebApplication.LocalunionManUsage = function (params, viewInfo) {
  2. "use strict";
  3. var beforeYearHash_gas = new Object();
  4. var beforeYearHash_normalPower = new Object();
  5. var beforeYearHash_nightPower = new Object();
  6. var nowYearHash_gas = new Object();
  7. var nowYearHash_normalPower = new Object();
  8. var nowYearHash_nightPower = new Object();
  9. var unitm3;
  10. var unitkWh;
  11. var gasFuelType = 0;
  12. var gasFacilityTypeId = 101;
  13. var gasFormulaId = 1;
  14. var gasFormulaCnt = 0;
  15. var gasFormulaArray;
  16. var beforeYearGasFormulaCnt = 0;
  17. var beforeYearGasFormulaArray;
  18. var normalPowerFuelType = 1;
  19. var normalPowerFacilityTypeId = 100;
  20. var normalPowerFormulaId = 3;
  21. var normalPowerFormulaCnt = 0;
  22. var normalPowerFormulaArray;
  23. var beforeYearNormalPowerFormulaCnt = 0;
  24. var beforeYearNormalPowerFormulaArray;
  25. var nightPowerFuelType = 2;
  26. var nightPowerFacilityTypeId = 100;
  27. var nightPowerFormulaId = 2;
  28. var nightPowerFormulaCnt = 0;
  29. var nightPowerFormulaArray;
  30. var beforeYearNightPowerFormulaCnt = 0;
  31. var beforeYearNightPowerFormulaArray;
  32. var selectButton = 0; //0 : 단위면적당, 1 : 1인당
  33. var useIndex;
  34. var fuelcnt = 3;
  35. var fuelcntbefore = 3;
  36. var co2onoff = false;
  37. var endpointSelector = "";
  38. if (BemsWebApplication.config.mode == "production") {
  39. endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production;
  40. } else {
  41. endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local;
  42. }
  43. var LocalunionManUsagePopup = null;
  44. var powerFactor, gasFactor, manCnt;
  45. var peopleIncrease =
  46. [{ month: "1", value: 0 },
  47. { month: "2", value: 0 },
  48. { month: "3", value: 0 },
  49. { month: "4", value: 0 },
  50. { month: "5", value: 0 },
  51. { month: "6", value: 0 },
  52. { month: "7", value: 0 },
  53. { month: "8", value: 0 },
  54. { month: "9", value: 0 },
  55. { month: "10", value: 0 },
  56. { month: "11", value: 0 },
  57. { month: "12", value: 0 }];
  58. var yearDataSource =
  59. [{
  60. year: "전년(1.1~12.31)",
  61. gas: 0,
  62. normalPower: 0,
  63. nightPower: 0
  64. }, {
  65. year: "금년(현재까지)",
  66. gas: 0,
  67. normalPower: 0,
  68. nightPower: 0
  69. }];
  70. var manYearDataSource =
  71. [{
  72. year: "전년(1.1~12.31)",
  73. gas: 0,
  74. normalPower: 0,
  75. nightPower: 0
  76. }, {
  77. year: "금년(현재까지)",
  78. gas: 0,
  79. normalPower: 0,
  80. nightPower: 0
  81. }];
  82. var temp_manYearDataSource =
  83. [{
  84. year: "전년(1.1~12.31)",
  85. gas: 0,
  86. normalPower: 0,
  87. nightPower: 0
  88. }, {
  89. year: "금년(현재까지)",
  90. gas: 0,
  91. normalPower: 0,
  92. nightPower: 0
  93. }];
  94. var monthDayNumDataSource =
  95. [{
  96. month: "1",
  97. dayNum_gas: 0,
  98. dayNum_normalPower: 0,
  99. dayNum_nightPower: 0,
  100. beforeDayNum_gas: 0,
  101. beforeDayNum_normalPower: 0,
  102. beforeDayNum_nightPower: 0,
  103. totalDayNum: 0,
  104. beforeTotalDayNum: 0
  105. }, {
  106. month: "2",
  107. dayNum_gas: 0,
  108. dayNum_normalPower: 0,
  109. dayNum_nightPower: 0,
  110. beforeDayNum_gas: 0,
  111. beforeDayNum_normalPower: 0,
  112. beforeDayNum_nightPower: 0,
  113. totalDayNum: 0,
  114. beforeTotalDayNum: 0
  115. }, {
  116. month: "3",
  117. dayNum_gas: 0,
  118. dayNum_normalPower: 0,
  119. dayNum_nightPower: 0,
  120. beforeDayNum_gas: 0,
  121. beforeDayNum_normalPower: 0,
  122. beforeDayNum_nightPower: 0,
  123. totalDayNum: 0,
  124. beforeTotalDayNum: 0
  125. }, {
  126. month: "4",
  127. dayNum_gas: 0,
  128. dayNum_normalPower: 0,
  129. dayNum_nightPower: 0,
  130. beforeDayNum_gas: 0,
  131. beforeDayNum_normalPower: 0,
  132. beforeDayNum_nightPower: 0,
  133. totalDayNum: 0,
  134. beforeTotalDayNum: 0
  135. }, {
  136. month: "5",
  137. dayNum_gas: 0,
  138. dayNum_normalPower: 0,
  139. dayNum_nightPower: 0,
  140. beforeDayNum_gas: 0,
  141. beforeDayNum_normalPower: 0,
  142. beforeDayNum_nightPower: 0,
  143. totalDayNum: 0,
  144. beforeTotalDayNum: 0
  145. }, {
  146. month: "6",
  147. dayNum_gas: 0,
  148. dayNum_normalPower: 0,
  149. dayNum_nightPower: 0,
  150. beforeDayNum_gas: 0,
  151. beforeDayNum_normalPower: 0,
  152. beforeDayNum_nightPower: 0,
  153. totalDayNum: 0,
  154. beforeTotalDayNum: 0
  155. }, {
  156. month: "7",
  157. dayNum_gas: 0,
  158. dayNum_normalPower: 0,
  159. dayNum_nightPower: 0,
  160. beforeDayNum_gas: 0,
  161. beforeDayNum_normalPower: 0,
  162. beforeDayNum_nightPower: 0,
  163. totalDayNum: 0,
  164. beforeTotalDayNum: 0
  165. }, {
  166. month: "8",
  167. dayNum_gas: 0,
  168. dayNum_normalPower: 0,
  169. dayNum_nightPower: 0,
  170. beforeDayNum_gas: 0,
  171. beforeDayNum_normalPower: 0,
  172. beforeDayNum_nightPower: 0,
  173. totalDayNum: 0,
  174. beforeTotalDayNum: 0
  175. }, {
  176. month: "9",
  177. dayNum_gas: 0,
  178. dayNum_normalPower: 0,
  179. dayNum_nightPower: 0,
  180. beforeDayNum_gas: 0,
  181. beforeDayNum_normalPower: 0,
  182. beforeDayNum_nightPower: 0,
  183. totalDayNum: 0,
  184. beforeTotalDayNum: 0
  185. }, {
  186. month: "10",
  187. dayNum_gas: 0,
  188. dayNum_normalPower: 0,
  189. dayNum_nightPower: 0,
  190. beforeDayNum_gas: 0,
  191. beforeDayNum_normalPower: 0,
  192. beforeDayNum_nightPower: 0,
  193. totalDayNum: 0,
  194. beforeTotalDayNum: 0
  195. }, {
  196. month: "11",
  197. dayNum_gas: 0,
  198. dayNum_normalPower: 0,
  199. dayNum_nightPower: 0,
  200. beforeDayNum_gas: 0,
  201. beforeDayNum_normalPower: 0,
  202. beforeDayNum_nightPower: 0,
  203. totalDayNum: 0,
  204. beforeTotalDayNum: 0
  205. }, {
  206. month: "12",
  207. dayNum_gas: 0,
  208. dayNum_normalPower: 0,
  209. dayNum_nightPower: 0,
  210. beforeDayNum_gas: 0,
  211. beforeDayNum_normalPower: 0,
  212. beforeDayNum_nightPower: 0,
  213. totalDayNum: 0,
  214. beforeTotalDayNum: 0
  215. }];
  216. var monthDataSource =
  217. [{
  218. month: "1",
  219. gas: 0,
  220. normalPower: 0,
  221. nightPower: 0
  222. }, {
  223. month: "2",
  224. gas: 0,
  225. normalPower: 0,
  226. nightPower: 0
  227. }, {
  228. month: "3",
  229. gas: 0,
  230. normalPower: 0,
  231. nightPower: 0
  232. }, {
  233. month: "4",
  234. gas: 0,
  235. normalPower: 0,
  236. nightPower: 0
  237. }, {
  238. month: "5",
  239. gas: 0,
  240. normalPower: 0,
  241. nightPower: 0
  242. }, {
  243. month: "6",
  244. gas: 0,
  245. normalPower: 0,
  246. nightPower: 0
  247. }, {
  248. month: "7",
  249. gas: 0,
  250. normalPower: 0,
  251. nightPower: 0
  252. }, {
  253. month: "8",
  254. gas: 0,
  255. normalPower: 0,
  256. nightPower: 0
  257. }, {
  258. month: "9",
  259. gas: 0,
  260. normalPower: 0,
  261. nightPower: 0
  262. }, {
  263. month: "10",
  264. gas: 0,
  265. normalPower: 0,
  266. nightPower: 0
  267. }, {
  268. month: "11",
  269. gas: 0,
  270. normalPower: 0,
  271. nightPower: 0
  272. }, {
  273. month: "12",
  274. gas: 0,
  275. normalPower: 0,
  276. nightPower: 0
  277. }];
  278. var manMonthDataSource =
  279. [{
  280. month: "1",
  281. gas: 0,
  282. normalPower: 0,
  283. nightPower: 0
  284. }, {
  285. month: "2",
  286. gas: 0,
  287. normalPower: 0,
  288. nightPower: 0
  289. }, {
  290. month: "3",
  291. gas: 0,
  292. normalPower: 0,
  293. nightPower: 0
  294. }, {
  295. month: "4",
  296. gas: 0,
  297. normalPower: 0,
  298. nightPower: 0
  299. }, {
  300. month: "5",
  301. gas: 0,
  302. normalPower: 0,
  303. nightPower: 0
  304. }, {
  305. month: "6",
  306. gas: 0,
  307. normalPower: 0,
  308. nightPower: 0
  309. }, {
  310. month: "7",
  311. gas: 0,
  312. normalPower: 0,
  313. nightPower: 0
  314. }, {
  315. month: "8",
  316. gas: 0,
  317. normalPower: 0,
  318. nightPower: 0
  319. }, {
  320. month: "9",
  321. gas: 0,
  322. normalPower: 0,
  323. nightPower: 0
  324. }, {
  325. month: "10",
  326. gas: 0,
  327. normalPower: 0,
  328. nightPower: 0
  329. }, {
  330. month: "11",
  331. gas: 0,
  332. normalPower: 0,
  333. nightPower: 0
  334. }, {
  335. month: "12",
  336. gas: 0,
  337. normalPower: 0,
  338. nightPower: 0
  339. }];
  340. function GetSitePeopleIncrease() {
  341. var now = new Date();
  342. var dataSource = new DevExpress.data.DataSource({
  343. store: {
  344. type: "odata",
  345. url: endpointSelector + "/BemsPeopleIncrease"
  346. },
  347. requireTotalCount: true,
  348. pageSize: 1
  349. });
  350. dataSource.filter([
  351. ["SiteId", "=", BWA.UserInfo.SiteId()],
  352. "and",
  353. ["Date", "=", now.getFullYear().toString()]
  354. ]);
  355. dataSource.sort({ getter: "Date", desc: true });
  356. dataSource.load()
  357. .done(function (result) {
  358. if (result.length != 0) {
  359. peopleIncrease[0].value = result[0].m1;
  360. peopleIncrease[1].value = result[0].m2;
  361. peopleIncrease[2].value = result[0].m3;
  362. peopleIncrease[3].value = result[0].m4;
  363. peopleIncrease[4].value = result[0].m5;
  364. peopleIncrease[5].value = result[0].m6;
  365. peopleIncrease[6].value = result[0].m7;
  366. peopleIncrease[7].value = result[0].m8;
  367. peopleIncrease[8].value = result[0].m9;
  368. peopleIncrease[9].value = result[0].m10;
  369. peopleIncrease[10].value = result[0].m11;
  370. peopleIncrease[11].value = result[0].m12;
  371. } else {
  372. utils.toast.show("데이터가 없습니다.");
  373. }
  374. for (var i = 0; i < 12; i++) {
  375. if (peopleIncrease[i].value != null)
  376. manCnt = peopleIncrease[i].value;
  377. }
  378. })
  379. .fail(function (error) {
  380. utils.toast.show(error);
  381. });
  382. }
  383. function numberWithCommas(x) {
  384. if (x != null)
  385. return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  386. else
  387. return "";
  388. }
  389. function GetSiteData() {
  390. var dataSource = new DevExpress.data.DataSource({
  391. store: {
  392. type: "odata",
  393. url: endpointSelector + "/CmSite"
  394. },
  395. requireTotalCount: true,
  396. pageSize: 10
  397. });
  398. dataSource.filter([
  399. ["SiteId", "=", BWA.UserInfo.SiteId()],
  400. ]);
  401. dataSource.load()
  402. .done(function (result) {
  403. $("#Name").text(result[0].Name);
  404. $("#PhoneNo").text(result[0].PhoneNo);
  405. $("#AddressZip1").text(result[0].AddressZip1);
  406. $("#CompletionDate").text(result[0].CompletionDate);
  407. $("#Address").text(result[0].Address1);
  408. $("#BuildingSize").text(result[0].BuildingSize);
  409. $("#GrossArea").text(numberWithCommas(result[0].GrossArea) + '㎡');
  410. $("#BuildingArea").text(numberWithCommas(result[0].BuildingArea) + '㎡');
  411. $("#Ratio").text(numberWithCommas(result[0].FloorAreaRatio) + '%/' + numberWithCommas(result[0].BuildingCoverageRatio) + '%');
  412. $("#HDDCDD").text(numberWithCommas(result[0].HDD) + '/' + numberWithCommas(result[0].CDD));
  413. $("#MainUse").text(result[0].MainUse);
  414. useIndex = result[0].MainUse.toString();
  415. var schedule = result[0].IsControlSchedule;
  416. if (schedule) {
  417. schedule = "적용";
  418. } else {
  419. schedule = "미적용";
  420. }
  421. $("#IsControlSchedule").text(schedule);
  422. $("#ScheduleCheckHour").text(result[0].ScheduleCheckHour);
  423. $("#Standard").text(result[0].Standard);
  424. $("#URL").text(result[0].URL);
  425. $("#Comment").text(result[0].Comment);
  426. })
  427. .fail(function (error) {
  428. utils.toast.show(error);
  429. });
  430. }
  431. function GetChartDataMonth(FuelType, FacilityTypeId, FormulaId) {
  432. var dataSource = new DevExpress.data.DataSource({
  433. store: {
  434. type: "odata",
  435. url: endpointSelector + "/BemsFormulaParameter"
  436. },
  437. requireTotalCount: true,
  438. pageSize: 100
  439. });
  440. dataSource.filter([
  441. ["SiteId", "=", BWA.UserInfo.SiteId()],
  442. "and",
  443. ["FacilityTypeId", "=", FacilityTypeId],
  444. "and",
  445. ["FormulaId", "=", FormulaId]
  446. ]);
  447. dataSource.sort({ getter: "ParameterId", desc: true });
  448. dataSource.load()
  449. .done(function (result) {
  450. if (FuelType == 0) {
  451. gasFormulaCnt = result.length;
  452. gasFormulaArray = new Array(gasFormulaCnt);
  453. for (var i = 0; i < gasFormulaArray.length; i++)
  454. gasFormulaArray[i] = new Array(2);
  455. for (var i = 0; i < gasFormulaCnt; i++) {
  456. gasFormulaArray[i][0] = result[i].ParameterFacilityCode;
  457. gasFormulaArray[i][1] = result[i].ParameterPropertyId;
  458. }
  459. GetDailyData(FuelType, gasFormulaArray[gasFormulaCnt - 1][0], gasFormulaArray[gasFormulaCnt - 1][1]);
  460. } else if (FuelType == 1) {
  461. normalPowerFormulaCnt = result.length;
  462. normalPowerFormulaArray = new Array(normalPowerFormulaCnt);
  463. for (var i = 0; i < normalPowerFormulaArray.length; i++)
  464. normalPowerFormulaArray[i] = new Array(2);
  465. for (var i = 0; i < normalPowerFormulaCnt; i++) {
  466. normalPowerFormulaArray[i][0] = result[i].ParameterFacilityCode;
  467. normalPowerFormulaArray[i][1] = result[i].ParameterPropertyId;
  468. }
  469. GetDailyData(FuelType, normalPowerFormulaArray[normalPowerFormulaCnt - 1][0], normalPowerFormulaArray[normalPowerFormulaCnt - 1][1]);
  470. } else {
  471. nightPowerFormulaCnt = result.length;
  472. nightPowerFormulaArray = new Array(nightPowerFormulaCnt);
  473. for (var i = 0; i < nightPowerFormulaArray.length; i++)
  474. nightPowerFormulaArray[i] = new Array(2);
  475. for (var i = 0; i < nightPowerFormulaCnt; i++) {
  476. nightPowerFormulaArray[i][0] = result[i].ParameterFacilityCode;
  477. nightPowerFormulaArray[i][1] = result[i].ParameterPropertyId;
  478. }
  479. GetDailyData(FuelType, nightPowerFormulaArray[nightPowerFormulaCnt - 1][0], nightPowerFormulaArray[nightPowerFormulaCnt - 1][1]);
  480. }
  481. })
  482. .fail(function (error) {
  483. utils.toast.show(error);
  484. });
  485. }
  486. function GetDailyData(FuelType, FacilityCode, PropertyId) {
  487. var now = new Date();
  488. var dataSource = new DevExpress.data.DataSource({
  489. store: {
  490. type: "odata",
  491. url: endpointSelector + "/BemsMonitoringPointHistoryDaily"
  492. },
  493. requireTotalCount: true,
  494. pageSize: 366
  495. });
  496. dataSource.filter([
  497. ["SiteId", "=", BWA.UserInfo.SiteId()],
  498. "and",
  499. ["FacilityCode", "=", FacilityCode],
  500. "and",
  501. ["PropertyId", "=", PropertyId],
  502. "and",
  503. ["CreatedDateTime", ">=", new Date(now.getFullYear(), 1 - 1, 1)],
  504. "and",
  505. ["CreatedDateTime", "<=", new Date(now.getFullYear(), 12 - 1, 31)]
  506. ]);
  507. dataSource.sort({ getter: "CreatedDateTime", asc: true });
  508. dataSource.load()
  509. .done(function (result) {
  510. // 일반, 심야, 가스 관제점의 값을 월별로 합산한다
  511. for (var i = 0; i < result.length; i++) {
  512. if (FuelType == 0) {
  513. monthDataSource[result[i].CreatedDateTime.getMonth()].gas = monthDataSource[result[i].CreatedDateTime.getMonth()].gas + result[i].DailyValue; // 월별 가스 합산
  514. if (!nowYearHash_gas[result[i].CreatedDateTime]) { // 월별로 전기,가스가 저장되어 있는 일수 저장
  515. nowYearHash_gas[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  516. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_gas = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_gas + 1;
  517. }
  518. } else if (FuelType == 1) {
  519. monthDataSource[result[i].CreatedDateTime.getMonth()].normalPower = monthDataSource[result[i].CreatedDateTime.getMonth()].normalPower + result[i].DailyValue;
  520. if (!nowYearHash_normalPower[result[i].CreatedDateTime]) {
  521. nowYearHash_normalPower[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  522. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_normalPower = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_normalPower + 1;
  523. }
  524. } else {
  525. monthDataSource[result[i].CreatedDateTime.getMonth()].nightPower = monthDataSource[result[i].CreatedDateTime.getMonth()].nightPower + result[i].DailyValue;
  526. if (!nowYearHash_nightPower[result[i].CreatedDateTime]) {
  527. nowYearHash_nightPower[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  528. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_nightPower = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].dayNum_nightPower + 1;
  529. }
  530. }
  531. }
  532. // 전기, 가스 관제점의 마지막이다
  533. if ((gasFormulaCnt + normalPowerFormulaCnt + nightPowerFormulaCnt) == 0 || (gasFormulaCnt + normalPowerFormulaCnt + nightPowerFormulaCnt) == 1) {
  534. var grossArea = 0;
  535. var dataSourceGrossArea = new DevExpress.data.DataSource({
  536. store: {
  537. type: "odata",
  538. url: endpointSelector + "/CmSite"
  539. },
  540. requireTotalCount: true,
  541. pageSize: 10
  542. });
  543. dataSourceGrossArea.filter([
  544. ["SiteId", "=", BWA.UserInfo.SiteId()],
  545. ]);
  546. dataSourceGrossArea.load()
  547. .done(function (resultGrossArea) {
  548. if (resultGrossArea[0].GrossArea != null)
  549. grossArea = parseFloat(resultGrossArea[0].GrossArea.toString()); // 연면적
  550. var dayNum_gas = 0; // 수집한 가스 총 일수
  551. var dayNum_normalPower = 0;
  552. var dayNum_nightPower = 0;
  553. var totalDayNum = 0; // 일년 총 일수
  554. for (var i = 0; i < monthDayNumDataSource.length; i++) {
  555. monthDayNumDataSource[i].totalDayNum = 32 - new Date(now.getFullYear(), i, 32).getDate(); // 월별로 일수 계산 {31, 28, 31.....}
  556. totalDayNum = totalDayNum + monthDayNumDataSource[i].totalDayNum; // 월별로 일수의 합산
  557. dayNum_gas = dayNum_gas + monthDayNumDataSource[i].dayNum_gas; // 가스가 저장되어 있는 총 일 수
  558. dayNum_normalPower = dayNum_normalPower + monthDayNumDataSource[i].dayNum_normalPower;
  559. dayNum_nightPower = dayNum_nightPower + monthDayNumDataSource[i].dayNum_nightPower;
  560. }
  561. for (var i = 0; i < monthDataSource.length; i++) {
  562. manMonthDataSource[i].gas = monthDataSource[i].gas; // 인당 어레이에 월별로 가스량 저장
  563. manMonthDataSource[i].normalPower = monthDataSource[i].normalPower;
  564. manMonthDataSource[i].nightPower = monthDataSource[i].nightPower;
  565. yearDataSource[1].gas = yearDataSource[1].gas + monthDataSource[i].gas; // 단위면적 어레이에 연도별로 가스량 저장
  566. yearDataSource[1].normalPower = yearDataSource[1].normalPower + monthDataSource[i].normalPower;
  567. yearDataSource[1].nightPower = yearDataSource[1].nightPower + monthDataSource[i].nightPower;
  568. manYearDataSource[1].gas = manYearDataSource[1].gas + manMonthDataSource[i].gas;
  569. manYearDataSource[1].normalPower = manYearDataSource[1].normalPower + manMonthDataSource[i].normalPower;
  570. manYearDataSource[1].nightPower = manYearDataSource[1].nightPower + manMonthDataSource[i].nightPower;
  571. // 단위면적당
  572. var temp_gas = monthDataSource[i].gas / monthDayNumDataSource[i].dayNum_gas * totalDayNum * unitkWh / unitm3 / grossArea; // 단위면적 어레이에 월별로 가스를 kwh 환산해서 연면적으로 나눠서 저장
  573. monthDataSource[i].gas = (isNaN(temp_gas) ? 0 : temp_gas); // 0으로 나누면 NaN이 나오기 때문에 처리
  574. var temp_normalPower = monthDataSource[i].normalPower / monthDayNumDataSource[i].dayNum_normalPower * totalDayNum / grossArea;
  575. monthDataSource[i].normalPower = (isNaN(temp_normalPower) ? 0 : temp_normalPower); // 0으로 나누면 NaN이 나오기 때문에 처리
  576. var temp_nightPower = monthDataSource[i].nightPower / monthDayNumDataSource[i].dayNum_nightPower * totalDayNum / grossArea;
  577. monthDataSource[i].nightPower = (isNaN(temp_nightPower) ? 0 : temp_nightPower); // 0으로 나누면 NaN이 나오기 때문에 처리
  578. // 인당
  579. var man_temp_gas = manMonthDataSource[i].gas / monthDayNumDataSource[i].dayNum_gas * totalDayNum * unitkWh / unitm3 / manCnt; // 인당 어레이에 월별로 가스를 kwh 환산해서 인당으로 나눠서 저장
  580. manMonthDataSource[i].gas = (isNaN(man_temp_gas) ? 0 : man_temp_gas); // 0으로 나누면 NaN이 나오기 때문에 처리
  581. var man_temp_normalPower = manMonthDataSource[i].normalPower / monthDayNumDataSource[i].dayNum_normalPower * totalDayNum / manCnt;
  582. manMonthDataSource[i].normalPower = (isNaN(man_temp_normalPower) ? 0 : man_temp_normalPower); // 0으로 나누면 NaN이 나오기 때문에 처리
  583. var man_temp_nightPower = manMonthDataSource[i].nightPower / monthDayNumDataSource[i].dayNum_nightPower * totalDayNum / manCnt;
  584. manMonthDataSource[i].nightPower = (isNaN(man_temp_nightPower) ? 0 : man_temp_nightPower); // 0으로 나누면 NaN이 나오기 때문에 처리
  585. }
  586. // 연도 비교
  587. yearDataSource[1].gas = (yearDataSource[1].gas / dayNum_gas * unitkWh / unitm3) * totalDayNum / grossArea;
  588. yearDataSource[1].gas = (isNaN(yearDataSource[1].gas) ? 0 : yearDataSource[1].gas);
  589. yearDataSource[1].normalPower = (yearDataSource[1].normalPower / dayNum_normalPower) * totalDayNum / grossArea;
  590. yearDataSource[1].normalPower = (isNaN(yearDataSource[1].normalPower) ? 0 : yearDataSource[1].normalPower);
  591. yearDataSource[1].nightPower = (yearDataSource[1].nightPower / dayNum_nightPower) * totalDayNum / grossArea;
  592. yearDataSource[1].nightPower = (isNaN(yearDataSource[1].nightPower) ? 0 : yearDataSource[1].nightPower);
  593. manYearDataSource[1].gas = (manYearDataSource[1].gas / dayNum_gas * unitkWh / unitm3) * totalDayNum / manCnt;
  594. manYearDataSource[1].gas = (isNaN(manYearDataSource[1].gas) ? 0 : manYearDataSource[1].gas);
  595. manYearDataSource[1].normalPower = (manYearDataSource[1].normalPower / dayNum_normalPower) * totalDayNum / manCnt;
  596. manYearDataSource[1].normalPower = (isNaN(manYearDataSource[1].normalPower) ? 0 : manYearDataSource[1].normalPower);
  597. manYearDataSource[1].nightPower = (manYearDataSource[1].nightPower / dayNum_nightPower) * totalDayNum / manCnt;
  598. manYearDataSource[1].nightPower = (isNaN(manYearDataSource[1].nightPower) ? 0 : manYearDataSource[1].nightPower);
  599. $("#chartMonth").dxChart("instance").option('dataSource', monthDataSource); // 전기, 가스별 월별 단위면적당 에너지 사용량
  600. $("#chartYear").dxChart("instance").option('dataSource', yearDataSource); // 여기서는 올해 연도 데이터밖에 없음
  601. // 연도별 전기,가스 사용량에 저장 일 합산으로 나누고, 연도 총일수를 곱하고 연면적으로 나눈다
  602. $("#localUnion").dxLinearGauge("instance").option('value', (yearDataSource[1].gas + yearDataSource[1].normalPower + yearDataSource[1].nightPower));
  603. var subTitle = $("#localUnion").dxLinearGauge("instance").option('subtitle');
  604. if (parseFloat($("#Standard").text()) >= parseFloat($("#localUnion").dxLinearGauge("instance").option('value'))) {
  605. subTitle.text = "\n" + useIndex + "표준" + " : " + parseFloat($("#Standard").text()).toFixed(2).toString() + "\n표준보다 적게 사용중";
  606. }
  607. else if (parseFloat($("#Standard").text()) < parseFloat($("#localUnion").dxLinearGauge("instance").option('value'))) {
  608. subTitle.text = "\n" + useIndex + "표준" + " : " + parseFloat($("#Standard").text()).toFixed(2).toString() + "\n표준보다 많이 사용중";
  609. }
  610. else {
  611. subTitle.text = "\n" + useIndex + "표준" + " : " + parseFloat($("#Standard").text()).toFixed(2).toString() + "\n표준과 동일함";
  612. }
  613. $("#localUnion").dxLinearGauge("instance").option('subtitle', subTitle);
  614. // 단위면적 게이지의 최소값, 최대값 결정
  615. if (parseFloat($("#Standard").text()) >= parseFloat($("#localUnion").dxLinearGauge("instance").option('value'))) // 표준이 더 크다
  616. {
  617. $("#localUnion").dxLinearGauge("instance").option('scale', { startValue: 0, endValue: parseFloat($("#Standard").text()) });
  618. }
  619. else // 표준이 더 작거나 같다
  620. {
  621. $("#localUnion").dxLinearGauge("instance").option('scale', { startValue: 0, endValue: parseFloat($("#localUnion").dxLinearGauge("instance").option('value')) + 200 });
  622. }
  623. //
  624. // 단위면적당 표준에 CO2 팩터 곱합
  625. $("#localCO2").dxLinearGauge("instance").option('value', parseFloat($("#localUnion").dxLinearGauge("instance").option('value')) * powerFactor);
  626. var subTitle = $("#localCO2").dxLinearGauge("instance").option('subtitle');
  627. if (parseFloat($("#Standard").text()) * parseFloat(powerFactor) > parseFloat($("#localCO2").dxLinearGauge("instance").option('value'))) {
  628. subTitle.text = "\n" + useIndex + "표준" + " : " + (parseFloat($("#Standard").text()) * parseFloat(powerFactor)).toFixed(2).toString() + "\n표준보다 적게 사용중";
  629. }
  630. else if (parseFloat($("#Standard").text()) * parseFloat(powerFactor) < parseFloat($("#localCO2").dxLinearGauge("instance").option('value'))) {
  631. subTitle.text = "\n" + useIndex + "표준" + " : " + (parseFloat($("#Standard").text()) * parseFloat(powerFactor)).toFixed(2).toString() + "\n표준보다 많이 사용중";
  632. }
  633. else {
  634. subTitle.text = "\n" + useIndex + "표준" + " : " + (parseFloat($("#Standard").text()) * parseFloat(powerFactor)).toFixed(2).toString() + "\n표준과 동일함";
  635. }
  636. $("#localCO2").dxLinearGauge("instance").option('subtitle', subTitle);
  637. // 단위면적 CO2 게이지의 최소값, 최대값 결정
  638. if (parseFloat($("#Standard").text()) * parseFloat(powerFactor) > parseFloat($("#localCO2").dxLinearGauge("instance").option('value'))) // 표준이 더 크다
  639. {
  640. $("#localCO2").dxLinearGauge("instance").option('scale', { startValue: 0, endValue: parseFloat($("#Standard").text()) * parseFloat(powerFactor) });
  641. }
  642. else // 표준이 더 작거나 같다
  643. {
  644. $("#localCO2").dxLinearGauge("instance").option('scale', { startValue: 0, endValue: parseFloat($("#localCO2").dxLinearGauge("instance").option('value')) + 10 });
  645. }
  646. })
  647. .fail(function (error) {
  648. utils.toast.show(error);
  649. });
  650. }
  651. else {
  652. if (FuelType == 0) // 가스
  653. {
  654. gasFormulaCnt--;
  655. if (gasFormulaCnt != 0) {
  656. GetDailyData(FuelType, gasFormulaArray[gasFormulaCnt - 1][0], gasFormulaArray[gasFormulaCnt - 1][1]);
  657. }
  658. }
  659. else if (FuelType == 1) // 일반
  660. {
  661. normalPowerFormulaCnt--;
  662. if (normalPowerFormulaCnt != 0) {
  663. GetDailyData(FuelType, normalPowerFormulaArray[normalPowerFormulaCnt - 1][0], normalPowerFormulaArray[normalPowerFormulaCnt - 1][1]);
  664. }
  665. }
  666. else // 심야
  667. {
  668. nightPowerFormulaCnt--;
  669. if (nightPowerFormulaCnt != 0) {
  670. GetDailyData(FuelType, nightPowerFormulaArray[nightPowerFormulaCnt - 1][0], nightPowerFormulaArray[nightPowerFormulaCnt - 1][1]);
  671. }
  672. }
  673. }
  674. })
  675. .fail(function (error) {
  676. utils.toast.show(error);
  677. });
  678. }
  679. function GetChartDataBeforeYear(FuelType, FacilityTypeId, FormulaId) {
  680. var dataSource = new DevExpress.data.DataSource({
  681. store: {
  682. type: "odata",
  683. url: endpointSelector + "/BemsFormulaParameter"
  684. },
  685. requireTotalCount: true,
  686. pageSize: 100
  687. });
  688. dataSource.filter([
  689. ["SiteId", "=", BWA.UserInfo.SiteId()],
  690. "and",
  691. ["FacilityTypeId", "=", FacilityTypeId],
  692. "and",
  693. ["FormulaId", "=", FormulaId]
  694. ]);
  695. dataSource.sort({ getter: "ParameterId", desc: true });
  696. dataSource.load()
  697. .done(function (result) {
  698. if (FuelType == 0) {
  699. beforeYearGasFormulaCnt = result.length;
  700. beforeYearGasFormulaArray = new Array(beforeYearGasFormulaCnt);
  701. for (var i = 0; i < beforeYearGasFormulaArray.length; i++)
  702. beforeYearGasFormulaArray[i] = new Array(2);
  703. for (var i = 0; i < beforeYearGasFormulaCnt; i++) {
  704. beforeYearGasFormulaArray[i][0] = result[i].ParameterFacilityCode;
  705. beforeYearGasFormulaArray[i][1] = result[i].ParameterPropertyId;
  706. }
  707. GetBeforeYearDailyData(FuelType, beforeYearGasFormulaArray[beforeYearGasFormulaCnt - 1][0], gasFormulaArray[beforeYearGasFormulaCnt - 1][1]);
  708. } else if (FuelType == 1) {
  709. beforeYearNormalPowerFormulaCnt = result.length;
  710. beforeYearNormalPowerFormulaArray = new Array(beforeYearNormalPowerFormulaCnt);
  711. for (var i = 0; i < beforeYearNormalPowerFormulaArray.length; i++)
  712. beforeYearNormalPowerFormulaArray[i] = new Array(2);
  713. for (var i = 0; i < beforeYearNormalPowerFormulaCnt; i++) {
  714. beforeYearNormalPowerFormulaArray[i][0] = result[i].ParameterFacilityCode;
  715. beforeYearNormalPowerFormulaArray[i][1] = result[i].ParameterPropertyId;
  716. }
  717. GetBeforeYearDailyData(FuelType, beforeYearNormalPowerFormulaArray[beforeYearNormalPowerFormulaCnt - 1][0], beforeYearNormalPowerFormulaArray[beforeYearNormalPowerFormulaCnt - 1][1]);
  718. } else {
  719. beforeYearNightPowerFormulaCnt = result.length;
  720. beforeYearNightPowerFormulaArray = new Array(beforeYearNightPowerFormulaCnt);
  721. for (var i = 0; i < beforeYearNightPowerFormulaArray.length; i++)
  722. beforeYearNightPowerFormulaArray[i] = new Array(2);
  723. for (var i = 0; i < beforeYearNightPowerFormulaCnt; i++) {
  724. beforeYearNightPowerFormulaArray[i][0] = result[i].ParameterFacilityCode;
  725. beforeYearNightPowerFormulaArray[i][1] = result[i].ParameterPropertyId;
  726. }
  727. GetBeforeYearDailyData(FuelType, beforeYearNightPowerFormulaArray[beforeYearNightPowerFormulaCnt - 1][0], beforeYearNightPowerFormulaArray[beforeYearNightPowerFormulaCnt - 1][1]);
  728. }
  729. })
  730. .fail(function (error) {
  731. utils.toast.show(error);
  732. });
  733. }
  734. function GetBeforeYearDailyData(FuelType, FacilityCode, PropertyId) {
  735. var now = new Date();
  736. var dataSource = new DevExpress.data.DataSource({
  737. store: {
  738. type: "odata",
  739. url: endpointSelector + "/BemsMonitoringPointHistoryDaily"
  740. },
  741. requireTotalCount: true,
  742. pageSize: 366
  743. });
  744. dataSource.filter([
  745. ["SiteId", "=", BWA.UserInfo.SiteId()],
  746. "and",
  747. ["FacilityCode", "=", FacilityCode],
  748. "and",
  749. ["PropertyId", "=", PropertyId],
  750. "and",
  751. ["CreatedDateTime", ">=", new Date(now.getFullYear() - 1, 1 - 1, 1)],
  752. "and",
  753. ["CreatedDateTime", "<=", new Date(now.getFullYear() - 1, 12 - 1, 31)]
  754. ]);
  755. dataSource.sort({ getter: "CreatedDateTime", asc: true });
  756. dataSource.load()
  757. .done(function (result) {
  758. for (var i = 0; i < result.length; i++) {
  759. if (FuelType == 0) {
  760. yearDataSource[0].gas = yearDataSource[0].gas + result[i].DailyValue; // 전체 가스 값을 합한다
  761. manYearDataSource[0].gas = manYearDataSource[0].gas + result[i].DailyValue;
  762. if (!beforeYearHash_gas[result[i].CreatedDateTime]) { // 월별로 전기,가스가 저장되어 있는 일수 저장
  763. beforeYearHash_gas[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  764. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_gas = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_gas + 1;
  765. }
  766. } else if (FuelType == 1) {
  767. yearDataSource[0].normalPower = yearDataSource[0].normalPower + result[i].DailyValue;
  768. manYearDataSource[0].normalPower = manYearDataSource[0].normalPower + result[i].DailyValue;
  769. if (!beforeYearHash_normalPower[result[i].CreatedDateTime]) { // 월별로 전기,가스가 저장되어 있는 일수 저장
  770. beforeYearHash_normalPower[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  771. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_normalPower = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_normalPower + 1;
  772. }
  773. } else {
  774. yearDataSource[0].nightPower = yearDataSource[0].nightPower + result[i].DailyValue;
  775. manYearDataSource[0].nightPower = manYearDataSource[0].nightPower + result[i].DailyValue;
  776. if (!beforeYearHash_nightPower[result[i].CreatedDateTime]) { // 월별로 전기,가스가 저장되어 있는 일수 저장
  777. beforeYearHash_nightPower[result[i].CreatedDateTime] = result[i].CreatedDateTime;
  778. monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_nightPower = monthDayNumDataSource[result[i].CreatedDateTime.getMonth()].beforeDayNum_nightPower + 1;
  779. }
  780. }
  781. }
  782. if ((beforeYearGasFormulaCnt + beforeYearNormalPowerFormulaCnt + beforeYearNightPowerFormulaCnt) == 0 || (beforeYearGasFormulaCnt + beforeYearNormalPowerFormulaCnt + beforeYearNightPowerFormulaCnt) == 1) {
  783. var grossArea = 0;
  784. var dataSourceGrossArea = new DevExpress.data.DataSource({
  785. store: {
  786. type: "odata",
  787. url: endpointSelector + "/CmSite"
  788. },
  789. requireTotalCount: true,
  790. pageSize: 10
  791. });
  792. dataSourceGrossArea.filter([
  793. ["SiteId", "=", BWA.UserInfo.SiteId()],
  794. ]);
  795. dataSourceGrossArea.load()
  796. .done(function (resultGrossArea) {
  797. grossArea = parseFloat(resultGrossArea[0].GrossArea.toString()); // 연면적
  798. var beforeDayNum_gas = 0; // 수집한 가스 총 일수
  799. var beforeDayNum_normalPower = 0;
  800. var beforeDayNum_nightPower = 0;
  801. var beforeTotalDayNum = 0; // 일년 총 일수
  802. for (var i = 0; i < monthDayNumDataSource.length; i++) {
  803. monthDayNumDataSource[i].beforeTotalDayNum = 32 - new Date(now.getFullYear() - 1, i, 32).getDate(); // 월별로 일수 계산 {31, 28, 31.....}
  804. beforeTotalDayNum = beforeTotalDayNum + monthDayNumDataSource[i].beforeTotalDayNum; // 월별로 일수의 합산
  805. beforeDayNum_gas = beforeDayNum_gas + monthDayNumDataSource[i].beforeDayNum_gas; // 가스가 저장되어 있는 총 일 수
  806. beforeDayNum_normalPower = beforeDayNum_normalPower + monthDayNumDataSource[i].beforeDayNum_normalPower;
  807. beforeDayNum_nightPower = beforeDayNum_nightPower + monthDayNumDataSource[i].beforeDayNum_nightPower;
  808. }
  809. // 단위면적당
  810. yearDataSource[0].gas = (yearDataSource[0].gas / beforeDayNum_gas * unitkWh / unitm3) * beforeTotalDayNum / grossArea;
  811. yearDataSource[0].gas = (isNaN(yearDataSource[0].gas) ? 0 : yearDataSource[0].gas);
  812. yearDataSource[0].normalPower = (yearDataSource[0].normalPower / beforeDayNum_normalPower) * beforeTotalDayNum / grossArea;
  813. yearDataSource[0].normalPower = (isNaN(yearDataSource[0].normalPower) ? 0 : yearDataSource[0].normalPower);
  814. yearDataSource[0].nightPower = (yearDataSource[0].nightPower / beforeDayNum_nightPower) * beforeTotalDayNum / grossArea;
  815. yearDataSource[0].nightPower = (isNaN(yearDataSource[0].nightPower) ? 0 : yearDataSource[0].nightPower);
  816. // 인당
  817. manYearDataSource[0].gas = (manYearDataSource[0].gas / beforeDayNum_gas * unitkWh / unitm3) * beforeTotalDayNum / manCnt;
  818. manYearDataSource[0].gas = (isNaN(manYearDataSource[0].gas) ? 0 : manYearDataSource[0].gas);
  819. manYearDataSource[0].normalPower = (manYearDataSource[0].normalPower / beforeDayNum_normalPower) * beforeTotalDayNum / manCnt;
  820. manYearDataSource[0].normalPower = (isNaN(manYearDataSource[0].normalPower) ? 0 : manYearDataSource[0].normalPower);
  821. manYearDataSource[0].nightPower = (manYearDataSource[0].nightPower / beforeDayNum_nightPower) * beforeTotalDayNum / manCnt;
  822. manYearDataSource[0].nightPower = (isNaN(manYearDataSource[0].nightPower) ? 0 : manYearDataSource[0].nightPower);
  823. $("#chartYear").dxChart("instance").option('dataSource', yearDataSource);
  824. })
  825. .fail(function (error) {
  826. utils.toast.show(error);
  827. });
  828. }
  829. else {
  830. if (FuelType == 0) // 가스
  831. {
  832. beforeYearGasFormulaCnt--;
  833. if (beforeYearGasFormulaCnt != 0) {
  834. GetBeforeYearDailyData(FuelType, beforeYearGasFormulaArray[beforeYearGasFormulaCnt - 1][0], beforeYearGasFormulaArray[beforeYearGasFormulaCnt - 1][1]);
  835. }
  836. }
  837. else if (FuelType == 1) // 일반
  838. {
  839. beforeYearNormalPowerFormulaCnt--;
  840. if (beforeYearNormalPowerFormulaCnt != 0) {
  841. GetBeforeYearDailyData(FuelType, beforeYearNormalPowerFormulaArray[beforeYearNormalPowerFormulaCnt - 1][0], normalPowerFormulaArray[beforeYearNormalPowerFormulaCnt - 1][1]);
  842. }
  843. }
  844. else // 심야
  845. {
  846. beforeYearNightPowerFormulaCnt--;
  847. if (beforeYearNightPowerFormulaCnt != 0) {
  848. GetBeforeYearDailyData(FuelType, beforeYearNightPowerFormulaArray[beforeYearNightPowerFormulaCnt - 1][0], nightPowerFormulaArray[beforeYearNightPowerFormulaCnt - 1][1]);
  849. }
  850. }
  851. }
  852. })
  853. .fail(function (error) {
  854. utils.toast.show(error);
  855. });
  856. }
  857. function handleViewShown() {
  858. yearDataSource[1].gas = 0;
  859. yearDataSource[1].normalPower = 0;
  860. yearDataSource[1].nightPower = 0;
  861. manYearDataSource[1].gas = 0;
  862. manYearDataSource[1].normalPower = 0;
  863. manYearDataSource[1].nightPower = 0;
  864. $('#pManCnt').hide();
  865. $('#manCnt').hide();
  866. $('#acceptBtn').hide();
  867. $("#locUnionBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  868. $("#manBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  869. GetSiteData();
  870. GetChartDataMonth(gasFuelType, gasFacilityTypeId, gasFormulaId);
  871. GetChartDataMonth(normalPowerFuelType, normalPowerFacilityTypeId, normalPowerFormulaId);
  872. GetChartDataMonth(nightPowerFuelType, nightPowerFacilityTypeId, nightPowerFormulaId);
  873. GetChartDataBeforeYear(gasFuelType, gasFacilityTypeId, gasFormulaId);
  874. GetChartDataBeforeYear(normalPowerFuelType, normalPowerFacilityTypeId, normalPowerFormulaId);
  875. GetChartDataBeforeYear(nightPowerFuelType, nightPowerFacilityTypeId, nightPowerFormulaId);
  876. }
  877. var searchViewOptions = {
  878. };
  879. function handleSearchInSearchView() {
  880. }
  881. function handleViewShowing() {
  882. var dataSource = new DevExpress.data.DataSource({
  883. store: {
  884. type: "odata",
  885. url: endpointSelector + "/BemsFactorToe"
  886. },
  887. requireTotalCount: true,
  888. pageSize: 2
  889. });
  890. dataSource.sort({ getter: "FuelTypeId", asc: true });
  891. dataSource.load()
  892. .done(function (result) {
  893. if (result != 0) {
  894. for (var i = 0; i < result.length; i++) {
  895. if (result[i].FuelTypeId == 1)
  896. unitm3 = result[i].TotalFactor;
  897. if (result[i].FuelTypeId == 2)
  898. unitkWh = result[i].TotalFactor;
  899. }
  900. }
  901. else {
  902. utils.toast.show("[BemsFactorToe] 데이터가 없습니다.");
  903. }
  904. })
  905. .fail(function (error) {
  906. utils.toast.show("[BemsFactorToe] 데이터 조회를 실패했습니다.");
  907. });
  908. var dataSourceTCO2 = new DevExpress.data.DataSource({
  909. store: {
  910. type: "odata",
  911. url: endpointSelector + "/BemsFactorCo2"
  912. },
  913. requireTotalCount: true,
  914. pageSize: 10
  915. });
  916. dataSourceTCO2.filter([
  917. ["FuelTypeId", "<", 3],
  918. ]);
  919. dataSourceTCO2.load()
  920. .done(function (resultTCO2) {
  921. for (var i = 0; i < resultTCO2.length; i++) {
  922. if (resultTCO2[i].FuelTypeId == 1)
  923. powerFactor = resultTCO2[i].Factor
  924. if (resultTCO2[i].FuelTypeId == 2)
  925. gasFactor = resultTCO2[i].Factor
  926. }
  927. })
  928. .fail(function (error) {
  929. utils.toast.show(error);
  930. });
  931. GetSitePeopleIncrease();
  932. }
  933. var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView),
  934. {
  935. viewShowing: handleViewShowing,
  936. localUnion: {
  937. geometry: { orientation: "vertical" },
  938. rangeContainer: {
  939. width: 30,
  940. backgroundColor: '#FFE400',
  941. horizontalOrientation: 'right'
  942. },
  943. scale: {
  944. startValue: 0,
  945. endValue: 2000,
  946. },
  947. title: {
  948. text: "단위면적당 에너지사용량\n(kWH/㎡)\n ",
  949. font: { size: 15, weight: 400 }
  950. },
  951. subtitle: {
  952. text: "\n공공병원표준 : 872\n표준보다 적게 사용중",
  953. font: { size: 13, weight: 1000 }
  954. },
  955. "export": {
  956. enabled: true
  957. },
  958. valueIndicator: {
  959. type: 'textcloud',
  960. color: 'red'
  961. },
  962. },
  963. localCO2: {
  964. geometry: { orientation: "vertical" },
  965. rangeContainer: {
  966. width: 30,
  967. backgroundColor: '#00D8FF',
  968. horizontalOrientation: 'right'
  969. },
  970. scale: {
  971. startValue: 0,
  972. endValue: 2000,
  973. },
  974. title: {
  975. text: "CO2배출량\n(tCO²)\n ",
  976. font: { size: 15, weight: 400 }
  977. },
  978. subtitle: {
  979. text: "\n공공병원표준 : 146\n표준보다 적게 사용중",
  980. font: { size: 13, weight: 1000 }
  981. },
  982. "export": {
  983. enabled: true
  984. },
  985. valueIndicator: {
  986. type: 'textcloud',
  987. color: 'red'
  988. },
  989. },
  990. chartMonth: {
  991. dataSource: monthDataSource,
  992. commonSeriesSettings: {
  993. argumentField: "month",
  994. type: "stackedBar"
  995. },
  996. series: [
  997. { valueField: "gas", name: "가스" },
  998. { valueField: "normalPower", name: "일반전력" },
  999. { valueField: "nightPower", name: "심야전력" }
  1000. ],
  1001. legend: {
  1002. position: 'outside',
  1003. verticalAlignment: "top",
  1004. horizontalAlignment: "center",
  1005. itemTextPosition: 'bottom'
  1006. },
  1007. valueAxis: {
  1008. title: {
  1009. text: "에너지 사용량(kWH/㎡)"
  1010. },
  1011. position: "left"
  1012. },
  1013. argumentAxis: {
  1014. type: "stackedBar",
  1015. position: 'bottom',
  1016. grid: { visible: true }
  1017. },
  1018. "export": {
  1019. enabled: true
  1020. },
  1021. title: {
  1022. font: { size: 15 },
  1023. text: '월별 에너지 사용량(단위면적당)'
  1024. },
  1025. tooltip: {
  1026. enabled: true,
  1027. customizeTooltip: function (point) {
  1028. return {
  1029. text: numberWithCommas(point.value.toFixed(2))
  1030. };
  1031. }
  1032. }
  1033. },
  1034. chartYear: {
  1035. dataSource: yearDataSource,
  1036. commonSeriesSettings: {
  1037. argumentField: "year",
  1038. type: "stackedBar"
  1039. },
  1040. series: [
  1041. { valueField: "gas", name: "가스" },
  1042. { valueField: "normalPower", name: "일반전력" },
  1043. { valueField: "nightPower", name: "심야전력" }
  1044. ],
  1045. legend: {
  1046. position: 'outside',
  1047. verticalAlignment: "top",
  1048. horizontalAlignment: "center",
  1049. itemTextPosition: 'bottom',
  1050. margin: 10
  1051. },
  1052. valueAxis: {
  1053. title: {
  1054. text: "에너지 사용량(kWH/㎡)"
  1055. },
  1056. position: "left"
  1057. },
  1058. "export": {
  1059. enabled: true
  1060. },
  1061. title: {
  1062. font: { size: 15 },
  1063. text: '연간 에너지 사용량(단위면적당)'
  1064. },
  1065. tooltip: {
  1066. enabled: true,
  1067. customizeTooltip: function (point) {
  1068. return {
  1069. text: numberWithCommas(point.value.toFixed(2))
  1070. };
  1071. }
  1072. }
  1073. },
  1074. locUnionBtn: function () {
  1075. selectButton = 0;
  1076. $('#pManCnt').hide();
  1077. $('#manCnt').hide();
  1078. $('#acceptBtn').hide();
  1079. $("#locUnionBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  1080. $("#manBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  1081. $("#chartMonth").dxChart("instance").option('dataSource', monthDataSource);
  1082. var valAxis = $("#chartMonth").dxChart("instance").option('valueAxis');
  1083. valAxis.title.text = "에너지 사용량(kWH/㎡)";
  1084. $("#chartMonth").dxChart("instance").option('valueAxis', valAxis);
  1085. var title = $("#chartMonth").dxChart("instance").option('title');
  1086. title.text = '월별 에너지 사용량(단위면적당)';
  1087. $("#chartMonth").dxChart("instance").option('title', title);
  1088. $("#chartYear").dxChart("instance").option('dataSource', yearDataSource);
  1089. var valAxis = $("#chartYear").dxChart("instance").option('valueAxis');
  1090. valAxis.title.text = "에너지 사용량(kWH/㎡)";
  1091. $("#chartYear").dxChart("instance").option('valueAxis', valAxis);
  1092. var title = $("#chartYear").dxChart("instance").option('title');
  1093. title.text = '연간 에너지 사용량(단위면적당)';
  1094. $("#chartYear").dxChart("instance").option('title', title);
  1095. },
  1096. manBtn: function () {
  1097. selectButton = 1;
  1098. $("#manBtn").css("background-image", "linear-gradient(180deg,#9babc3 0%,#41618c 100%)");
  1099. $("#locUnionBtn").css("background-image", "linear-gradient(rgb(56,88,130) 0%, rgb(44,68,101)100%)");
  1100. $("#chartMonth").dxChart("instance").option('dataSource', manMonthDataSource);
  1101. var valAxis = $("#chartMonth").dxChart("instance").option('valueAxis');
  1102. valAxis.title.text = "에너지 사용량(kWH/명)";
  1103. $("#chartMonth").dxChart("instance").option('valueAxis', valAxis);
  1104. var title = $("#chartMonth").dxChart("instance").option('title');
  1105. title.text = '월별 에너지 사용량(1인당)';
  1106. $("#chartMonth").dxChart("instance").option('title', title);
  1107. $("#chartYear").dxChart("instance").option('dataSource', manYearDataSource);
  1108. var valAxis = $("#chartYear").dxChart("instance").option('valueAxis');
  1109. valAxis.title.text = "에너지 사용량(kWH/명)";
  1110. $("#chartYear").dxChart("instance").option('valueAxis', valAxis);
  1111. var title = $("#chartYear").dxChart("instance").option('title');
  1112. title.text = '연간 에너지 사용량(1인당)';
  1113. $("#chartYear").dxChart("instance").option('title', title);
  1114. },
  1115. StandardBtn: function () {
  1116. viewModel.LocalunionManUsagePopup.visible(true);
  1117. }
  1118. });
  1119. LocalunionManUsagePopup = viewModel.LocalunionManUsagePopup = BWA.Popup.LocalunionManUsage.create(viewInfo, viewModel);
  1120. return viewModel;
  1121. };