[緊急應變] 設備清單取得 Niagara Alarm 原程序依時間昨天到今天取得,改為動態依據 variable 起始時間移動天數抓取 Alarm | 建立取得緊急應變取得Niagara Alarm時間範圍(起始移動天數,今日為0計算) API | GetDeviceGroup API SQL 調整 (device_group Table 棄用) | [緊急應變][View] ResetDeviceTable 程序調整
This commit is contained in:
parent
8b70a69ecd
commit
465a55f203
@ -54,6 +54,9 @@ namespace FrontendWebApi.ApiControllers
|
||||
return BadRequest(apiResult);
|
||||
}
|
||||
|
||||
sqlString = $@"SELECT system_value FROM variable WHERE system_type = 'emergencyConfig' AND system_key = 'getNiagaraAlarmMoveDayNumStart' AND deleted = 0";
|
||||
int moveDayNum = int.Parse((await frontendRepository.GetOneAsync<string>(sqlString)) ?? "-1");
|
||||
|
||||
string apiUrl = Path.Combine(baseApiUrl, "obix/config/Services/AlarmService/~alarmQuery/");
|
||||
|
||||
using (HttpClient client = new HttpClient())
|
||||
@ -65,7 +68,7 @@ namespace FrontendWebApi.ApiControllers
|
||||
client.DefaultRequestHeaders.Add("Authorization", "Basic " + encoded);
|
||||
// 建構 XML 數據
|
||||
string xmlData = @$"<obj href='obix:AlarmFilter'>
|
||||
<abstime name='start' val='{DateTime.Now.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fff")}+08:00' />
|
||||
<abstime name='start' val='{DateTime.Now.AddDays(moveDayNum).ToString("yyyy-MM-ddTHH:mm:ss.fff")}+08:00' />
|
||||
<abstime name='end' val='{DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fff")}+08:00'/>
|
||||
</obj>";
|
||||
HttpContent content = new StringContent(xmlData, Encoding.UTF8, "application/xml");
|
||||
|
@ -1,6 +1,7 @@
|
||||
using FrontendWebApi.Models;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using Repository.BackendRepository.Interface;
|
||||
using Repository.FrontendRepository.Interface;
|
||||
using System;
|
||||
@ -496,17 +497,45 @@ namespace FrontendWebApi.ApiControllers
|
||||
try
|
||||
{
|
||||
getDeviceGroup = await backendRepository.GetAllAsync<EmergencyDeviceGroup>($@"
|
||||
select dg.*,vd.system_key disater_name,b.full_name building_name,f.full_name floor_name,v2.system_key system_category_layer2,v3.system_key system_category_layer3
|
||||
from (
|
||||
SELECT *
|
||||
FROM device_group dg WHERE dg.device_disaster != 0) dg
|
||||
join (select * from variable v where v.system_type = 'disaster' and v.deleted = 0) vd on vd.system_value = dg.device_disaster
|
||||
join building b on b.building_tag = dg.device_building_tag
|
||||
join floor f on f.floor_guid = dg.device_floor_guid
|
||||
join (select * from variable v where v.system_type = 'device_system_category_layer2' and v.deleted = 0) v2 on v2.system_value = dg.device_system_category_layer2
|
||||
join (select * from variable v where v.system_type = 'device_system_category_layer3' and v.deleted = 0) v3 on v3.system_value = dg.device_system_category_layer3
|
||||
order by vd.system_priority,b.priority,f.priority,v2.system_priority,v3.system_priority");
|
||||
|
||||
SELECT
|
||||
dd.device_system_value 'device_disaster',
|
||||
d.device_building_tag,
|
||||
f.floor_guid 'device_floor_guid',
|
||||
d.device_area_tag 'device_area_tag',
|
||||
d.device_system_tag 'device_system_category_layer2',
|
||||
d.device_name_tag 'device_system_category_layer3',
|
||||
count(*) device_amount,
|
||||
vd.system_key 'disater_name',
|
||||
b.full_name 'building_name',
|
||||
f.full_name 'floor_name',
|
||||
v2.system_key 'system_category_layer2',
|
||||
v3.system_key 'system_category_layer3'
|
||||
FROM
|
||||
device_disaster dd
|
||||
JOIN ( SELECT * FROM variable WHERE system_type = 'disaster' ) vd ON dd.device_system_value = vd.system_value
|
||||
JOIN floor f ON f.full_name = dd.device_floor_tag
|
||||
AND f.building_tag = dd.device_building_tag
|
||||
JOIN device d ON d.device_number = dd.device_number
|
||||
JOIN building b ON b.building_tag = d.device_building_tag
|
||||
JOIN ( SELECT * FROM variable v WHERE v.system_type = 'device_system_category_layer2' AND v.deleted = 0 ) v2 ON v2.system_value = d.device_system_tag
|
||||
JOIN ( SELECT * FROM variable v WHERE v.system_type = 'device_system_category_layer3' AND v.deleted = 0 ) v3 ON v3.system_value = d.device_name_tag
|
||||
WHERE
|
||||
d.deleted = 0
|
||||
AND f.deleted = 0
|
||||
AND b.deleted = 0
|
||||
GROUP BY
|
||||
dd.device_system_value,
|
||||
d.device_building_tag,
|
||||
device_floor_guid,
|
||||
device_area_tag,
|
||||
device_system_category_layer2,
|
||||
device_system_category_layer3,
|
||||
d.device_name_tag,
|
||||
building_name,
|
||||
floor_name,
|
||||
disater_name,
|
||||
system_category_layer2,
|
||||
system_category_layer3");
|
||||
var dis = getDeviceGroup.GroupBy(a => a.device_disaster);
|
||||
//finalDeviceGroup.disaster = new List<KeyValue>();
|
||||
foreach (var diss in dis)
|
||||
@ -583,7 +612,7 @@ namespace FrontendWebApi.ApiControllers
|
||||
{
|
||||
apiResult.Code = "9999";
|
||||
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
||||
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
||||
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception);
|
||||
}
|
||||
|
||||
return Ok(apiResult);
|
||||
@ -629,5 +658,36 @@ namespace FrontendWebApi.ApiControllers
|
||||
}
|
||||
return Ok(apiResult);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 取得緊急應變取得Niagara Alarm時間範圍(起始移動天數,今日為0計算)
|
||||
/// </summary>
|
||||
/// <param name="account"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[Route("api/EmergencyDevice/GetNiagaraAlarmMoveDayStart")]
|
||||
public async Task<ActionResult<ApiResult<int>>> GetNiagaraAlarmMoveDayStart()
|
||||
{
|
||||
ApiResult<int> apiResult = new ApiResult<int>();
|
||||
|
||||
try
|
||||
{
|
||||
var sqlString = $@"SELECT system_value FROM variable WHERE system_type = 'emergencyConfig' AND system_key = 'getNiagaraAlarmMoveDayNumStart' AND deleted = 0";
|
||||
|
||||
int moveDayNum = int.Parse((await frontendRepository.GetOneAsync<string>(sqlString)) ?? "-1");
|
||||
|
||||
apiResult.Code = "0000";
|
||||
apiResult.Data = moveDayNum;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
apiResult.Code = "9999";
|
||||
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
||||
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception);
|
||||
return Ok(apiResult);
|
||||
}
|
||||
return Ok(apiResult);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1308,12 +1308,13 @@
|
||||
return;
|
||||
}
|
||||
|
||||
if (changeBuilding != "" && changeBuilding != SelectedFilter.building_tag) {
|
||||
alarmDeviceTable.clear().draw();
|
||||
}
|
||||
else {
|
||||
alarmDeviceTable.ajax.reload(null, false);
|
||||
}
|
||||
//if (changeBuilding != "" && changeBuilding != SelectedFilter.building_tag) {
|
||||
// alarmDeviceTable.clear().draw();
|
||||
//}
|
||||
//else {
|
||||
// alarmDeviceTable.ajax.reload(null, false);
|
||||
//}
|
||||
alarmDeviceTable.ajax.reload(null, false);
|
||||
changeBuilding = SelectedFilter.building_tag;
|
||||
}
|
||||
//#endregion
|
||||
|
@ -1251,12 +1251,13 @@
|
||||
return;
|
||||
}
|
||||
|
||||
if (changeBuilding != "" && changeBuilding != SelectedFilter.building_tag) {
|
||||
alarmDeviceTable.clear().draw();
|
||||
}
|
||||
else {
|
||||
alarmDeviceTable.ajax.reload(null, false);
|
||||
}
|
||||
//if (changeBuilding != "" && changeBuilding != SelectedFilter.building_tag) {
|
||||
// alarmDeviceTable.clear().draw();
|
||||
//}
|
||||
//else {
|
||||
// alarmDeviceTable.ajax.reload(null, false);
|
||||
//}
|
||||
alarmDeviceTable.ajax.reload(null, false);
|
||||
changeBuilding = SelectedFilter.building_tag;
|
||||
}
|
||||
//#endregion
|
||||
|
Loading…
Reference in New Issue
Block a user