ibms-dome/Backend/Controllers/EmergencyRecordController.cs

95 lines
3.9 KiB
C#
Raw Permalink Normal View History

2022-10-14 16:08:54 +08:00
using Backend.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 Backend.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<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;
}
}
}