321
This commit is contained in:
parent
cedfeefd26
commit
6e60d634ac
|
|
@ -0,0 +1,55 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
|
||||
//创建时间:2025-09-21
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志
|
||||
/// </summary>
|
||||
[Route("business/OdfPortFault")]
|
||||
public class OdfPortFaultController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志接口
|
||||
/// </summary>
|
||||
private readonly IOdfPortFaultService _OdfPortFaultService;
|
||||
|
||||
public OdfPortFaultController(IOdfPortFaultService OdfPortFaultService)
|
||||
{
|
||||
_OdfPortFaultService = OdfPortFaultService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询错误日志列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "odfportfault:list")]
|
||||
public IActionResult QueryOdfPortFault([FromQuery] OdfPortFaultQueryDto parm)
|
||||
{
|
||||
var response = _OdfPortFaultService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询错误日志详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfportfault:query")]
|
||||
public IActionResult GetOdfPortFault(int Id)
|
||||
{
|
||||
var response = _OdfPortFaultService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfPortFaultDto>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -12,6 +12,7 @@ using ZR.Repository;
|
|||
using Aliyun.OSS;
|
||||
using System.Linq;
|
||||
using ZR.Model.System.Dto;
|
||||
using Microsoft.AspNetCore.Connections.Features;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
|
|
@ -51,13 +52,19 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
/// </summary>
|
||||
private readonly IOdfFramesService _OdfFramesService;
|
||||
|
||||
/// <summary>
|
||||
/// 故障
|
||||
/// </summary>
|
||||
private readonly IOdfPortFaultService _OdfPortFaultService;
|
||||
|
||||
|
||||
public OdfPortsController(IOdfRoomsService OdfRoomsService,
|
||||
ISysDeptService sysDeptService,
|
||||
ISysUserService sysUserService,
|
||||
IOdfPortsService odfPortsService,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfRacksService odfRacksService
|
||||
IOdfRacksService odfRacksService,
|
||||
IOdfPortFaultService odfPortFaultService
|
||||
|
||||
)
|
||||
{
|
||||
|
|
@ -67,7 +74,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
_OdfFramesService = odfFramesService;
|
||||
_OdfRacksService = odfRacksService;
|
||||
_SysDeptService = sysDeptService;
|
||||
|
||||
_OdfPortFaultService = odfPortFaultService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -118,12 +125,37 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
Name = it.Name,
|
||||
Status = it.Status,
|
||||
PortNumber = it.PortNumber,
|
||||
RowNumber = it.RowNumber
|
||||
RowNumber = it.RowNumber,
|
||||
Tips = it.Remarks,
|
||||
OpticalAttenuation = it.OpticalAttenuation
|
||||
}).ToListAsync();
|
||||
List<OdfPortsMDtot> row = new List<OdfPortsMDtot>();
|
||||
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();
|
||||
var li = l.Where(it => it.RowNumber == g.Key).OrderBy(it => it.PortNumber).Select(it =>
|
||||
{
|
||||
var tips = "";
|
||||
if (it.Status == 1)
|
||||
{
|
||||
tips = it.OpticalAttenuation;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(it.Tips))
|
||||
{
|
||||
var t = it.Tips.Split(" ");
|
||||
if (t.Length > 0 && t.Length > 2 && t[2].Length > 0)
|
||||
{
|
||||
tips = t[2].Substring(0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
tips = it.Tips.Substring(0, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new OdfPortsMDto { Id = it.Id, Name = it.Name, Status = it.Status, Tips = tips };
|
||||
}).ToList();
|
||||
|
||||
row.Add(new OdfPortsMDtot() { RowList = li, Name = (g.Key + 1).ToString() });
|
||||
});
|
||||
|
|
@ -141,11 +173,29 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfports:query")]
|
||||
public IActionResult GetOdfPorts(int Id)
|
||||
public async Task<IActionResult> GetOdfPorts(int Id)
|
||||
{
|
||||
var response = _OdfPortsService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfPortsDto>();
|
||||
info.HistoryFault = new List<OdfPortsHistoryDto>();
|
||||
if (info != null)
|
||||
{
|
||||
var faults = await _OdfPortFaultService.GetListAsync(it => it.PortId == info.Id);
|
||||
if (faults != null && faults.Count > 0)
|
||||
{
|
||||
|
||||
foreach (var item in faults)
|
||||
{
|
||||
info.HistoryFault.Add(new OdfPortsHistoryDto()
|
||||
{
|
||||
FaultReason = item.FaultReason,
|
||||
FaultTime = item.FaultTime ?? DateTime.Now,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
|
|
@ -245,7 +295,6 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
public IActionResult GetOdfTest()
|
||||
{
|
||||
|
||||
return SUCCESS(new { update = true });
|
||||
}
|
||||
|
||||
|
|
@ -259,7 +308,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
public IActionResult AddOdfPorts([FromBody] OdfPortsDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfPorts>().ToCreate(HttpContext);
|
||||
modal.CreatedAt= DateTime.Now;
|
||||
modal.CreatedAt = DateTime.Now;
|
||||
modal.UpdatedAt = DateTime.Now;
|
||||
var response = _OdfPortsService.AddOdfPorts(modal);
|
||||
|
||||
|
|
@ -289,7 +338,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[HttpPost("save")]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
[Log(Title = "APP修改端口", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult SaveMOdfPorts([FromBody] OdfPortsMMDto parm)
|
||||
public async Task<IActionResult> SaveMOdfPorts([FromBody] OdfPortsMMDto parm)
|
||||
{
|
||||
var port = _OdfPortsService.GetById(parm.Id);
|
||||
if (port == null)
|
||||
|
|
@ -302,13 +351,32 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
port.OpticalAttenuation = parm.OpticalAttenuation;
|
||||
port.UpdatedAt = DateTime.Now;
|
||||
port.OpticalCableOffRemarks = parm.OpticalCableOffRemarks;
|
||||
|
||||
if (port.Status == 0)
|
||||
{
|
||||
port.Remarks = "";
|
||||
}
|
||||
|
||||
var response = _OdfPortsService.UpdateOdfPorts(port);
|
||||
|
||||
var count = await _OdfPortFaultService.CountAsync(it => it.PortId == port.Id);
|
||||
if (count > 0)
|
||||
{
|
||||
await _OdfPortFaultService.DeleteAsync(it => it.PortId == port.Id);
|
||||
}
|
||||
if (parm.HistoryFault != null && parm.HistoryFault.Count > 0)
|
||||
{
|
||||
foreach (var item in parm.HistoryFault)
|
||||
{
|
||||
var o = new OdfPortFault()
|
||||
{
|
||||
CreateTime = DateTime.Now,
|
||||
FaultReason = item.FaultReason,
|
||||
FaultTime = item.FaultTime,
|
||||
PortId = port.Id,
|
||||
};
|
||||
await _OdfPortFaultService.InsertAsync(o);
|
||||
}
|
||||
}
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
|
|
|
|||
33
ZR.Model/Business/Dto/OdfPortFaultDto.cs
Normal file
33
ZR.Model/Business/Dto/OdfPortFaultDto.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
|
||||
namespace ZR.Model.Business.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志查询对象
|
||||
/// </summary>
|
||||
public class OdfPortFaultQueryDto : PagerInfo
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 错误日志输入输出对象
|
||||
/// </summary>
|
||||
public class OdfPortFaultDto
|
||||
{
|
||||
[Required(ErrorMessage = "主键ID不能为空")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "对应的端口ID不能为空")]
|
||||
public int PortId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "历史故障发生时间不能为空")]
|
||||
public DateTime? FaultTime { get; set; }
|
||||
|
||||
public string FaultReason { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "创建时间不能为空")]
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -92,6 +92,10 @@ namespace ZR.Model.Business.Dto
|
|||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int Status { get; set; }
|
||||
|
||||
public string Tips { get; set; }
|
||||
|
||||
public string OpticalAttenuation { get; set; }
|
||||
}
|
||||
public class OdfPortsMDtoc : OdfPortsMDto
|
||||
{
|
||||
|
|
@ -181,6 +185,10 @@ namespace ZR.Model.Business.Dto
|
|||
[ExcelColumnName("历史故障表")]
|
||||
public string HistoryRemarks { get; set; }
|
||||
|
||||
|
||||
|
||||
public List<OdfPortsHistoryDto> HistoryFault { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "创建时间不能为空")]
|
||||
[ExcelColumn(Name = "创建时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("创建时间")]
|
||||
|
|
@ -212,6 +220,8 @@ namespace ZR.Model.Business.Dto
|
|||
[ExcelColumn(Name = "部门名称")]
|
||||
public string DeptName { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -381,6 +391,9 @@ namespace ZR.Model.Business.Dto
|
|||
public int Status { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remarks { get; set; }
|
||||
|
||||
public string OpticalAttenuation { get; set; }
|
||||
|
|
@ -392,7 +405,26 @@ namespace ZR.Model.Business.Dto
|
|||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public List<OdfPortsHistoryDto> HistoryFault { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 光缆段信息
|
||||
/// </summary>
|
||||
public string OpticalCableOffRemarks { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class OdfPortsHistoryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误时间
|
||||
/// </summary>
|
||||
public DateTime FaultTime { get; set; }
|
||||
/// <summary>
|
||||
/// 故障原因
|
||||
/// </summary>
|
||||
public string FaultReason { get; set; }
|
||||
}
|
||||
}
|
||||
41
ZR.Model/Business/OdfPortFault.cs
Normal file
41
ZR.Model/Business/OdfPortFault.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志
|
||||
/// </summary>
|
||||
[SugarTable("odf_port_fault")]
|
||||
public class OdfPortFault
|
||||
{
|
||||
/// <summary>
|
||||
/// 主键ID
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 对应的端口ID
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "port_id")]
|
||||
public int PortId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 历史故障发生时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "fault_time")]
|
||||
public DateTime? FaultTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 历史故障发生原因
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "fault_reason")]
|
||||
public string FaultReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "create_time")]
|
||||
public DateTime? CreateTime { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
20
ZR.Service/Business/IBusinessService/IOdfPortFaultService.cs
Normal file
20
ZR.Service/Business/IBusinessService/IOdfPortFaultService.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
|
||||
namespace ZR.Service.Business.IBusinessService
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志service接口
|
||||
/// </summary>
|
||||
public interface IOdfPortFaultService : IBaseService<OdfPortFault>
|
||||
{
|
||||
PagedInfo<OdfPortFaultDto> GetList(OdfPortFaultQueryDto parm);
|
||||
|
||||
OdfPortFault GetInfo(int Id);
|
||||
|
||||
|
||||
OdfPortFault AddOdfPortFault(OdfPortFault parm);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
70
ZR.Service/Business/OdfPortFaultService.cs
Normal file
70
ZR.Service/Business/OdfPortFaultService.cs
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Extensions;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Repository;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
|
||||
namespace ZR.Service.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误日志Service业务层处理
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IOdfPortFaultService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OdfPortFaultService : BaseService<OdfPortFault>, IOdfPortFaultService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询错误日志列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfPortFaultDto> GetList(OdfPortFaultQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
//.OrderBy("Id asc")
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<OdfPortFault, OdfPortFaultDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public OdfPortFault GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加错误日志
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public OdfPortFault AddOdfPortFault(OdfPortFault model)
|
||||
{
|
||||
return Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfPortFault> QueryExp(OdfPortFaultQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfPortFault>();
|
||||
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user