123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
-
- BWA.AlarmInfo = {
- Alarm_Image_Change: ko.observable(false)
- };
- $(function () {
- 'use strict';
- var AlarmPopupVisible = ko.observable(false);
- BWA.AlarmPopup = {
- AlarmPopupOptions: {
- visible: AlarmPopupVisible,
- width: '1400px',
- height: '850px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨
- contentTemplate: "content",
- showTitle: true,
- title: "알람정보",
- dragEnabled: false,
- closeOnOutsideClick: false,
- shadingColor: 'rgba(0,0,0,0.0)',
- shownAction: handlePopupShown,
- animation: window.utils.popup.createAnimation()
- },
- AlarmPopupOpen: function() {
- AlarmPopupVisible(true);
- },
- AlarmPopupCheckOptions: {
- visible: false,
- width: '400px',
- height: '400px', // cyim 2017.05.30 : 테스트 결과 Devextreme 버그임. px 로 지정하면 초기 출력시 정확하게 가운데에 있지만, auto 설정시 화면아래에 위치하게 됨
- contentTemplate: "content",
- showTitle: true,
- title: "조치방법",
- dragEnabled: false,
- closeOnOutsideClick: false,
- shadingColor: 'rgba(0,0,0,0.0)',
- //shownAction: handlePopupShown,
- animation: window.utils.popup.createAnimation()
- },
- }
- // 알람 정보 저장
- var DataArrayInfo = [];
- // 팝업 생성되면서 실행
- function handlePopupShown() {
- // dxLoadPanel 패널
- $("#LoadPanel").dxLoadPanel({
- message: '전체 알람 해제중...',
- showIndicator: true,
- visible: false
- });
- $("#Button_StopAlarm").dxButton({
- text: "전체 알람 해제",
- onClick: function () {
- var num = DataArrayInfo.length;
- if (num == 0) {
- // 에러 발생
- utils.toast.show('해제 할 알람 정보가 없습니다.', 'error');
- return;
- }
- DevExpress.ui.dialog.confirm("전체 알람 해제 하시겠습니까?", "전체 알람 해제").done(function (dialogResult) {
- if (dialogResult)
- {
- // 전체 알람 해제 버튼 비활성화
- $("#Button_StopAlarm").dxButton('instance').option('disabled', true);
- // dxLoadPanel 패널 시작
- $("#LoadPanel").dxLoadPanel('instance').option('visible', true);
- // 알람 버튼 색 컬러 변경 정지
- BWA.AlarmInfo.Alarm_Image_Change = false;
- var index = 0;
- for (var i = 0; i < num; i++) {
- BWA.db.BemsAlarmLog.update({
- SiteId: DataArrayInfo[i].SiteId(),
- FacilityTypeId: DataArrayInfo[i].FacilityTypeId(),
- FacilityCode: DataArrayInfo[i].FacilityCode(),
- PropertyId: DataArrayInfo[i].PropertyId(),
- FormulaId: DataArrayInfo[i].FormulaId(),
- CreatedDateTime: DataArrayInfo[i].CreatedDateTime()
- },
- {
- Conform: true // 확인함
- }).done(function () {
- index++;
- if (num == index) {
- // 데이터 갱신
- DataArrayInfo = [];
- $("#gridContainer_alarm").dxDataGrid("instance").option("dataSource", DataArrayInfo);
- // 전체 알람 해제 버튼 활성화
- $("#Button_StopAlarm").dxButton('instance').option('disabled', false);
- // dxLoadPanel 패널 종료
- $("#LoadPanel").dxLoadPanel('instance').option('visible', false);
- }
- }).fail(function () {
- index++;
- if (num == index) {
- // 전체 알람 해제 버튼 활성화
- $("#Button_StopAlarm").dxButton('instance').option('disabled', false);
- // dxLoadPanel 패널 종료
- $("#LoadPanel").dxLoadPanel('instance').option('visible', false);
- // 에러 발생
- utils.toast.show('전체 알람 해제시 에러가 발생하였습니다.', 'error');
- }
- });
- }
- }
- });
-
- }
- });
- // 그리드 세팅
- $("#gridContainer_alarm").dxDataGrid({
- rowAlternationEnabled: true,
- paging: {
- pageSize: 21
- },
- columns: [
- { dataField: 'CreatedDateTime', caption: '날짜', width: '12%', alignment: 'center', dataType: 'date', format: 'yyyy-MM-dd HH:mm:ss', sortOrder: 'asc', },
- { dataField: 'Type', caption: '타입', width: '5%', alignment: 'center' },
- { dataField: 'FacilityName', caption: '설비명칭', width: '20%', alignment: 'center' },
- { dataField: 'PropertyName', caption: '관제점(분석요소)', width: '20%', alignment: 'center' },
- { dataField: 'CurrentValue', caption: '값', width: '8%', alignment: 'center' },
- { dataField: 'UpperLimit', caption: '기준상한(이상)', width: '9%', alignment: 'center' },
- { dataField: 'LowerLimit', caption: '기준하한(이하)', width: '9%', alignment: 'center' },
- { dataField: 'SMSResult', caption: 'SMS 결과', width: '6%', alignment: 'center' },
- { dataField: 'EmailResult', caption: 'Email 결과', width: '6%', alignment: 'center' },
- { dataField: 'Check', caption: '조치방법', width: '5%', alignment: 'center' },
- // 아래 visible 속성을 true를 준 이유는 조치방법 확인을 클릭했을때, SiteId 등의 값을 읽어오지 못해서다
- { dataField: 'SiteId', visible: true },
- { dataField: 'FacilityTypeId', visible: true },
- { dataField: 'FacilityCode', visible: true },
- { dataField: 'PropertyId', visible: true },
- { dataField: 'FormulaId', visible: true },
- ],
- //dataSource: setDataSource,
- onCellClick: function (object) {
- if (object.columnIndex == 9) {
- var DataArrayInfo = object.values;
- var SiteId = DataArrayInfo[10];
- var FacilityTypeId = DataArrayInfo[11];
- var FacilityCode = DataArrayInfo[12];
- var PropertyId = DataArrayInfo[13];
- var FormulaId = DataArrayInfo[14];
- // 조치 방법
- $("#PopupAlarmCheck").dxPopup('instance').option('visible', true);
- var BemsAlarmSettingDataSource = BemsWebApplication.db.createDataSource('BemsAlarmSetting');
- BemsAlarmSettingDataSource.filter([
- ['SiteId', '=', parseInt(SiteId)],
- 'and',
- ['FacilityTypeId', '=', parseInt(FacilityTypeId)],
- 'and',
- ['FacilityCode', '=', parseInt(FacilityCode)],
- 'and',
- ['PropertyId', '=', parseInt(PropertyId)],
- 'and',
- ['FormulaId', '=', parseInt(FormulaId)]
- ]);
- BemsAlarmSettingDataSource.load().done(function (result) {
- _.each(result, function (x) {
- $("#TextArea_Check").dxTextArea({
- disabled: true,
- value: x.Content
- });
- });
- })
- }
- },
- });
- var BemsAlarmLogDataSource = BemsWebApplication.DataUtil.createDataSource({
- dataSourceOptions: {
- select: [
- 'CreatedDateTime', 'BemsAlarmSetting/FacilityName', 'BemsAlarmSetting/PointName', 'CurrentValue', 'BemsAlarmSetting/UpperLimit', 'BemsAlarmSetting/LowerLimit', 'SMSResult', 'EmailResult',
- 'SiteId', 'FacilityTypeId', 'FacilityCode', 'PropertyId', 'FormulaId'
- ],
- expand: ['BemsAlarmSetting'],
- extendOptions: {
- forceOriginalField: true,
- alterNames: {
- 'BemsAlarmSetting/FacilityName': 'FacilityName',
- 'BemsAlarmSetting/PointName': 'PointName',
- 'BemsAlarmSetting/UpperLimit': 'UpperLimit',
- 'BemsAlarmSetting/LowerLimit': 'LowerLimit'
- }
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['Conform', '=', false]
- ]
- }
- }, 'BemsAlarmLog');
- BemsAlarmLogDataSource.load().done(function (result) {
- if(result.length == 0)
- {
- // 알람 버튼 색 컬러 변경 정지
- BWA.AlarmInfo.Alarm_Image_Change = false;
- }
- DataArrayInfo = []; // 초기화
- _.each(result, function (x) {
- var temp = '';
- if (x.FormulaId() != 0) {
- temp = '성능분석';
- }
- else {
- if (x.FacilityTypeId() == 99) {
- temp = '가상시설';
- }
- else {
- temp = '일반시설';
- }
- }
- DataArrayInfo.push({
- CreatedDateTime: x.CreatedDateTime,
- Type: temp,
- FacilityName: x.FacilityName,
- PropertyName: x.PointName,
- CurrentValue: x.CurrentValue,
- UpperLimit: x.UpperLimit,
- LowerLimit: x.LowerLimit,
- SMSResult: x.SMSResult,
- EmailResult: x.EmailResult,
- Check: "확인",
- SiteId: x.SiteId,
- FacilityTypeId: x.FacilityTypeId,
- FacilityCode: x.FacilityCode,
- PropertyId: x.PropertyId,
- FormulaId: x.FormulaId
- });
- });
- $("#gridContainer_alarm").dxDataGrid("instance").option("dataSource", DataArrayInfo);
- })
-
- //var setDataSource = new Array();
- //var setData = {
- // "CreatedDateTime": "2018-05-03 14:00:00", "Type": "", "FacilityName": "", "PropertyName": "", "CurrentValue": 0, "UpperLimit": 0, "LowerLimit": 0, "Chekck": "",
- // "SiteId": 0, "FacilityTypeId": 0, "FacilityCode": 0, "PropertyId": 0, "FormulaId": 0
- //};
- //setData.CreatedDateTime = "2018-05-03 14:00:00";
- //setData.Type = "성능분석";
- //setData.FacilityName = "공조기_AHU - 101";
- //setData.PropertyName = "난방ATF";
- //setData.CurrentValue = 10;
- //setData.UpperLimit = 10;
- //setData.LowerLimit = 5;
- //setData.Chekck = "확인";
- //setDataSource.push(setData);
- }
- });
|