[前台API] 增加 GetDeviceListBySystem API 專門給告警紀錄作業用的 api ,透過多筆大類與棟別取得設備列表

This commit is contained in:
dev01 2023-09-23 18:14:35 +08:00
parent e234159e87
commit 9a3b098ee0
3 changed files with 49 additions and 1 deletions

View File

@ -51,7 +51,8 @@ namespace FrontendWebApi.ApiControllers
b.full_name AS building_name, b.full_name AS building_name,
v1.system_value, v1.system_value,
v1.system_key v1.system_key
FROM building_menu bm FROM
(SELECT * FROM building_menu ORDER BY priority) bm
INNER JOIN ( INNER JOIN (
SELECT SELECT
ap.building_tag, ap.ShowView ap.building_tag, ap.ShowView

View File

@ -375,6 +375,45 @@ namespace FrontendWebApi.ApiControllers
return Ok(apiResult); return Ok(apiResult);
} }
[HttpPost]
[Route("api/Device/GetDeviceListBySystem")]
public async Task<ActionResult<ApiResult<List<DeviceFullList>>>> GetDeviceListBySystem(FindDevice fd)
{
ApiResult<List<DeviceFullList>> apiResult = new ApiResult<List<DeviceFullList>>();
try
{
List<string> queryCollection = new List<string>();
if (!string.IsNullOrEmpty(fd.building_tag)) {
queryCollection.Add("device_building_tag = @building_tag");
}
if (fd.main_system_tags != null && fd.main_system_tags.Count() > 0)
{
queryCollection.Add("device_system_tag IN @system_tags");
}
queryCollection.Add("deleted = 0");
string query = string.Join(" AND ", queryCollection);
string sql = $@"SELECT *
FROM device
Where {query}";
var device = await backendRepository.GetAllAsync<DeviceFullList>(sql,
new { building_tag = fd.building_tag , system_tags = fd.main_system_tags });
apiResult.Data = device;
apiResult.Code = "0000";
}
catch (Exception exception)
{
apiResult.Code = "9999";
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
return Ok(apiResult);
}
return Ok(apiResult);
}
/// <summary> /// <summary>
/// 獲取設備資料 /// 獲取設備資料
/// </summary> /// </summary>

View File

@ -12,6 +12,8 @@ namespace FrontendWebApi.Models
public string floor_tag { get; set; } public string floor_tag { get; set; }
public string device_guid { get; set; } public string device_guid { get; set; }
public string device_number { get; set; } public string device_number { get; set; }
public List<string> main_system_tags { get; set; } = new List<string>();
} }
public class BuildList public class BuildList
@ -194,5 +196,11 @@ namespace FrontendWebApi.Models
} }
public class DeviceFullList : DeviceBaseList
{
public string device_building_tag { get; set; }
public string device_system_tag { get; set; }
public string device_name_tag { get; set; }
}
} }