using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.DataProtection.KeyManagement;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
|
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
|
using Quartz.Util;
|
using SqlSugar;
|
using System.ComponentModel;
|
using System.Reflection;
|
using WIDESEAWCS_Common;
|
using WIDESEAWCS_Core;
|
using WIDESEAWCS_Core.BaseController;
|
using WIDESEAWCS_Core.Enums;
|
using WIDESEAWCS_Core.Helper;
|
using WIDESEAWCS_DTO.BasicInfo;
|
using WIDESEAWCS_Model.Models;
|
using WIDESEAWCS_QuartzJob.Models;
|
using WIDESEAWCS_QuartzJob.Repository;
|
using WIDESEAWCS_QuartzJob.Service;
|
|
namespace WIDESEAWCS_Server.Controllers.BasicInfo
|
{
|
[Route("api/Router")]
|
[ApiController]
|
public class RouterController : ApiBaseController<IRouterService, Dt_Router>
|
{
|
private readonly IDeviceInfoRepository _deviceInfoRepository;
|
private readonly IDeviceProtocolRepository _deviceProtocolRepository;
|
public RouterController(IRouterService service, IDeviceInfoRepository deviceInfoRepository, IDeviceProtocolRepository deviceProtocolRepository) : base(service)
|
{
|
_deviceInfoRepository = deviceInfoRepository;
|
_deviceProtocolRepository = deviceProtocolRepository;
|
}
|
|
[HttpPost, Route("QueryRoutes"), AllowAnonymous]
|
public List<Dt_Router> QueryRoutes(string startPosi, string endPosi)
|
{
|
return Service.QueryNextRoutes(startPosi, endPosi);
|
}
|
|
[HttpPost, Route("QueryAllPositions"), AllowAnonymous]
|
public List<string> QueryAllPositions(string deviceCode)
|
{
|
return Service.QueryAllPositions(deviceCode);
|
}
|
|
[HttpPost, Route("GetAllWholeRouters"), AllowAnonymous]
|
public WebResponseContent GetAllWholeRouters()
|
{
|
WebResponseContent content = new();
|
try
|
{
|
List<dynamic> dynamics = Service.GetAllWholeRouters();
|
|
content = WebResponseContent.Instance.OK(data: dynamics);
|
}
|
catch (Exception ex)
|
{
|
content = WebResponseContent.Instance.Error(ex.Message);
|
}
|
return content; }
|
|
[HttpPost, Route("GetBaseRouterInfo"), AllowAnonymous]
|
public WebResponseContent GetBaseRouterInfo()
|
{
|
try
|
{
|
#region 获取路由类型
|
List<object> routerTypes = new List<object>();
|
Type routerType = typeof(RouterInOutType);
|
List<int> routerIndexs = Enum.GetValues(typeof(RouterInOutType)).Cast<int>().ToList();
|
int routerIndex = 0;
|
foreach (var item in routerIndexs)
|
{
|
FieldInfo? fieldInfo = routerType.GetField(((RouterInOutType)item).ToString());
|
DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
|
if (description != null)
|
{
|
routerTypes.Add(new { key = item.ToString(), value = description.Description });
|
}
|
else
|
{
|
routerTypes.Add(new { key = item.ToString(), value = item.ToString() });
|
}
|
routerIndex++;
|
}
|
#endregion
|
|
#region 获取设备编号
|
object deviceCodes = _deviceProtocolRepository.QueryData(x => true).GroupBy(x => x.DeviceChildCode).Select(x => new { key = x.Key, value = x.Key }).ToList();
|
|
object areaInfos = Enum.GetNames(typeof(AreaInfo)).Select(x => new { key = x, value = x }).ToList();
|
|
|
#endregion
|
|
return WebResponseContent.Instance.OK(data: new { routerTypes, deviceCodes, areaInfos });
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error(ex.Message);
|
}
|
|
}
|
|
[HttpPost, Route("AddRouters"), AllowAnonymous]
|
public WebResponseContent AddRouters([FromBody] List<RoutersAddDTO> routersAddDTOs, int routerType)
|
{
|
return Service.AddRouters(routersAddDTOs, routerType);
|
}
|
}
|
}
|