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 { 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 QueryRoutes(string startPosi, string endPosi) { return Service.QueryNextRoutes(startPosi, endPosi); } [HttpPost, Route("QueryAllPositions"), AllowAnonymous] public List QueryAllPositions(string deviceCode) { return Service.QueryAllPositions(deviceCode); } [HttpPost, Route("GetAllWholeRouters"), AllowAnonymous] public WebResponseContent GetAllWholeRouters() { WebResponseContent content = new(); try { List 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 routerTypes = new List(); // Type routerType = typeof(RouterInOutType); // List routerIndexs = Enum.GetValues(typeof(RouterInOutType)).Cast().ToList(); // int routerIndex = 0; // foreach (var item in routerIndexs) // { // FieldInfo? fieldInfo = routerType.GetField(((RouterInOutType)item).ToString()); // DescriptionAttribute? description = fieldInfo.GetCustomAttribute(); // 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 routersAddDTOs, int routerType) { return Service.AddRouters(routersAddDTOs, routerType); } } }