diff --git a/ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs b/ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs index e920474..58b7547 100644 --- a/ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs +++ b/ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs @@ -73,6 +73,20 @@ namespace ZR.Admin.WebApi.Controllers.Business return SUCCESS(response); } + + /// + /// 查询端口列表 + /// + /// + /// + [HttpGet("lists")] + [ActionPermissionFilter(Permission = "odfports:list")] + public IActionResult QueryOdfPorts([FromQuery] OdfPortsQuerysDto parm) + { + var response = _OdfPortsService.GetList(parm); + return SUCCESS(response); + } + /// /// 查询端口列表 /// @@ -86,8 +100,24 @@ namespace ZR.Admin.WebApi.Controllers.Business .Select(it => new OdfPortsMListDto() { Id = it.Id, Name = it.PortsName }).ToListAsync(); foreach (var item in list) { - var l = await _OdfPortsService.AsQueryable().Where(it => it.FrameId == item.Id).Select(it => new OdfPortsMDto() { Id = it.Id, Name = it.Name, Status = it.Status }).ToListAsync(); - item.odfPortsList = l; + var l = await _OdfPortsService.AsQueryable().Where(it => it.FrameId == item.Id) + + .Select(it => new OdfPortsMDtoc() + { + Id = it.Id, + Name = it.Name, + Status = it.Status, + PortNumber = it.PortNumber, + RowNumber = it.RowNumber + }).ToListAsync(); + List row = new List(); + l.GroupBy(it => it.RowNumber).ToList().ForEach(g => + { + var li = l.Where(it => it.RowNumber == g.Key).OrderBy(it => it.PortNumber).Select(it => new OdfPortsMDto { Id = it.Id, Name = it.Name, Status = it.Status }).ToList(); + + row.Add(new OdfPortsMDtot() { RowList = li, Name = (g.Key + 1).ToString() }); + }); + item.OdfPortsList = row; } return SUCCESS(list); } @@ -125,8 +155,8 @@ namespace ZR.Admin.WebApi.Controllers.Business return SUCCESS(new List()); } var predicate = Expressionable.Create(); - var list = _OdfPortsService.AsQueryable().Where(it => it.Name.Contains(key) || it.Remarks.Contains(key) || it.HistoryRemarks.Contains(key) || it.OpticalAttenuation.Contains(key)).ToPage(dto); - + var list = _OdfPortsService.AsQueryable().Where(it => it.Name.Contains(key) || it.Remarks.Contains(key) || it.HistoryRemarks.Contains(key) || it.OpticalAttenuation.Contains(key)).ToPage(dto); + return SUCCESS(list); } @@ -268,7 +298,24 @@ namespace ZR.Admin.WebApi.Controllers.Business var result = ExportExcelMini(list, "端口", "端口"); return ExportExcel(result.Item2, result.Item1); } + /// + /// 导出端口 + /// + /// + [Log(Title = "导出端口数据", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)] + [HttpGet("exports")] + [ActionPermissionFilter(Permission = "odfports:export")] + public IActionResult Export([FromQuery] OdfPortsQuerysDto parm) + { + var list = _OdfPortsService.ExportList(parm).Result; + if (list == null || list.Count <= 0) + { + return ToResponse(ResultCode.FAIL, "没有要导出的数据"); + } + var result = ExportExcelMini(list, "端口数据", "端口数据"); + return ExportExcel(result.Item2, result.Item1); + } /// /// 导入 /// diff --git a/ZR.Model/Business/Dto/OdfPortsDto.cs b/ZR.Model/Business/Dto/OdfPortsDto.cs index b56132d..5c6484f 100644 --- a/ZR.Model/Business/Dto/OdfPortsDto.cs +++ b/ZR.Model/Business/Dto/OdfPortsDto.cs @@ -1,6 +1,21 @@ namespace ZR.Model.Business.Dto { + + /// + /// 端口数据列表查询对象 + /// + public class OdfPortsQuerysDto : PagerInfo + { + public string RoomName { get; set; } + public string RackName { get; set; } + public string FrameName { get; set; } + public int? Status { get; set; } + public string Remarks { get; set; } + public string OpticalAttenuation { get; set; } + public string HistoryRemarks { get; set; } + } + /// /// 端口查询对象 /// @@ -56,7 +71,12 @@ namespace ZR.Model.Business.Dto public int Id { get; set; } public string Name { get; set; } - public List odfPortsList { get; set; } = new List(); + public List OdfPortsList { get; set; } = new List(); + } + public class OdfPortsMDtot + { + public string Name { get; set; } + public List RowList { get; set; } = new List(); } public class OdfPortsSearchDto : PagerInfo @@ -70,6 +90,11 @@ namespace ZR.Model.Business.Dto public string Name { get; set; } public int Status { get; set; } } + public class OdfPortsMDtoc : OdfPortsMDto + { + public int RowNumber { get; set; } + public int PortNumber { get; set; } + } /// /// 端口输入输出对象 /// @@ -158,9 +183,19 @@ namespace ZR.Model.Business.Dto public DateTime? UpdatedAt { get; set; } - + private string _statusLabel; [ExcelColumn(Name = "连接状态,0正常,1断开")] - public string StatusLabel { get; set; } + public string StatusLabel + { + get + { + return Status == 0 ? "断开" : "正常"; + } + set + { + this._statusLabel = value; + } + } /// /// 部门名称 diff --git a/ZR.Service/Business/IBusinessService/IOdfPortsService.cs b/ZR.Service/Business/IBusinessService/IOdfPortsService.cs index 41df880..80d53b1 100644 --- a/ZR.Service/Business/IBusinessService/IOdfPortsService.cs +++ b/ZR.Service/Business/IBusinessService/IOdfPortsService.cs @@ -9,7 +9,7 @@ namespace ZR.Service.Business.IBusinessService public interface IOdfPortsService : IBaseService { PagedInfo GetList(OdfPortsQueryDto parm); - + PagedInfo GetList(OdfPortsQuerysDto parm); OdfPorts GetInfo(int Id); @@ -19,5 +19,6 @@ namespace ZR.Service.Business.IBusinessService (string, object, object) ImportOdfPorts(List list); PagedInfo ExportList(OdfPortsQueryDto parm); + PagedInfo ExportList(OdfPortsQuerysDto parm); } } diff --git a/ZR.Service/Business/OdfPortsService.cs b/ZR.Service/Business/OdfPortsService.cs index ec56eb5..5cc5cde 100644 --- a/ZR.Service/Business/OdfPortsService.cs +++ b/ZR.Service/Business/OdfPortsService.cs @@ -18,7 +18,7 @@ namespace ZR.Service.Business /// /// /// - public PagedInfo GetList(OdfPortsQueryDto parm) + public PagedInfo GetList(OdfPortsQuerysDto parm) { var predicate = QueryExp(parm); @@ -35,6 +35,24 @@ namespace ZR.Service.Business return response; } + /// + /// 查询端口列表 + /// + /// + /// + public PagedInfo GetList(OdfPortsQueryDto parm) + { + var predicate = QueryExp(parm); + + var response = Queryable() + //.OrderBy("Id asc") + .Where(predicate.ToExpression()) + .OrderBy("RoomId asc,RackId asc,FrameId asc,RowNumber asc,PortNumber Asc") + .ToPage(parm); + + return response; + } + /// /// 获取详情 @@ -133,6 +151,46 @@ namespace ZR.Service.Business return response; } + /// + /// 导出端口 + /// + /// + /// + public PagedInfo ExportList(OdfPortsQuerysDto parm) + { + parm.PageNum = 1; + parm.PageSize = 100000; + var predicate = QueryExp(parm); + + var response = Queryable() + .Where(predicate.ToExpression()) + .OrderBy("RoomId asc,RackId asc,FrameId asc,Name asc") + .Select((it) => new OdfPortsDto() + { + }, true) + .ToPage(parm); + + return response; + } + /// + /// 查询导出表达式 + /// + /// + /// + private static Expressionable QueryExp(OdfPortsQuerysDto parm) + { + var predicate = Expressionable.Create(); + + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.RoomName), it => it.RoomName.Contains(parm.RoomName)); + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.RackName), it => it.RackName.Contains(parm.RackName)); + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.FrameName), it => it.FrameName.Contains(parm.FrameName)); + predicate = predicate.AndIF(parm.Status != null, it => it.Status == parm.Status); + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Remarks), it => it.Remarks.Contains(parm.Remarks)); + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.OpticalAttenuation), it => it.OpticalAttenuation.Contains(parm.OpticalAttenuation)); + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.HistoryRemarks), it => it.HistoryRemarks.Contains(parm.HistoryRemarks)); + return predicate; + } + /// /// 查询导出表达式 /// diff --git a/ZR.Tasks/TaskScheduler/JobBase.cs b/ZR.Tasks/TaskScheduler/JobBase.cs index 01fd43f..d19abb3 100644 --- a/ZR.Tasks/TaskScheduler/JobBase.cs +++ b/ZR.Tasks/TaskScheduler/JobBase.cs @@ -29,7 +29,7 @@ namespace ZR.Tasks string logMsg; try { - //var s = context.Trigger.Key.Name; + //var s = context.Trigger.Name.Name; //记录Job时间 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); @@ -74,7 +74,7 @@ namespace ZR.Tasks string logMsg; try { - //var s = context.Trigger.Key.Name; + //var s = context.Trigger.Name.Name; //记录Job时间 Stopwatch stopwatch = new Stopwatch(); stopwatch.Start();