Merge branch 'master' of https://gitea.mjm-staging.developers-homelab.net/BIMS/BIMS
This commit is contained in:
		
						commit
						5f979a36cb
					
				@ -87,6 +87,8 @@ namespace FrontendWebApi.ApiControllers
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                var table = input.tableType == "year" ? "archive_electric_meter_day" : "archive_electric_meter_" + input.tableType;
 | 
					                var table = input.tableType == "year" ? "archive_electric_meter_day" : "archive_electric_meter_" + input.tableType;
 | 
				
			||||||
                var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null;
 | 
					                var dateFormat = input.tableType == "day" || input.tableType == "week" ? "%Y-%m-%d" : input.tableType == "month" ? "%Y-%m" : input.tableType == "year" ? "%Y" : null;
 | 
				
			||||||
 | 
					                var aemmEndDate = input.tableType == "year" ? $"year(DATE_ADD(fd.date, INTERVAL +1 {input.tableType}))" : $"DATE_ADD(fd.date, INTERVAL +1 {input.tableType})";
 | 
				
			||||||
 | 
					                var aemmStaDate = input.tableType == "year" ? "year(fd.date)" : "fd.date";
 | 
				
			||||||
                var sql = $@"set @i = -1;
 | 
					                var sql = $@"set @i = -1;
 | 
				
			||||||
                            select fd.device_number, aemm.avg_rawdata, DATE_FORMAT(fd.date, @dateFormat) as timestamp
 | 
					                            select fd.device_number, aemm.avg_rawdata, DATE_FORMAT(fd.date, @dateFormat) as timestamp
 | 
				
			||||||
                            from (
 | 
					                            from (
 | 
				
			||||||
@ -111,7 +113,7 @@ namespace FrontendWebApi.ApiControllers
 | 
				
			|||||||
		                            from {table}
 | 
							                            from {table}
 | 
				
			||||||
 		                            where start_timestamp >= @startTime and end_timestamp < @endTime and point = 'KWH' and SUBSTRING_INDEX(device_number, '_', 1) = @building_tag
 | 
					 		                            where start_timestamp >= @startTime and end_timestamp < @endTime and point = 'KWH' and SUBSTRING_INDEX(device_number, '_', 1) = @building_tag
 | 
				
			||||||
                                    {sqlWhere} {sqlGroup}
 | 
					                                    {sqlWhere} {sqlGroup}
 | 
				
			||||||
                            ) aemm on aemm.start_timestamp >= fd.date and aemm.end_timestamp < DATE_ADD(fd.date, INTERVAL +1 {input.tableType}) and aemm.device_number = fd.device_number
 | 
					                            ) aemm on aemm.start_timestamp >= {aemmStaDate} and aemm.end_timestamp < {aemmEndDate} and aemm.device_number = fd.device_number
 | 
				
			||||||
                            order by fd.device_number, fd.date";
 | 
					                            order by fd.device_number, fd.date";
 | 
				
			||||||
                var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql,
 | 
					                var rawData = await backendRepository.GetAllAsync<HydroMeterRawDataOutput>(sql,
 | 
				
			||||||
                                new { startTime = startTime, endtime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat });
 | 
					                                new { startTime = startTime, endtime = endTime, building_tag = input.building_tag, floor_tag = input.floor_tag, dateFormat = dateFormat });
 | 
				
			||||||
 | 
				
			|||||||
@ -224,7 +224,7 @@
 | 
				
			|||||||
                    </button>*@
 | 
					                    </button>*@
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="modal-body">
 | 
					            <div class="modal-body">
 | 
				
			||||||
                <form id="emergency-item-form">
 | 
					                <form id="emergency-item-form" onsubmit="PassVerify(true)">
 | 
				
			||||||
                    <div class="row">
 | 
					                    <div class="row">
 | 
				
			||||||
                        <div class="form-group col-6">
 | 
					                        <div class="form-group col-6">
 | 
				
			||||||
                            <label class="form-label" for="emergency_verify_modal"><span class="text-danger">*</span>指揮官密碼</label>
 | 
					                            <label class="form-label" for="emergency_verify_modal"><span class="text-danger">*</span>指揮官密碼</label>
 | 
				
			||||||
@ -351,6 +351,9 @@
 | 
				
			|||||||
        var ToVerifyType = 0;
 | 
					        var ToVerifyType = 0;
 | 
				
			||||||
       
 | 
					       
 | 
				
			||||||
        $(function () {
 | 
					        $(function () {
 | 
				
			||||||
 | 
					             $("#emergency-item-form").submit((e) => {
 | 
				
			||||||
 | 
					                e.preventDefault();
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //#region 定時取得報警設備(3s)
 | 
					            //#region 定時取得報警設備(3s)
 | 
				
			||||||
            interval_id = setInterval(function () {
 | 
					            interval_id = setInterval(function () {
 | 
				
			||||||
@ -453,7 +456,7 @@
 | 
				
			|||||||
            SmsMemberTable = $("#smsMemberTable").DataTable({
 | 
					            SmsMemberTable = $("#smsMemberTable").DataTable({
 | 
				
			||||||
                "columns": [
 | 
					                "columns": [
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        "data": "full_name"
 | 
					                        "data": "name"
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        "data": "departmentName"
 | 
					                        "data": "departmentName"
 | 
				
			||||||
@ -869,6 +872,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterBuilding();
 | 
					            ChangeFilterBuilding();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -889,6 +893,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterBuilding();
 | 
					            ChangeFilterBuilding();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -956,6 +961,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterFloor();
 | 
					            ChangeFilterFloor();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -968,7 +974,7 @@
 | 
				
			|||||||
                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
					                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
				
			||||||
                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
					                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
				
			||||||
                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
					                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
				
			||||||
                                if (temp_all_floor.findIndex(x => x.guid == floor.guid) < 0) { //表示未加入,需加入
 | 
					                                if (temp_all_floor.findIndex(x => x.name == floor.name) < 0) { //表示未加入,需加入
 | 
				
			||||||
                                    temp_all_floor.push(floor);
 | 
					                                    temp_all_floor.push(floor);
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            });
 | 
					                            });
 | 
				
			||||||
@ -981,7 +987,7 @@
 | 
				
			|||||||
            $("#floors").append(`<button type="button" class="btn btn-secondary ml-2 mb-2" onclick="AllFloor()">全選</button>`);
 | 
					            $("#floors").append(`<button type="button" class="btn btn-secondary ml-2 mb-2" onclick="AllFloor()">全選</button>`);
 | 
				
			||||||
            var html = "";
 | 
					            var html = "";
 | 
				
			||||||
            temp_all_floor.forEach(function (floor, floor_index) {
 | 
					            temp_all_floor.forEach(function (floor, floor_index) {
 | 
				
			||||||
                html += '<button type="button" class="btn btn-outline-success ml-2 mb-2" onclick="SelectFloor(\'' + floor.guid + '\',this)">' + floor.name + '</button>';
 | 
					                html += '<button type="button" class="btn btn-outline-success ml-2 mb-2" onclick="SelectFloor(\'' + floor.name + '\',this)">' + floor.name + '</button>';
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            $('#floors').append(html);
 | 
					            $('#floors').append(html);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1001,32 +1007,34 @@
 | 
				
			|||||||
                $('#floors').find('.btn-outline-success').removeClass('btn-outline-success').addClass('btn-success');
 | 
					                $('#floors').find('.btn-outline-success').removeClass('btn-outline-success').addClass('btn-success');
 | 
				
			||||||
                SelectedFilter.floor_guids = [];
 | 
					                SelectedFilter.floor_guids = [];
 | 
				
			||||||
                temp_all_floor.forEach(function (floor, floor_index) {
 | 
					                temp_all_floor.forEach(function (floor, floor_index) {
 | 
				
			||||||
                    SelectedFilter.floor_guids.push(floor.guid);
 | 
					                    SelectedFilter.floor_guids.push(floor.name);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterLayer2();
 | 
					            ChangeFilterLayer2();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //#region 選擇樓層
 | 
					        //#region 選擇樓層
 | 
				
			||||||
        function SelectFloor(floor_guid, e) {
 | 
					        function SelectFloor(floor_tag, e) {
 | 
				
			||||||
            select_all_floor = false;
 | 
					            select_all_floor = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var floor_index = SelectedFilter.floor_guids.findIndex(x => x == floor_guid);
 | 
					            var floor_index = SelectedFilter.floor_guids.findIndex(x => x == floor_tag);
 | 
				
			||||||
            if (floor_index > -1) { //已選擇 -> 未選擇
 | 
					            if (floor_index > -1) { //已選擇 -> 未選擇
 | 
				
			||||||
                SelectedFilter.floor_guids.splice(floor_index, 1);
 | 
					                SelectedFilter.floor_guids.splice(floor_index, 1);
 | 
				
			||||||
                $(e).removeClass('btn-success').addClass('btn-outline-success');
 | 
					                $(e).removeClass('btn-success').addClass('btn-outline-success');
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else { //未選擇 -> 已選擇
 | 
					            else { //未選擇 -> 已選擇
 | 
				
			||||||
                SelectedFilter.floor_guids.push(floor_guid);
 | 
					                SelectedFilter.floor_guids.push(floor_tag);
 | 
				
			||||||
                $(e).removeClass('btn-outline-success').addClass('btn-success');
 | 
					                $(e).removeClass('btn-outline-success').addClass('btn-success');
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterLayer2();
 | 
					            ChangeFilterLayer2();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -1039,7 +1047,7 @@
 | 
				
			|||||||
                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
					                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
				
			||||||
                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
					                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
				
			||||||
                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
					                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
				
			||||||
                                if (SelectedFilter.floor_guids.findIndex(x => x == floor.guid) > -1) { //抓取選擇樓層的底下大類
 | 
					                                if (SelectedFilter.floor_guids.findIndex(x => x == floor.name) > -1) { //抓取選擇樓層的底下大類
 | 
				
			||||||
                                    floor.groupLayer2s.forEach(function (layer2, layer2_index) {
 | 
					                                    floor.groupLayer2s.forEach(function (layer2, layer2_index) {
 | 
				
			||||||
                                        if (temp_all_layer2.findIndex(x => x.value == layer2.value) < 0) {
 | 
					                                        if (temp_all_layer2.findIndex(x => x.value == layer2.value) < 0) {
 | 
				
			||||||
                                            temp_all_layer2.push(layer2);
 | 
					                                            temp_all_layer2.push(layer2);
 | 
				
			||||||
@ -1098,6 +1106,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterLayer3();
 | 
					            ChangeFilterLayer3();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -1118,6 +1127,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ChangeFilterLayer3();
 | 
					            ChangeFilterLayer3();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
					            @*console.log("SelectedFilter", SelectedFilter);*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
@ -1130,7 +1140,7 @@
 | 
				
			|||||||
                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
					                    disaster.groupBuildings.forEach(function (building, building_index) {
 | 
				
			||||||
                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
					                        if (building.tag == SelectedFilter.building_tag) { //抓取選擇棟別的底下樓層
 | 
				
			||||||
                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
					                            building.groupFloors.forEach(function (floor, floor_index) {
 | 
				
			||||||
                                if (SelectedFilter.floor_guids.findIndex(x => x == floor.guid) > -1) { //抓取選擇樓層的底下大類
 | 
					                                if (SelectedFilter.floor_guids.findIndex(x => x == floor.name) > -1) { //抓取選擇樓層的底下大類
 | 
				
			||||||
                                    floor.groupLayer2s.forEach(function (layer2, layer2_index) {
 | 
					                                    floor.groupLayer2s.forEach(function (layer2, layer2_index) {
 | 
				
			||||||
                                        if (SelectedFilter.layer2.findIndex(x => x == layer2.value) > -1) { //抓取選擇大類的底下小類
 | 
					                                        if (SelectedFilter.layer2.findIndex(x => x == layer2.value) > -1) { //抓取選擇大類的底下小類
 | 
				
			||||||
                                            layer2.groupLayer3s.forEach(function (layer3, layer3_index) {
 | 
					                                            layer2.groupLayer3s.forEach(function (layer3, layer3_index) {
 | 
				
			||||||
@ -1203,6 +1213,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ResetDeviceTable();
 | 
					            ResetDeviceTable();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1222,6 +1233,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            is_need_reload = true;
 | 
					            is_need_reload = true;
 | 
				
			||||||
            ResetDeviceTable();
 | 
					            ResetDeviceTable();
 | 
				
			||||||
 | 
					            UpdateDeviceAmount();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1751,7 +1763,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function PassVerify(Vbool) {
 | 
					        function PassVerify(Vbool) {
 | 
				
			||||||
            console.log(SmsMemberTable.data().toArray())
 | 
					 | 
				
			||||||
            if (ToVerifyType == 0) {
 | 
					            if (ToVerifyType == 0) {
 | 
				
			||||||
                if (Vbool) {
 | 
					                if (Vbool) {
 | 
				
			||||||
                    var url = "api/EmergencyDevice/CheckVerifybool";
 | 
					                    var url = "api/EmergencyDevice/CheckVerifybool";
 | 
				
			||||||
@ -1788,9 +1799,6 @@
 | 
				
			|||||||
                        $('#list_' + EmerLastsetting).find('.active').children().trigger('click');
 | 
					                        $('#list_' + EmerLastsetting).find('.active').children().trigger('click');
 | 
				
			||||||
                        $('#emergency-verify-modal').modal('hide');
 | 
					                        $('#emergency-verify-modal').modal('hide');
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (ToVerifyType == 1) {
 | 
					            if (ToVerifyType == 1) {
 | 
				
			||||||
 | 
				
			|||||||
@ -78,7 +78,7 @@
 | 
				
			|||||||
                async: false,
 | 
					                async: false,
 | 
				
			||||||
                dataType: 'json',
 | 
					                dataType: 'json',
 | 
				
			||||||
                success: function (rel) {
 | 
					                success: function (rel) {
 | 
				
			||||||
                    window.location = "/Home/Index/";
 | 
					                    window.location = "/EmergencyDeviceMenu";
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                error: function (xhr, textStatus, thrownError) {
 | 
					                error: function (xhr, textStatus, thrownError) {
 | 
				
			||||||
                    alert(textStatus);
 | 
					                    alert(textStatus);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user