143 lines
5.8 KiB
C#
143 lines
5.8 KiB
C#
|
using FrontendWebApi.Models;
|
|||
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
using Microsoft.Extensions.Logging;
|
|||
|
using Repository.BackendRepository.Interface;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace FrontendWebApi.Controllers
|
|||
|
{
|
|||
|
public class EmergencyRecordController : MyBaseController<EmergencyRecordController>
|
|||
|
{
|
|||
|
private readonly IBackendRepository backendRepository;
|
|||
|
public EmergencyRecordController(IBackendRepository backendRepository)
|
|||
|
{
|
|||
|
this.backendRepository = backendRepository;
|
|||
|
}
|
|||
|
public IActionResult Index()
|
|||
|
{
|
|||
|
return View();
|
|||
|
}
|
|||
|
|
|||
|
[HttpPost]
|
|||
|
public async Task<ApiResult<List<KeyValue>>> DisasterList()
|
|||
|
{
|
|||
|
ApiResult<List<KeyValue>> apiResult = new ApiResult<List<KeyValue>>();
|
|||
|
List<KeyValue> Variable = new List<KeyValue>();
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
var sqlString = @$"select system_value as Value, system_key as Name from variable a where a.system_type = 'disaster' and a.deleted = 0";
|
|||
|
Variable = await backendRepository.GetAllAsync<KeyValue>(sqlString);
|
|||
|
|
|||
|
apiResult.Code = "0000";
|
|||
|
apiResult.Data = Variable;
|
|||
|
}
|
|||
|
catch (Exception exception)
|
|||
|
{
|
|||
|
apiResult.Code = "9999";
|
|||
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|||
|
}
|
|||
|
|
|||
|
return apiResult;
|
|||
|
}
|
|||
|
|
|||
|
[HttpPost]
|
|||
|
public async Task<ApiResult<List<KeyValue>>> BuildInfoList()
|
|||
|
{
|
|||
|
ApiResult<List<KeyValue>> apiResult = new ApiResult<List<KeyValue>>();
|
|||
|
List<KeyValue> KeyValue = new List<KeyValue>();
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
var sqlString = @$"select building_guid as Value, full_name as Name from building a where a.deleted = 0 and a.status = 0 ORDER BY A.priority ASC, A.created_at DESC";
|
|||
|
KeyValue = await backendRepository.GetAllAsync<KeyValue>(sqlString);
|
|||
|
|
|||
|
apiResult.Code = "0000";
|
|||
|
apiResult.Data = KeyValue;
|
|||
|
}
|
|||
|
catch (Exception exception)
|
|||
|
{
|
|||
|
apiResult.Code = "9999";
|
|||
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|||
|
}
|
|||
|
|
|||
|
return apiResult;
|
|||
|
}
|
|||
|
|
|||
|
[HttpPost]
|
|||
|
public async Task<ActionResult> EmergencyRecordTable(EmergencyRecordEventPost post)
|
|||
|
{
|
|||
|
List<EmergencyRecordEventTable> EmergencyRecordEvent = new List<EmergencyRecordEventTable>();
|
|||
|
ApiResult<List<EmergencyRecordEventTable>> apiResult = new ApiResult<List<EmergencyRecordEventTable>>();
|
|||
|
try
|
|||
|
{
|
|||
|
var sqlplus = "";
|
|||
|
if(post.selectaType != 2 )
|
|||
|
{
|
|||
|
sqlplus = $"and ee.type = '{post.selectaType}'";
|
|||
|
}
|
|||
|
if (post.dateranger != null)
|
|||
|
{
|
|||
|
var date = post.dateranger.Replace(" ", "").Split("-");
|
|||
|
sqlplus += $"and ee.created_at between '{date[0].Replace(" / ", " - ")} 00:00:00' and '{date[1].Replace(" / ", " - ")} 23:59:59'";
|
|||
|
}
|
|||
|
|
|||
|
EmergencyRecordEvent = await backendRepository.GetAllAsync<EmergencyRecordEventTable>($@"
|
|||
|
select d.device_number device_name,v.system_key disaster_name,ee.*,b.full_name building_name from emergency_event ee
|
|||
|
left join (select * from variable v where v.system_type = 'disaster') v on v.system_value = ee.disaster
|
|||
|
left join device d on d.device_guid = ee.device_guid
|
|||
|
left join building b on b.building_guid = ee.building_guid
|
|||
|
where ee.deleted = 0 and ee.building_guid = '{post.selectaBuild}' and ee.disaster = '{post.selectaDisaster}' {sqlplus}
|
|||
|
");
|
|||
|
apiResult.Code = "0000";
|
|||
|
apiResult.Data = EmergencyRecordEvent;
|
|||
|
}
|
|||
|
catch (Exception exception)
|
|||
|
{
|
|||
|
apiResult.Code = "9999";
|
|||
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】");
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|||
|
}
|
|||
|
var result = Json(new
|
|||
|
{
|
|||
|
data = apiResult
|
|||
|
});
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
[HttpPost]
|
|||
|
public async Task<ActionResult> EmergencyItemTable(string event_guid)
|
|||
|
{
|
|||
|
List<EmergencyRecordItem> EmergencyRecordEvent = new List<EmergencyRecordItem>();
|
|||
|
ApiResult<List<EmergencyRecordItem>> apiResult = new ApiResult<List<EmergencyRecordItem>>();
|
|||
|
try
|
|||
|
{
|
|||
|
EmergencyRecordEvent = await backendRepository.GetAllAsync<EmergencyRecordItem>($@"
|
|||
|
select * from emergency_item where event_guid = '{event_guid}' order by created_at desc
|
|||
|
");
|
|||
|
apiResult.Code = "0000";
|
|||
|
apiResult.Data = EmergencyRecordEvent;
|
|||
|
}
|
|||
|
catch (Exception exception)
|
|||
|
{
|
|||
|
apiResult.Code = "9999";
|
|||
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】");
|
|||
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|||
|
}
|
|||
|
var result = Json(new
|
|||
|
{
|
|||
|
data = apiResult
|
|||
|
});
|
|||
|
return result;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|