提交代码
This commit is contained in:
parent
d42c44c87b
commit
6941b6c1f8
178
ZR.Admin.WebApi/Controllers/Business/OdfFramesController.cs
Normal file
178
ZR.Admin.WebApi/Controllers/Business/OdfFramesController.cs
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
using ZR.Service.Business;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 框-信息
|
||||
/// </summary>
|
||||
[Route("business/OdfFrames")]
|
||||
public class OdfFramesController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 框-信息接口
|
||||
/// </summary>
|
||||
private readonly IOdfFramesService _OdfFramesService;
|
||||
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
private readonly IOdfPortsService _OdfPortsService;
|
||||
/// <summary>
|
||||
/// 机架列表接口
|
||||
/// </summary>
|
||||
private readonly IOdfRacksService _OdfRacksService;
|
||||
private readonly IOdfRoomsService _odfRooms;
|
||||
|
||||
public OdfFramesController(IOdfRacksService OdfRacksService, IOdfRoomsService odfRooms,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfPortsService odfPortsService)
|
||||
{
|
||||
_OdfRacksService = OdfRacksService;
|
||||
_odfRooms = odfRooms;
|
||||
_OdfFramesService = odfFramesService;
|
||||
_OdfPortsService = odfPortsService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询框-信息列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "odfframes:list")]
|
||||
public IActionResult QueryOdfFrames([FromQuery] OdfFramesQueryDto parm)
|
||||
{
|
||||
var response = _OdfFramesService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询框-信息详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfframes:query")]
|
||||
public IActionResult GetOdfFrames(int Id)
|
||||
{
|
||||
var response = _OdfFramesService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfFramesDto>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加框-信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "odfframes:add")]
|
||||
[Log(Title = "框-信息", BusinessType = BusinessType.INSERT)]
|
||||
public async Task<IActionResult> AddOdfFrames([FromBody] OdfFramesExpertDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfFrames>().ToCreate(HttpContext);
|
||||
var rooms = _odfRooms.GetById(parm.RoomId);
|
||||
if (rooms == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "机房不存在");
|
||||
}
|
||||
modal.DeptId = rooms.DeptId ?? 0;
|
||||
modal.RackId = parm.RackId;
|
||||
modal.PortsRow = parm.RowCount;
|
||||
modal.PortsCol = parm.PortsCount;
|
||||
modal.PortsCount = parm.RowCount * parm.PortsCount;
|
||||
modal.UpdateAt = DateTime.Now;
|
||||
modal.CreatedAt = DateTime.Now;
|
||||
var response = _OdfFramesService.AddOdfFrames(modal);
|
||||
var roomId = rooms.Id;
|
||||
var roomName = rooms.RoomName;
|
||||
|
||||
var ra = _OdfRacksService.GetById(modal.RackId);
|
||||
//添加机框结束
|
||||
if (parm.RowCount > 0)
|
||||
{
|
||||
//添加行
|
||||
if (parm.PortsCount > 0)
|
||||
{
|
||||
int index = 0;
|
||||
//添加端口
|
||||
|
||||
var frame = response;
|
||||
List<OdfPorts> ports = new List<OdfPorts>();
|
||||
for (int row = 0; row < parm.RowCount; row++)
|
||||
{
|
||||
for (int port = 0; port < parm.PortsCount; port++)
|
||||
{
|
||||
ports.Add(new OdfPorts()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
DeptId = rooms.DeptId ?? 0,
|
||||
DeptName = rooms.DeptName,
|
||||
RackId = frame.RackId,
|
||||
RackName = ra.RackName,
|
||||
RoomId = roomId,
|
||||
RoomName = roomName,
|
||||
FrameId = frame.Id,
|
||||
FrameName = frame.PortsName,
|
||||
Name = $"{(row + 1)}-{(port + 1)}",
|
||||
RowNumber = row,
|
||||
PortNumber = port,
|
||||
OpticalAttenuation = "",
|
||||
HistoryRemarks = "",
|
||||
Remarks = "",
|
||||
Status = parm.DefaultStatus,
|
||||
UpdatedAt = DateTime.Now,
|
||||
});
|
||||
}
|
||||
}
|
||||
await _OdfPortsService.AsInsertable(ports).ExecuteReturnEntityAsync(true);
|
||||
//如果超过100个机框,则休眠一下,防止服务器死机
|
||||
index++;
|
||||
if (index > 100)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新框-信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfframes:edit")]
|
||||
[Log(Title = "框-信息", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateOdfFrames([FromBody] OdfFramesDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfFrames>().ToUpdate(HttpContext);
|
||||
var response = _OdfFramesService.UpdateOdfFrames(modal);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除框-信息
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("delete/{ids}")]
|
||||
[ActionPermissionFilter(Permission = "odfframes:delete")]
|
||||
[Log(Title = "框-信息", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteOdfFrames([FromRoute] string ids)
|
||||
{
|
||||
var idArr = Tools.SplitAndConvert<int>(ids);
|
||||
|
||||
return ToResponse(_OdfFramesService.Delete(idArr, "删除框-信息"));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
340
ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs
Normal file
340
ZR.Admin.WebApi/Controllers/Business/OdfPortsController.cs
Normal file
|
|
@ -0,0 +1,340 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
using MiniExcelLibs;
|
||||
using ZR.Service.Business;
|
||||
using System.Collections.Generic;
|
||||
using SqlSugar;
|
||||
using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaBusinessGetLiveInfoResponse.Types;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
[Route("business/OdfPorts")]
|
||||
public class OdfPortsController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 端口接口
|
||||
/// </summary>
|
||||
private readonly IOdfPortsService _OdfPortsService;
|
||||
/// <summary>
|
||||
/// 机房列表接口
|
||||
/// </summary>
|
||||
private readonly IOdfRoomsService _OdfRoomsService;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private readonly ISysUserService _SysUserService;
|
||||
|
||||
/// <summary>
|
||||
///机架
|
||||
/// </summary>
|
||||
private readonly IOdfRacksService _OdfRacksService;
|
||||
/// <summary>
|
||||
/// 框
|
||||
/// </summary>
|
||||
private readonly IOdfFramesService _OdfFramesService;
|
||||
|
||||
|
||||
public OdfPortsController(IOdfRoomsService OdfRoomsService,
|
||||
ISysDeptService sysDeptService,
|
||||
ISysUserService sysUserService,
|
||||
IOdfPortsService odfPortsService,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfRacksService odfRacksService)
|
||||
{
|
||||
_OdfRoomsService = OdfRoomsService;
|
||||
_SysUserService = sysUserService;
|
||||
_OdfPortsService = odfPortsService;
|
||||
_OdfFramesService = odfFramesService;
|
||||
_OdfRacksService = odfRacksService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询端口列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "odfports:list")]
|
||||
public IActionResult QueryOdfPorts([FromQuery] OdfPortsQueryDto parm)
|
||||
{
|
||||
var response = _OdfPortsService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询端口列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("mlist")]
|
||||
[ActionPermissionFilter(Permission = "odfports:list")]
|
||||
public async Task<IActionResult> GetQueryOdfPorts([FromQuery] OdfPortsMQueryDto parm)
|
||||
{
|
||||
var list = await _OdfFramesService.AsQueryable().Where(it => it.RackId == parm.RackId)
|
||||
.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;
|
||||
}
|
||||
return SUCCESS(list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询端口详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfports:query")]
|
||||
public IActionResult GetOdfPorts(int Id)
|
||||
{
|
||||
var response = _OdfPortsService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfPortsDto>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改端口
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("status/{Id}/{status}")]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
[Log(Title = "更新端口状态", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult GetOdfPortsStatus(int Id, int status)
|
||||
{
|
||||
var response = _OdfPortsService.GetInfo(Id);
|
||||
response.Status = status;
|
||||
response.UpdatedAt = DateTime.Now;
|
||||
var s = _OdfPortsService.Update(response);
|
||||
return SUCCESS(s);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("odf")]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
public IActionResult GetOdfTest()
|
||||
{
|
||||
|
||||
return SUCCESS(new { update = true });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "odfports:add")]
|
||||
[Log(Title = "端口", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult AddOdfPorts([FromBody] OdfPortsDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfPorts>().ToCreate(HttpContext);
|
||||
|
||||
var response = _OdfPortsService.AddOdfPorts(modal);
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
[Log(Title = "端口", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateOdfPorts([FromBody] OdfPortsDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfPorts>().ToUpdate(HttpContext);
|
||||
var response = _OdfPortsService.UpdateOdfPorts(modal);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("save")]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
[Log(Title = "APP更新端口", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult SaveMOdfPorts([FromBody] OdfPortsMMDto parm)
|
||||
{
|
||||
var port = _OdfPortsService.GetById(parm.Id);
|
||||
if (port == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "保存失败");
|
||||
}
|
||||
port.Status = parm.Status;
|
||||
port.HistoryRemarks = parm.HistoryRemarks;
|
||||
port.Remarks = parm.Remarks;
|
||||
port.OpticalAttenuation = parm.OpticalAttenuation;
|
||||
var response = _OdfPortsService.UpdateOdfPorts(port);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 修改端口
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("empty/{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfports:edit")]
|
||||
[Log(Title = "清空数据", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult GetOdfPortsEmpty(int Id)
|
||||
{
|
||||
var response = _OdfPortsService.GetInfo(Id);
|
||||
response.Status = 0;
|
||||
response.Remarks = "";
|
||||
response.HistoryRemarks = "";
|
||||
response.OpticalAttenuation = "";
|
||||
response.UpdatedAt = DateTime.Now;
|
||||
var s = _OdfPortsService.Update(response);
|
||||
return SUCCESS(s);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("delete/{ids}")]
|
||||
[ActionPermissionFilter(Permission = "odfports:delete")]
|
||||
[Log(Title = "端口", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteOdfPorts([FromRoute] string ids)
|
||||
{
|
||||
var idArr = Tools.SplitAndConvert<int>(ids);
|
||||
|
||||
return ToResponse(_OdfPortsService.Delete(idArr, "删除端口"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[Log(Title = "导出端口数据", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[HttpGet("export")]
|
||||
[ActionPermissionFilter(Permission = "odfports:export")]
|
||||
|
||||
public IActionResult Export([FromQuery] OdfPortsQueryDto 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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入
|
||||
/// </summary>
|
||||
/// <param name="formFile"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("importData")]
|
||||
[Log(Title = "端口导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
|
||||
[ActionPermissionFilter(Permission = "odfports:import")]
|
||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
{
|
||||
List<OdfPortsDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
list = stream.Query<OdfPortsDto>(startCell: "A1").ToList();
|
||||
}
|
||||
|
||||
return SUCCESS(_OdfPortsService.ImportOdfPorts(list.Adapt<List<OdfPorts>>()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 端口导入模板下载
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("importTemplate")]
|
||||
[Log(Title = "端口模板", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[AllowAnonymous]
|
||||
public IActionResult ImportTemplateExcel()
|
||||
{
|
||||
var result = DownloadImportTemplate(new List<OdfPortsDto>() { }, "OdfPorts");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
/// <summary>
|
||||
/// 删除端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("deleteAll")]
|
||||
[ActionPermissionFilter(Permission = "odfports:delete")]
|
||||
[Log(Title = "删除端口数据", BusinessType = BusinessType.DELETE)]
|
||||
public async Task<IActionResult> DeleteAll([FromBody] OdfRoomsTreeDto treeDto)
|
||||
{
|
||||
if (treeDto.Level == 2)
|
||||
{
|
||||
//删除全部
|
||||
var room = _OdfRoomsService.GetById(treeDto.RoomId);
|
||||
if (room == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "删除失败");
|
||||
}
|
||||
//删除机房下的所有端口
|
||||
await _OdfPortsService.AsDeleteable().Where(it => it.RoomId == room.Id).ExecuteCommandAsync();
|
||||
// delete odf_frames where exists ( select id from odf_racks where roomid=1 and id=odf_frames.RackId )
|
||||
//删除机房下所有的框
|
||||
var deletedCount = await _OdfFramesService.AsDeleteable()
|
||||
.Where(f => SqlFunc.Subqueryable<OdfRacks>()
|
||||
.Where(r => r.RoomId == room.Id && r.Id == f.RackId)
|
||||
.Any())
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
//删除机房下所有的机架
|
||||
await _OdfRacksService.AsDeleteable().Where(it => it.RoomId == room.Id).ExecuteCommandAsync();
|
||||
|
||||
_OdfRoomsService.Delete(room.Id, "删除机房");
|
||||
}
|
||||
else if (treeDto.Level == 3)
|
||||
{
|
||||
var racks = _OdfRacksService.GetById(treeDto.RacksId);
|
||||
if (racks == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "删除失败");
|
||||
}
|
||||
//删除机房下的所有端口
|
||||
await _OdfPortsService.AsDeleteable().Where(it => it.RackId == racks.Id).ExecuteCommandAsync();
|
||||
//删除机房下所有的框
|
||||
var deletedCount = await _OdfFramesService.AsDeleteable().Where(it => it.RackId == racks.Id).ExecuteCommandAsync();
|
||||
//删除机架
|
||||
_OdfRacksService.Delete(racks);
|
||||
}
|
||||
else if (treeDto.Level == 4)
|
||||
{
|
||||
var frames = _OdfFramesService.GetById(treeDto.FramesId);
|
||||
if (frames == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "删除失败");
|
||||
}
|
||||
//删除机房下的所有端口
|
||||
await _OdfPortsService.AsDeleteable().Where(it => it.FrameId == frames.Id).ExecuteCommandAsync();
|
||||
_OdfFramesService.Delete(frames);
|
||||
}
|
||||
return SUCCESS(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
283
ZR.Admin.WebApi/Controllers/Business/OdfRacksController.cs
Normal file
283
ZR.Admin.WebApi/Controllers/Business/OdfRacksController.cs
Normal file
|
|
@ -0,0 +1,283 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
using MiniExcelLibs;
|
||||
using ZR.Service.Business;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 机架列表
|
||||
/// </summary>
|
||||
[Route("business/OdfRacks")]
|
||||
public class OdfRacksController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 机架列表接口
|
||||
/// </summary>
|
||||
private readonly IOdfRacksService _OdfRacksService;
|
||||
private readonly IOdfRoomsService _odfRooms;
|
||||
/// <summary>
|
||||
/// 框
|
||||
/// </summary>
|
||||
private readonly IOdfFramesService _OdfFramesService;
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
private readonly IOdfPortsService _OdfPortsService;
|
||||
|
||||
public OdfRacksController(IOdfRacksService OdfRacksService, IOdfRoomsService odfRooms,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfPortsService odfPortsService)
|
||||
{
|
||||
_OdfRacksService = OdfRacksService;
|
||||
_odfRooms = odfRooms;
|
||||
_OdfFramesService = odfFramesService;
|
||||
_OdfPortsService = odfPortsService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询机架列表列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "odfracks:list")]
|
||||
public IActionResult QueryOdfRacks([FromQuery] OdfRacksQueryDto parm)
|
||||
{
|
||||
var response = _OdfRacksService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询机架列表详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfracks:query")]
|
||||
public IActionResult GetOdfRacks(int Id)
|
||||
{
|
||||
var response = _OdfRacksService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfRacksDto>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "odfracks:add")]
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.INSERT)]
|
||||
public IActionResult AddOdfRacks([FromBody] OdfRacksDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfRacks>().ToCreate(HttpContext);
|
||||
if (modal.RoomId > 0)
|
||||
{
|
||||
var rooms = _odfRooms.GetById(modal.RoomId);
|
||||
if (rooms == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "机房不存在");
|
||||
}
|
||||
modal.DeptId = rooms.DeptId ?? 0;
|
||||
}
|
||||
var response = _OdfRacksService.AddOdfRacks(modal);
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("expert")]
|
||||
[ActionPermissionFilter(Permission = "odfracks:add")]
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.INSERT)]
|
||||
public async Task<IActionResult> AddOdfRacksExpert([FromBody] OdfRacksExpertDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfRacks>().ToCreate(HttpContext);
|
||||
|
||||
if (modal.RoomId == 0)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "机房不存在");
|
||||
|
||||
}
|
||||
var rooms = _odfRooms.GetById(modal.RoomId);
|
||||
if (rooms == null)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "机房不存在");
|
||||
}
|
||||
modal.DeptId = rooms.DeptId ?? 0;
|
||||
modal.FrameCount = parm.FramesCount;
|
||||
var response = _OdfRacksService.AddOdfRacks(modal);
|
||||
var roomId = rooms.Id;
|
||||
var roomName = rooms.RoomName;
|
||||
|
||||
if (parm.FramesCount > 0)
|
||||
{
|
||||
|
||||
//添加机框
|
||||
List<OdfFrames> framesList = new List<OdfFrames>();
|
||||
var rack = response;
|
||||
for (int i = 0; i < parm.FramesCount; i++)
|
||||
{
|
||||
var t = await _OdfFramesService.InsertReturnEntityAsync(new OdfFrames()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdateAt = DateTime.Now,
|
||||
PortsCol = parm.PortsCount,
|
||||
PortsCount = parm.PortsCount,
|
||||
DeptId = rack.DeptId,
|
||||
PortsRow = parm.PortsCount,
|
||||
PortsName = $"{(i + 1)}框",
|
||||
RackId = rack.Id,
|
||||
SequenceNumber = i + 1
|
||||
});
|
||||
framesList.Add(t);
|
||||
}
|
||||
//添加机框结束
|
||||
if (parm.RowCount > 0)
|
||||
{
|
||||
//添加行
|
||||
if (parm.PortsCount > 0)
|
||||
{
|
||||
int index = 0;
|
||||
//添加端口
|
||||
foreach (var frame in framesList)
|
||||
{
|
||||
var ra = rack;
|
||||
if (ra == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
List<OdfPorts> ports = new List<OdfPorts>();
|
||||
for (int row = 0; row < parm.RowCount; row++)
|
||||
{
|
||||
for (int port = 0; port < parm.PortsCount; port++)
|
||||
{
|
||||
ports.Add(new OdfPorts()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
DeptId = rooms.DeptId ?? 0,
|
||||
DeptName = rooms.DeptName,
|
||||
RackId = frame.RackId,
|
||||
RackName = ra.RackName,
|
||||
RoomId = roomId,
|
||||
RoomName = roomName,
|
||||
FrameId = frame.Id,
|
||||
FrameName = frame.PortsName,
|
||||
Name = $"{(row + 1)}-{(port + 1)}",
|
||||
RowNumber = row,
|
||||
PortNumber = port,
|
||||
OpticalAttenuation = "",
|
||||
HistoryRemarks = "",
|
||||
Remarks = "",
|
||||
Status = parm.DefaultStatus,
|
||||
UpdatedAt = DateTime.Now,
|
||||
});
|
||||
}
|
||||
}
|
||||
await _OdfPortsService.AsInsertable(ports).ExecuteReturnEntityAsync(true);
|
||||
//如果超过100个机框,则休眠一下,防止服务器死机
|
||||
index++;
|
||||
if (index > 100)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfracks:edit")]
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateOdfRacks([FromBody] OdfRacksDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfRacks>().ToUpdate(HttpContext);
|
||||
var response = _OdfRacksService.UpdateOdfRacks(modal);
|
||||
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("delete/{ids}")]
|
||||
[ActionPermissionFilter(Permission = "odfracks:delete")]
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteOdfRacks([FromRoute] string ids)
|
||||
{
|
||||
var idArr = Tools.SplitAndConvert<int>(ids);
|
||||
|
||||
return ToResponse(_OdfRacksService.Delete(idArr, "删除机架列表"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[HttpGet("export")]
|
||||
[ActionPermissionFilter(Permission = "odfracks:export")]
|
||||
public IActionResult Export([FromQuery] OdfRacksQueryDto parm)
|
||||
{
|
||||
var list = _OdfRacksService.ExportList(parm).Result;
|
||||
if (list == null || list.Count <= 0)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "没有要导出的数据");
|
||||
}
|
||||
var result = ExportExcelMini(list, "机架列表", "机架列表");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入
|
||||
/// </summary>
|
||||
/// <param name="formFile"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("importData")]
|
||||
[Log(Title = "机架列表导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
|
||||
[ActionPermissionFilter(Permission = "odfracks:import")]
|
||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
{
|
||||
List<OdfRacksDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
list = stream.Query<OdfRacksDto>(startCell: "A1").ToList();
|
||||
}
|
||||
|
||||
return SUCCESS(_OdfRacksService.ImportOdfRacks(list.Adapt<List<OdfRacks>>()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机架列表导入模板下载
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("importTemplate")]
|
||||
[Log(Title = "机架列表模板", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[AllowAnonymous]
|
||||
public IActionResult ImportTemplateExcel()
|
||||
{
|
||||
var result = DownloadImportTemplate(new List<OdfRacksDto>() { }, "OdfRacks");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
482
ZR.Admin.WebApi/Controllers/Business/OdfRoomsController.cs
Normal file
482
ZR.Admin.WebApi/Controllers/Business/OdfRoomsController.cs
Normal file
|
|
@ -0,0 +1,482 @@
|
|||
using Microsoft.AspNetCore.Mvc;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
using MiniExcelLibs;
|
||||
using ZR.ServiceCore.Services;
|
||||
using System.Threading.Tasks;
|
||||
using ZR.Service.Business;
|
||||
using SqlSugar;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表
|
||||
/// </summary>
|
||||
[Route("business/OdfRooms")]
|
||||
public class OdfRoomsController : BaseController
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表接口
|
||||
/// </summary>
|
||||
private readonly IOdfRoomsService _OdfRoomsService;
|
||||
|
||||
/// <summary>
|
||||
/// 部门接口
|
||||
/// </summary>
|
||||
private readonly ISysDeptService sysDeptService;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private readonly ISysUserService _SysUserService;
|
||||
|
||||
/// <summary>
|
||||
///机架
|
||||
/// </summary>
|
||||
private readonly IOdfRacksService _OdfRacksService;
|
||||
/// <summary>
|
||||
/// 框
|
||||
/// </summary>
|
||||
private readonly IOdfFramesService _OdfFramesService;
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
private readonly IOdfPortsService _OdfPortsService;
|
||||
|
||||
public OdfRoomsController(IOdfRoomsService OdfRoomsService,
|
||||
ISysDeptService sysDeptService,
|
||||
ISysUserService sysUserService,
|
||||
IOdfPortsService odfPortsService,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfRacksService odfRacksService)
|
||||
{
|
||||
_OdfRoomsService = OdfRoomsService;
|
||||
this.sysDeptService = sysDeptService;
|
||||
_SysUserService = sysUserService;
|
||||
_OdfPortsService = odfPortsService;
|
||||
_OdfFramesService = odfFramesService;
|
||||
_OdfRacksService = odfRacksService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询机房列表列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("list")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:list")]
|
||||
public IActionResult QueryOdfRooms([FromQuery] OdfRoomsQueryDto parm)
|
||||
{
|
||||
//long userId = HttpContext.GetUId();
|
||||
//var user = _SysUserService.SelectUserById(userId);
|
||||
////user.RoleIds
|
||||
//if (!user.IsAdmin && user.Roles.Any(it => it.DataScope == 4))
|
||||
//{
|
||||
// //user.DeptId;
|
||||
// //parm.DeptIds = user.DeptIds;
|
||||
//}
|
||||
//else if (!user.IsAdmin && user.Roles.Any(it => it.DataScope == 3))
|
||||
//{
|
||||
// parm.DeptIds = new List<long>() { user.DeptId };
|
||||
//}
|
||||
var response = _OdfRoomsService.GetList(parm);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询机房列表列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("tree")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:list")]
|
||||
public IActionResult GetTreeList([FromQuery] OdfRoomsTreeQueryDto parm)
|
||||
{
|
||||
List<OdfRoomsTreeDto> list = new List<OdfRoomsTreeDto>();
|
||||
if (parm.Level == 1)
|
||||
{
|
||||
var response = _OdfRoomsService.GetList(parm);
|
||||
response.ForEach(it =>
|
||||
{
|
||||
list.Add(new OdfRoomsTreeDto
|
||||
{
|
||||
Key = it.Id.ToString(),
|
||||
Id = it.Id.ToString(),
|
||||
Name = it.RoomName,
|
||||
DeptId = it.DeptId ?? 0,
|
||||
Level = 2,
|
||||
Leaf = false,
|
||||
RoomId = it.Id,
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (parm.Level == 2)
|
||||
{
|
||||
var response = _OdfRacksService.AsQueryable().Where(it => it.RoomId == parm.RoomId).OrderBy(it => it.SequenceNumber).ToList();
|
||||
response.ForEach(it =>
|
||||
{
|
||||
list.Add(new OdfRoomsTreeDto
|
||||
{
|
||||
Key = parm.RoomId + "_" + it.Id.ToString(),
|
||||
Id = parm.RoomId + "_" + it.Id.ToString(),
|
||||
Name = it.RackName,
|
||||
DeptId = it.DeptId,
|
||||
Level = 3,
|
||||
Leaf = false,
|
||||
RoomId = parm.RoomId,
|
||||
RacksId = it.Id,
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (parm.Level == 3)
|
||||
{
|
||||
var response = _OdfFramesService.AsQueryable().Where(it => it.RackId == parm.RacksId).OrderBy(it => it.SequenceNumber).ToList();
|
||||
response.ForEach(it =>
|
||||
{
|
||||
list.Add(new OdfRoomsTreeDto
|
||||
{
|
||||
Key = parm.RoomId + "_" + parm.RacksId + "_" + it.Id.ToString(),
|
||||
Id = parm.RoomId + "_" + parm.RacksId + "_" + it.Id.ToString(),
|
||||
Name = it.PortsName,
|
||||
DeptId = it.DeptId ?? 0,
|
||||
Level = 4,
|
||||
Leaf = true,
|
||||
RoomId = parm.RoomId,
|
||||
RacksId = parm.RacksId,
|
||||
FramesId = it.Id,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
return SUCCESS(list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询机房列表详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("{Id}")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:query")]
|
||||
public IActionResult GetOdfRooms(int Id)
|
||||
{
|
||||
var response = _OdfRoomsService.GetInfo(Id);
|
||||
|
||||
var info = response.Adapt<OdfRoomsDto>();
|
||||
return SUCCESS(info);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:add")]
|
||||
[Log(Title = "机房列表", BusinessType = BusinessType.INSERT)]
|
||||
public async Task<IActionResult> AddOdfRooms([FromBody] OdfRoomsDto parm)
|
||||
{
|
||||
parm.CreatedAt = DateTime.Now;
|
||||
parm.UpdatedAt = DateTime.Now;
|
||||
if (parm.DeptId == 0)
|
||||
{
|
||||
parm.DeptName = "未知部门";
|
||||
}
|
||||
else
|
||||
{
|
||||
var dept = await sysDeptService.AsQueryable().Where(it => it.DeptId == parm.DeptId).FirstAsync();
|
||||
if (dept == null)
|
||||
{
|
||||
return ToResponse(ResultCode.CUSTOM_ERROR, "部门不存在,请选择正确的部门!");
|
||||
}
|
||||
//var dept = _DeptService.GetInfo(parm.DeptId);
|
||||
parm.DeptName = dept.DeptName;
|
||||
}
|
||||
|
||||
var modal = parm.Adapt<OdfRooms>().ToCreate(HttpContext);
|
||||
var response = _OdfRoomsService.AddOdfRooms(modal);
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("expert")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:add")]
|
||||
[Log(Title = "机房列表", BusinessType = BusinessType.INSERT)]
|
||||
public async Task<IActionResult> AddExpertOdfRooms([FromBody] OdfRoomsExpertDto parm)
|
||||
{
|
||||
parm.CreatedAt = DateTime.Now;
|
||||
parm.UpdatedAt = DateTime.Now;
|
||||
if (parm.DeptId == 0)
|
||||
{
|
||||
parm.DeptName = "未知部门";
|
||||
}
|
||||
else
|
||||
{
|
||||
var dept = await sysDeptService.AsQueryable().Where(it => it.DeptId == parm.DeptId).FirstAsync();
|
||||
if (dept == null)
|
||||
{
|
||||
return ToResponse(ResultCode.CUSTOM_ERROR, "部门不存在,请选择正确的部门!");
|
||||
}
|
||||
//var dept = _DeptService.GetInfo(parm.DeptId);
|
||||
parm.DeptName = dept.DeptName;
|
||||
}
|
||||
|
||||
var modal = parm.Adapt<OdfRooms>().ToCreate(HttpContext);
|
||||
modal.DeptId = parm.DeptId;
|
||||
modal.DeptName = parm.DeptName;
|
||||
var response = _OdfRoomsService.AddOdfRooms(modal);
|
||||
if (parm.RacksCount > 0)
|
||||
{
|
||||
var roomId = response.Id;
|
||||
var roomName = response.RoomName;
|
||||
List<OdfRacks> racksList = new List<OdfRacks>();
|
||||
//添加机架
|
||||
for (int i = 0; i < parm.RacksCount; i++)
|
||||
{
|
||||
var t = await _OdfRacksService.InsertReturnEntityAsync(new OdfRacks
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
FrameCount = parm.FramesCount,
|
||||
DeptId = response.DeptId ?? 0,
|
||||
RackName = $"odf-{(i + 1)}",
|
||||
RoomId = roomId,
|
||||
SequenceNumber = i + 1,
|
||||
UpdatedAt = DateTime.Now,
|
||||
}); // 直接插入机架
|
||||
racksList.Add(t);
|
||||
|
||||
}
|
||||
|
||||
//机架添加完成
|
||||
//return Insertable(model).ExecuteReturnEntity();
|
||||
if (parm.FramesCount > 0)
|
||||
{
|
||||
|
||||
//添加机框
|
||||
List<OdfFrames> framesList = new List<OdfFrames>();
|
||||
|
||||
foreach (var rack in racksList)
|
||||
{
|
||||
for (int i = 0; i < parm.FramesCount; i++)
|
||||
{
|
||||
var t = await _OdfFramesService.InsertReturnEntityAsync(new OdfFrames()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdateAt = DateTime.Now,
|
||||
PortsCol = parm.PortsCount,
|
||||
PortsCount = parm.PortsCount,
|
||||
DeptId = rack.DeptId,
|
||||
PortsRow = parm.PortsCount,
|
||||
PortsName = $"{(i + 1)}框",
|
||||
RackId = rack.Id,
|
||||
SequenceNumber = i + 1
|
||||
});
|
||||
framesList.Add(t);
|
||||
}
|
||||
}
|
||||
|
||||
//添加机框结束
|
||||
if (parm.RowCount > 0)
|
||||
{
|
||||
//添加行
|
||||
if (parm.PortsCount > 0)
|
||||
{
|
||||
int index = 0;
|
||||
//添加端口
|
||||
foreach (var frame in framesList)
|
||||
{
|
||||
var ra = racksList.Find(it => it.Id == frame.RackId);
|
||||
if (ra == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
List<OdfPorts> ports = new List<OdfPorts>();
|
||||
for (int row = 0; row < parm.RowCount; row++)
|
||||
{
|
||||
for (int port = 0; port < parm.PortsCount; port++)
|
||||
{
|
||||
ports.Add(new OdfPorts()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
DeptId = frame.DeptId ?? 0,
|
||||
DeptName = modal.DeptName,
|
||||
RackId = frame.RackId,
|
||||
RackName = ra.RackName,
|
||||
RoomId = roomId,
|
||||
RoomName = roomName,
|
||||
FrameId = frame.Id,
|
||||
FrameName = frame.PortsName,
|
||||
Name = $"{(row + 1)}-{(port + 1)}",
|
||||
RowNumber = row,
|
||||
PortNumber = port,
|
||||
OpticalAttenuation = "",
|
||||
HistoryRemarks = "",
|
||||
Remarks = "",
|
||||
Status = parm.DefaultStatus,
|
||||
UpdatedAt = DateTime.Now,
|
||||
});
|
||||
}
|
||||
}
|
||||
await _OdfPortsService.AsInsertable(ports).ExecuteReturnEntityAsync(true);
|
||||
//如果超过100个机框,则休眠一下,防止服务器死机
|
||||
index++;
|
||||
if (index > 100)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:edit")]
|
||||
[Log(Title = "机房列表", BusinessType = BusinessType.UPDATE)]
|
||||
public async Task<IActionResult> UpdateOdfRooms([FromBody] OdfRoomsDto parm)
|
||||
{
|
||||
parm.UpdatedAt = DateTime.Now;
|
||||
if (parm.DeptId == 0)
|
||||
{
|
||||
parm.DeptName = "未知部门";
|
||||
}
|
||||
else
|
||||
{
|
||||
var dept = await sysDeptService.AsQueryable().Where(it => it.DeptId == parm.DeptId).FirstAsync();
|
||||
if (dept == null)
|
||||
{
|
||||
return ToResponse(ResultCode.CUSTOM_ERROR, "部门不存在,请选择正确的部门!");
|
||||
}
|
||||
//var dept = _DeptService.GetInfo(parm.DeptId);
|
||||
parm.DeptName = dept.DeptName;
|
||||
}
|
||||
var oldModel = _OdfRoomsService.GetById(parm.Id);
|
||||
var modal = parm.Adapt<OdfRooms>().ToUpdate(HttpContext);
|
||||
var response = _OdfRoomsService.UpdateOdfRooms(modal);
|
||||
if (response > 0)
|
||||
{
|
||||
if (oldModel.DeptId != modal.DeptId)
|
||||
{
|
||||
var deptId = modal.DeptId ?? 0;
|
||||
var deptName = modal.DeptName;
|
||||
var roomId = oldModel.Id;
|
||||
// 最直接的转换
|
||||
await _OdfPortsService.UpdateAsync(
|
||||
it => it.RoomId == roomId, // WHERE条件
|
||||
it => new OdfPorts // SET部分
|
||||
{
|
||||
DeptId = deptId,
|
||||
DeptName = deptName
|
||||
}
|
||||
);
|
||||
// 1. 更新 odf_racks
|
||||
var racksUpdated = await _OdfRacksService.UpdateAsync(
|
||||
r => r.RoomId == roomId,
|
||||
r => new OdfRacks { DeptId = deptId }
|
||||
);
|
||||
|
||||
// 2. 更新 odf_frames(方法1:子查询)
|
||||
var framesUpdated = await _OdfFramesService.UpdateAsync(
|
||||
f => SqlFunc.Subqueryable<OdfRacks>()
|
||||
.Where(r => r.RoomId == roomId && r.Id == f.RackId)
|
||||
.Any(),
|
||||
f => new OdfFrames { DeptId = deptId }
|
||||
);
|
||||
// update odf_frames f set DeptId=0 where RackId exists ( select id from odf_racks where roomid=1 and id=f.RackId )
|
||||
// update odf_racks set DeptId=0 where roomid=1
|
||||
//_OdfFramesService
|
||||
//_OdfRacksService
|
||||
}
|
||||
}
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("delete/{ids}")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:delete")]
|
||||
[Log(Title = "机房列表", BusinessType = BusinessType.DELETE)]
|
||||
public IActionResult DeleteOdfRooms([FromRoute] string ids)
|
||||
{
|
||||
var idArr = Tools.SplitAndConvert<int>(ids);
|
||||
|
||||
return ToResponse(_OdfRoomsService.Delete(idArr, "删除机房列表"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[Log(Title = "机房列表", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[HttpGet("export")]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:export")]
|
||||
public IActionResult Export([FromQuery] OdfRoomsQueryDto parm)
|
||||
{
|
||||
var list = _OdfRoomsService.ExportList(parm).Result;
|
||||
if (list == null || list.Count <= 0)
|
||||
{
|
||||
return ToResponse(ResultCode.FAIL, "没有要导出的数据");
|
||||
}
|
||||
var result = ExportExcelMini(list, "机房列表", "机房列表");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入
|
||||
/// </summary>
|
||||
/// <param name="formFile"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("importData")]
|
||||
[Log(Title = "机房列表导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:import")]
|
||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
{
|
||||
List<OdfRoomsDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
list = stream.Query<OdfRoomsDto>(startCell: "A1").ToList();
|
||||
}
|
||||
|
||||
return SUCCESS(_OdfRoomsService.ImportOdfRooms(list.Adapt<List<OdfRooms>>()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机房列表导入模板下载
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("importTemplate")]
|
||||
[Log(Title = "机房列表模板", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
|
||||
[AllowAnonymous]
|
||||
public IActionResult ImportTemplateExcel()
|
||||
{
|
||||
var result = DownloadImportTemplate(new List<OdfRoomsDto>() { }, "OdfRooms");
|
||||
return ExportExcel(result.Item2, result.Item1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
using Lazy.Captcha.Core;
|
||||
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
using ZR.Model.Models;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Dto;
|
||||
|
|
@ -67,8 +69,8 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||
|
||||
List<SysRole> roles = roleService.SelectUserRoleListByUserId(user.UserId);
|
||||
//权限集合 eg *:*:*,system:user:list
|
||||
List<string> permissions = permissionService.GetMenuPermission(new SysUserDto() { UserId = user.UserId});
|
||||
|
||||
List<string> permissions = permissionService.GetMenuPermission(new SysUserDto() { UserId = user.UserId });
|
||||
|
||||
TokenModel loginUser = new(user.Adapt<TokenModel>(), roles.Adapt<List<Roles>>())
|
||||
{
|
||||
TenantId = loginBody.TenantId,
|
||||
|
|
@ -78,6 +80,39 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||
return SUCCESS(JwtUtil.GenerateJwtToken(JwtUtil.AddClaims(loginUser)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录
|
||||
/// </summary>
|
||||
/// <param name="loginBody">登录对象</param>
|
||||
/// <returns></returns>
|
||||
[Route("appLogin")]
|
||||
[HttpPost]
|
||||
[Log(Title = "登录")]
|
||||
[AllowAnonymous]
|
||||
public IActionResult AppLogin([FromBody] LoginBodyDto loginBody)
|
||||
{
|
||||
if (loginBody == null) { throw new CustomException("请求参数错误"); }
|
||||
loginBody.LoginIP = HttpContextExtension.GetClientUserIp(HttpContext);
|
||||
|
||||
sysLoginService.CheckLockUser(loginBody.Username);
|
||||
string location = HttpContextExtension.GetIpInfo(loginBody.LoginIP);
|
||||
var user = sysLoginService.Login(loginBody, new SysLogininfor() { LoginLocation = location });
|
||||
|
||||
List<SysRole> roles = roleService.SelectUserRoleListByUserId(user.UserId);
|
||||
//权限集合 eg *:*:*,system:user:list
|
||||
List<string> permissions = permissionService.GetMenuPermission(new SysUserDto() { UserId = user.UserId });
|
||||
|
||||
TokenModel loginUser = new(user.Adapt<TokenModel>(), roles.Adapt<List<Roles>>())
|
||||
{
|
||||
TenantId = loginBody.TenantId,
|
||||
Permissions = permissions,
|
||||
};
|
||||
//CacheService.SetUserPerms(GlobalConstant.UserPermKEY + user.UserId, permissions);
|
||||
var jwt = JwtUtil.GenerateJwtToken(JwtUtil.AddClaims(loginUser));
|
||||
return SUCCESS(new { jwt, user.UserId, user.UserName });
|
||||
}
|
||||
//
|
||||
|
||||
/// <summary>
|
||||
/// 注销
|
||||
/// </summary>
|
||||
|
|
@ -103,7 +138,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||
{
|
||||
long userId = HttpContext.GetUId();
|
||||
var user = sysUserService.SelectUserById(userId);
|
||||
|
||||
|
||||
//前端校验按钮权限使用
|
||||
//角色集合 eg: admin,yunying,common
|
||||
List<string> roles = permissionService.GetRolePermission(user);
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@
|
|||
"Issuer": "ZRAdmin.NET", //即token的签发者。
|
||||
"Audience": "ZRAdmin.NET", //指该token是服务于哪个群体的(群体范围)
|
||||
"SecretKey": "SecretKey-ZRADMIN.NET-202311281883838",
|
||||
"Expire": 1440, //jwt登录过期时间(分)
|
||||
"RefreshTokenTime": 30, //分钟
|
||||
"Expire": 60, //jwt登录过期时间(分)
|
||||
"RefreshTokenTime": 7200, //分钟
|
||||
"TokenType": "Bearer"
|
||||
},
|
||||
"MainDb": "0", // 多租户主库配置ID
|
||||
|
|
|
|||
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/OdfRooms.xlsx
Normal file
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/OdfRooms.xlsx
Normal file
Binary file not shown.
61
ZR.Model/Business/Dto/OdfFramesDto.cs
Normal file
61
ZR.Model/Business/Dto/OdfFramesDto.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
|
||||
namespace ZR.Model.Business.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 框-信息查询对象
|
||||
/// </summary>
|
||||
public class OdfFramesQueryDto : PagerInfo
|
||||
{
|
||||
public int? RackId { get; set; }
|
||||
public string PortsName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 框-信息输入输出对象
|
||||
/// </summary>
|
||||
public class OdfFramesDto
|
||||
{
|
||||
[Required(ErrorMessage = "Id不能为空")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "ODF机架ID不能为空")]
|
||||
public int RackId { get; set; }
|
||||
|
||||
public string PortsName { get; set; }
|
||||
|
||||
public long? DeptId { get; set; }
|
||||
|
||||
public int? SequenceNumber { get; set; }
|
||||
|
||||
public int? PortsCount { get; set; }
|
||||
|
||||
public int? PortsCol { get; set; }
|
||||
|
||||
public int? PortsRow { get; set; }
|
||||
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
public DateTime? UpdateAt { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class OdfFramesExpertDto : OdfFramesDto
|
||||
{
|
||||
public int RoomId { get; set; }
|
||||
/// <summary>
|
||||
/// 行数
|
||||
/// </summary>
|
||||
public int RowCount { get; set; }
|
||||
/// <summary>
|
||||
/// 端口数量
|
||||
/// </summary>
|
||||
public int PortsCount { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
public int DefaultStatus { get; set; }
|
||||
}
|
||||
}
|
||||
190
ZR.Model/Business/Dto/OdfPortsDto.cs
Normal file
190
ZR.Model/Business/Dto/OdfPortsDto.cs
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
|
||||
namespace ZR.Model.Business.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 端口查询对象
|
||||
/// </summary>
|
||||
public class OdfPortsQueryDto : PagerInfo
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public long? DeptId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remarks { get; set; }
|
||||
/// <summary>
|
||||
/// 历史故障记录
|
||||
/// </summary>
|
||||
public string HistoryRemarks { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 机房id
|
||||
/// </summary>
|
||||
public int? RoomId { get; set; }
|
||||
/// <summary>
|
||||
/// 机架id
|
||||
/// </summary>
|
||||
public int? RacksId { get; set; }
|
||||
/// <summary>
|
||||
/// 框id
|
||||
/// </summary>
|
||||
public int? FramesId { get; set; }
|
||||
}
|
||||
|
||||
public class OdfPortsMQueryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房id
|
||||
/// </summary>
|
||||
public int? RoomId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机架id
|
||||
/// </summary>
|
||||
public int? RackId { get; set; }
|
||||
}
|
||||
public class OdfPortsMListDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
public List<OdfPortsMDto> odfPortsList { get; set; } = new List<OdfPortsMDto>();
|
||||
}
|
||||
public class OdfPortsMDto
|
||||
{
|
||||
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int Status { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 端口输入输出对象
|
||||
/// </summary>
|
||||
public class OdfPortsDto
|
||||
{
|
||||
[Required(ErrorMessage = "Id不能为空")]
|
||||
[ExcelColumn(Name = "Id")]
|
||||
[ExcelColumnName("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "端口名称不能为空")]
|
||||
[ExcelColumn(Name = "端口名称")]
|
||||
[ExcelColumnName("端口名称")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机房ID不能为空")]
|
||||
[ExcelColumn(Name = "机房ID")]
|
||||
[ExcelColumnName("机房ID")]
|
||||
public int RoomId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机房名称不能为空")]
|
||||
[ExcelColumn(Name = "机房名称")]
|
||||
[ExcelColumnName("机房名称")]
|
||||
public string RoomName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机架ID不能为空")]
|
||||
[ExcelColumn(Name = "机架ID")]
|
||||
[ExcelColumnName("机架ID")]
|
||||
public int RackId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机架名称不能为空")]
|
||||
[ExcelColumn(Name = "机架名称")]
|
||||
[ExcelColumnName("机架名称")]
|
||||
public string RackName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "框ID不能为空")]
|
||||
[ExcelColumn(Name = "框ID")]
|
||||
[ExcelColumnName("框ID")]
|
||||
public int FrameId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "框名称不能为空")]
|
||||
[ExcelColumn(Name = "框名称")]
|
||||
[ExcelColumnName("框名称")]
|
||||
public string FrameName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "部门ID不能为空")]
|
||||
[ExcelColumn(Name = "部门ID")]
|
||||
[ExcelColumnName("部门ID")]
|
||||
public long DeptId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "行号(1-6)不能为空")]
|
||||
[ExcelColumn(Name = "行号(1-6)")]
|
||||
[ExcelColumnName("行号(1-6)")]
|
||||
public int RowNumber { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "端口号(1-12)不能为空")]
|
||||
[ExcelColumn(Name = "端口号(1-12)")]
|
||||
[ExcelColumnName("端口号(1-12)")]
|
||||
public int PortNumber { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "连接状态,0正常,1断开不能为空")]
|
||||
[ExcelColumn(Name = "连接状态,0正常,1断开")]
|
||||
[ExcelColumnName("连接状态,0正常,1断开")]
|
||||
public int Status { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "备注")]
|
||||
[ExcelColumnName("备注")]
|
||||
public string Remarks { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "光衰值(dB)")]
|
||||
[ExcelColumnName("光衰值(dB)")]
|
||||
public string OpticalAttenuation { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "历史故障表")]
|
||||
[ExcelColumnName("历史故障表")]
|
||||
public string HistoryRemarks { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "创建时间不能为空")]
|
||||
[ExcelColumn(Name = "创建时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("创建时间")]
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "修改时间不能为空")]
|
||||
[ExcelColumn(Name = "修改时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("修改时间")]
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
|
||||
|
||||
[ExcelColumn(Name = "连接状态,0正常,1断开")]
|
||||
public string StatusLabel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门名称
|
||||
/// </summary>
|
||||
[ExcelColumn(Name = "部门名称")]
|
||||
public string DeptName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 端口输入输出对象
|
||||
/// </summary>
|
||||
public class OdfPortsMMDto
|
||||
{
|
||||
[Required(ErrorMessage = "Id不能为空")]
|
||||
[ExcelColumn(Name = "Id")]
|
||||
[ExcelColumnName("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
public int Status { get; set; }
|
||||
|
||||
|
||||
public string Remarks { get; set; }
|
||||
|
||||
public string OpticalAttenuation { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "历史故障表")]
|
||||
[ExcelColumnName("历史故障表")]
|
||||
public string HistoryRemarks { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
76
ZR.Model/Business/Dto/OdfRacksDto.cs
Normal file
76
ZR.Model/Business/Dto/OdfRacksDto.cs
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
|
||||
namespace ZR.Model.Business.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 机架列表查询对象
|
||||
/// </summary>
|
||||
public class OdfRacksQueryDto : PagerInfo
|
||||
{
|
||||
public int? RoomId { get; set; }
|
||||
public string RackName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机架列表输入输出对象
|
||||
/// </summary>
|
||||
public class OdfRacksDto
|
||||
{
|
||||
[Required(ErrorMessage = "Id不能为空")]
|
||||
[ExcelColumn(Name = "Id")]
|
||||
[ExcelColumnName("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
|
||||
[Required(ErrorMessage = "机房不能为空")]
|
||||
[ExcelColumn(Name = "机房")]
|
||||
[ExcelColumnName("机房")]
|
||||
public int RoomId { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "序号不能为空")]
|
||||
[ExcelColumn(Name = "序号")]
|
||||
[ExcelColumnName("序号")]
|
||||
public int SequenceNumber { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "ODF名称不能为空")]
|
||||
[ExcelColumn(Name = "ODF名称")]
|
||||
[ExcelColumnName("ODF名称")]
|
||||
public string RackName { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "框数量(固定9框)")]
|
||||
[ExcelColumnName("框数量(固定9框)")]
|
||||
public int? FrameCount { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "CreatedAt", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("CreatedAt")]
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "UpdatedAt", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("UpdatedAt")]
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class OdfRacksExpertDto : OdfRacksDto
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 机框数量
|
||||
/// </summary>
|
||||
public int FramesCount { get; set; }
|
||||
/// <summary>
|
||||
/// 行数
|
||||
/// </summary>
|
||||
public int RowCount { get; set; }
|
||||
/// <summary>
|
||||
/// 端口数量
|
||||
/// </summary>
|
||||
public int PortsCount { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
public int DefaultStatus { get; set; }
|
||||
}
|
||||
}
|
||||
137
ZR.Model/Business/Dto/OdfRoomsDto.cs
Normal file
137
ZR.Model/Business/Dto/OdfRoomsDto.cs
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
|
||||
namespace ZR.Model.Business.Dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表查询对象
|
||||
/// </summary>
|
||||
public class OdfRoomsQueryDto : PagerInfo
|
||||
{
|
||||
public string RoomName { get; set; }
|
||||
public string RoomAddress { get; set; }
|
||||
public string Remarks { get; set; }
|
||||
|
||||
public List<long> DeptIds { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机房列表查询对象
|
||||
/// </summary>
|
||||
public class OdfRoomsTreeQueryDto : PagerInfo
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public int? DeptId { get; set; }
|
||||
public int Level { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房id
|
||||
/// </summary>
|
||||
public int? RoomId { get; set; }
|
||||
/// <summary>
|
||||
/// 机架id
|
||||
/// </summary>
|
||||
public int? RacksId { get; set; }
|
||||
/// <summary>
|
||||
/// 框id
|
||||
/// </summary>
|
||||
public int? FramesId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机房树结构
|
||||
/// </summary>
|
||||
public class OdfRoomsTreeDto
|
||||
{
|
||||
public string Key { get; set; }
|
||||
public string Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public long DeptId { get; set; }
|
||||
public int Level { get; set; }
|
||||
public bool Leaf { get; set; }
|
||||
/// <summary>
|
||||
/// 机房id
|
||||
/// </summary>
|
||||
public int? RoomId { get; set; }
|
||||
/// <summary>
|
||||
/// 机架id
|
||||
/// </summary>
|
||||
public int? RacksId { get; set; }
|
||||
/// <summary>
|
||||
/// 框id
|
||||
/// </summary>
|
||||
public int? FramesId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机房列表输入输出对象
|
||||
/// </summary>
|
||||
public class OdfRoomsDto
|
||||
{
|
||||
[Required(ErrorMessage = "Id不能为空")]
|
||||
[ExcelColumn(Name = "Id")]
|
||||
[ExcelColumnName("Id")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "部门ID")]
|
||||
[ExcelColumnName("部门ID")]
|
||||
public long? DeptId { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "部门名称")]
|
||||
[ExcelColumnName("部门名称")]
|
||||
public string DeptName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机房名称不能为空")]
|
||||
[ExcelColumn(Name = "机房名称")]
|
||||
[ExcelColumnName("机房名称")]
|
||||
public string RoomName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机房位置不能为空")]
|
||||
[ExcelColumn(Name = "机房位置")]
|
||||
[ExcelColumnName("机房位置")]
|
||||
public string RoomAddress { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "机架数量")]
|
||||
[ExcelColumnName("机架数量")]
|
||||
public int? RacksCount { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "备注")]
|
||||
[ExcelColumnName("备注")]
|
||||
public string Remarks { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "创建时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("创建时间")]
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "修改时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("修改时间")]
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class OdfRoomsExpertDto : OdfRoomsDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 机框数量
|
||||
/// </summary>
|
||||
public int FramesCount { get; set; }
|
||||
/// <summary>
|
||||
/// 行数
|
||||
/// </summary>
|
||||
public int RowCount { get; set; }
|
||||
/// <summary>
|
||||
/// 端口数量
|
||||
/// </summary>
|
||||
public int PortsCount { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
public int DefaultStatus { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
62
ZR.Model/Business/OdfFrames.cs
Normal file
62
ZR.Model/Business/OdfFrames.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 框-信息
|
||||
/// </summary>
|
||||
[SugarTable("odf_frames")]
|
||||
public class OdfFrames
|
||||
{
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ODF机架ID
|
||||
/// </summary>
|
||||
public int RackId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 名称
|
||||
/// </summary>
|
||||
public string PortsName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所属部门
|
||||
/// </summary>
|
||||
public long? DeptId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 序号
|
||||
/// </summary>
|
||||
public int? SequenceNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 端口数量
|
||||
/// </summary>
|
||||
public int? PortsCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 列数量
|
||||
/// </summary>
|
||||
public int? PortsCol { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 行数量
|
||||
/// </summary>
|
||||
public int? PortsRow { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修改时间
|
||||
/// </summary>
|
||||
public DateTime? UpdateAt { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
102
ZR.Model/Business/OdfPorts.cs
Normal file
102
ZR.Model/Business/OdfPorts.cs
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 端口
|
||||
/// </summary>
|
||||
[SugarTable("odf_ports")]
|
||||
public class OdfPorts
|
||||
{
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 端口名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房ID
|
||||
/// </summary>
|
||||
public int RoomId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房名称
|
||||
/// </summary>
|
||||
public string RoomName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机架ID
|
||||
/// </summary>
|
||||
public int RackId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机架名称
|
||||
/// </summary>
|
||||
public string RackName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 框ID
|
||||
/// </summary>
|
||||
public int FrameId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 框名称
|
||||
/// </summary>
|
||||
public string FrameName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门ID
|
||||
/// </summary>
|
||||
public long DeptId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门名称
|
||||
/// </summary>
|
||||
public string DeptName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 行号(1-6)
|
||||
/// </summary>
|
||||
public int RowNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 端口号(1-12)
|
||||
/// </summary>
|
||||
public int PortNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 连接状态,0正常,1断开
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remarks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 光衰值(dB)
|
||||
/// </summary>
|
||||
public string OpticalAttenuation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 历史故障表
|
||||
/// </summary>
|
||||
public string HistoryRemarks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修改时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
51
ZR.Model/Business/OdfRacks.cs
Normal file
51
ZR.Model/Business/OdfRacks.cs
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 机架列表
|
||||
/// </summary>
|
||||
[SugarTable("odf_racks")]
|
||||
public class OdfRacks
|
||||
{
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房
|
||||
/// </summary>
|
||||
public int RoomId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 序号
|
||||
/// </summary>
|
||||
public int SequenceNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ODF名称
|
||||
/// </summary>
|
||||
public string RackName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 框数量(固定9框)
|
||||
/// </summary>
|
||||
public int? FrameCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修改时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门
|
||||
/// </summary>
|
||||
public long DeptId { get; set; }
|
||||
}
|
||||
}
|
||||
57
ZR.Model/Business/OdfRooms.cs
Normal file
57
ZR.Model/Business/OdfRooms.cs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
|
||||
namespace ZR.Model.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表
|
||||
/// </summary>
|
||||
[SugarTable("odf_rooms")]
|
||||
public class OdfRooms
|
||||
{
|
||||
/// <summary>
|
||||
/// Id
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门ID
|
||||
/// </summary>
|
||||
public long? DeptId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门名称
|
||||
/// </summary>
|
||||
public string DeptName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房名称
|
||||
/// </summary>
|
||||
public string RoomName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机房位置
|
||||
/// </summary>
|
||||
public string RoomAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 机架数量
|
||||
/// </summary>
|
||||
public int? RacksCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 备注
|
||||
/// </summary>
|
||||
public string Remarks { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
public DateTime? CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 修改时间
|
||||
/// </summary>
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -32,4 +32,31 @@ namespace ZR.Model.System.Dto
|
|||
/// </summary>
|
||||
public string TenantId { get; set; }
|
||||
}
|
||||
|
||||
public class LoginMBodyDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户名
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "用户名不能为空")]
|
||||
public string Username { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户密码
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "密码不能为空")]
|
||||
public string Password { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 验证码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 唯一标识
|
||||
/// </summary>
|
||||
public string Uuid { get; set; } = "";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
21
ZR.Service/Business/IBusinessService/IOdfFramesService.cs
Normal file
21
ZR.Service/Business/IBusinessService/IOdfFramesService.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
|
||||
namespace ZR.Service.Business.IBusinessService
|
||||
{
|
||||
/// <summary>
|
||||
/// 框-信息service接口
|
||||
/// </summary>
|
||||
public interface IOdfFramesService : IBaseService<OdfFrames>
|
||||
{
|
||||
PagedInfo<OdfFramesDto> GetList(OdfFramesQueryDto parm);
|
||||
|
||||
OdfFrames GetInfo(int Id);
|
||||
|
||||
|
||||
OdfFrames AddOdfFrames(OdfFrames parm);
|
||||
int UpdateOdfFrames(OdfFrames parm);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
23
ZR.Service/Business/IBusinessService/IOdfPortsService.cs
Normal file
23
ZR.Service/Business/IBusinessService/IOdfPortsService.cs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
|
||||
namespace ZR.Service.Business.IBusinessService
|
||||
{
|
||||
/// <summary>
|
||||
/// 端口service接口
|
||||
/// </summary>
|
||||
public interface IOdfPortsService : IBaseService<OdfPorts>
|
||||
{
|
||||
PagedInfo<OdfPortsDto> GetList(OdfPortsQueryDto parm);
|
||||
|
||||
OdfPorts GetInfo(int Id);
|
||||
|
||||
|
||||
OdfPorts AddOdfPorts(OdfPorts parm);
|
||||
int UpdateOdfPorts(OdfPorts parm);
|
||||
|
||||
(string, object, object) ImportOdfPorts(List<OdfPorts> list);
|
||||
|
||||
PagedInfo<OdfPortsDto> ExportList(OdfPortsQueryDto parm);
|
||||
}
|
||||
}
|
||||
23
ZR.Service/Business/IBusinessService/IOdfRacksService.cs
Normal file
23
ZR.Service/Business/IBusinessService/IOdfRacksService.cs
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
|
||||
namespace ZR.Service.Business.IBusinessService
|
||||
{
|
||||
/// <summary>
|
||||
/// 机架列表service接口
|
||||
/// </summary>
|
||||
public interface IOdfRacksService : IBaseService<OdfRacks>
|
||||
{
|
||||
PagedInfo<OdfRacksDto> GetList(OdfRacksQueryDto parm);
|
||||
|
||||
OdfRacks GetInfo(int Id);
|
||||
|
||||
|
||||
OdfRacks AddOdfRacks(OdfRacks parm);
|
||||
int UpdateOdfRacks(OdfRacks parm);
|
||||
|
||||
(string, object, object) ImportOdfRacks(List<OdfRacks> list);
|
||||
|
||||
PagedInfo<OdfRacksDto> ExportList(OdfRacksQueryDto parm);
|
||||
}
|
||||
}
|
||||
24
ZR.Service/Business/IBusinessService/IOdfRoomsService.cs
Normal file
24
ZR.Service/Business/IBusinessService/IOdfRoomsService.cs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
|
||||
namespace ZR.Service.Business.IBusinessService
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表service接口
|
||||
/// </summary>
|
||||
public interface IOdfRoomsService : IBaseService<OdfRooms>
|
||||
{
|
||||
PagedInfo<OdfRoomsDto> GetList(OdfRoomsQueryDto parm);
|
||||
|
||||
List<OdfRooms> GetList(OdfRoomsTreeQueryDto parm);
|
||||
OdfRooms GetInfo(int Id);
|
||||
|
||||
|
||||
OdfRooms AddOdfRooms(OdfRooms parm);
|
||||
int UpdateOdfRooms(OdfRooms parm);
|
||||
|
||||
(string, object, object) ImportOdfRooms(List<OdfRooms> list);
|
||||
|
||||
PagedInfo<OdfRoomsDto> ExportList(OdfRoomsQueryDto parm);
|
||||
}
|
||||
}
|
||||
82
ZR.Service/Business/OdfFramesService.cs
Normal file
82
ZR.Service/Business/OdfFramesService.cs
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
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(IOdfFramesService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OdfFramesService : BaseService<OdfFrames>, IOdfFramesService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询框-信息列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfFramesDto> GetList(OdfFramesQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
//.OrderBy("SequenceNumber asc")
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<OdfFrames, OdfFramesDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public OdfFrames GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加框-信息
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public OdfFrames AddOdfFrames(OdfFrames model)
|
||||
{
|
||||
return Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改框-信息
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateOdfFrames(OdfFrames model)
|
||||
{
|
||||
return Update(model, true, "修改框-信息");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfFrames> QueryExp(OdfFramesQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfFrames>();
|
||||
|
||||
predicate = predicate.AndIF(parm.RackId != null, it => it.RackId == parm.RackId);
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.PortsName), it => it.PortsName.Contains(parm.PortsName));
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
}
|
||||
171
ZR.Service/Business/OdfPortsService.cs
Normal file
171
ZR.Service/Business/OdfPortsService.cs
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
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(IOdfPortsService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OdfPortsService : BaseService<OdfPorts>, IOdfPortsService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询端口列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfPortsDto> 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")
|
||||
//.OrderBy(it => it.RoomId)
|
||||
//.OrderBy(it => it.RackId)
|
||||
//.OrderBy(it => it.Id)
|
||||
//.OrderBy(it => it.Name)
|
||||
.ToPage<OdfPorts, OdfPortsDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public OdfPorts GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加端口
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public OdfPorts AddOdfPorts(OdfPorts model)
|
||||
{
|
||||
return Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改端口
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateOdfPorts(OdfPorts model)
|
||||
{
|
||||
return Update(model, true, "修改端口");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入端口
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public (string, object, object) ImportOdfPorts(List<OdfPorts> list)
|
||||
{
|
||||
var x = Context.Storageable(list)
|
||||
.SplitInsert(it => !it.Any())
|
||||
.SplitError(x => x.Item.Name.IsEmpty(), "端口名称不能为空")
|
||||
.SplitError(x => x.Item.RoomId.IsEmpty(), "机房ID不能为空")
|
||||
.SplitError(x => x.Item.RoomName.IsEmpty(), "机房名称不能为空")
|
||||
.SplitError(x => x.Item.RackId.IsEmpty(), "机架ID不能为空")
|
||||
.SplitError(x => x.Item.RackName.IsEmpty(), "机架名称不能为空")
|
||||
.SplitError(x => x.Item.FrameId.IsEmpty(), "框ID不能为空")
|
||||
.SplitError(x => x.Item.FrameName.IsEmpty(), "框名称不能为空")
|
||||
.SplitError(x => x.Item.DeptId.IsEmpty(), "部门ID不能为空")
|
||||
.SplitError(x => x.Item.RowNumber.IsEmpty(), "行号(1-6)不能为空")
|
||||
.SplitError(x => x.Item.PortNumber.IsEmpty(), "端口号(1-12)不能为空")
|
||||
.SplitError(x => x.Item.Status.IsEmpty(), "连接状态,0正常,1断开不能为空")
|
||||
.SplitError(x => x.Item.CreatedAt.IsEmpty(), "创建时间不能为空")
|
||||
.SplitError(x => x.Item.UpdatedAt.IsEmpty(), "修改时间不能为空")
|
||||
//.WhereColumns(it => it.UserName)//如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
|
||||
.ToStorage();
|
||||
var result = x.AsInsertable.ExecuteCommand();//插入可插入部分;
|
||||
|
||||
string msg = $"插入{x.InsertList.Count} 更新{x.UpdateList.Count} 错误数据{x.ErrorList.Count} 不计算数据{x.IgnoreList.Count} 删除数据{x.DeleteList.Count} 总共{x.TotalList.Count}";
|
||||
Console.WriteLine(msg);
|
||||
|
||||
//输出错误信息
|
||||
foreach (var item in x.ErrorList)
|
||||
{
|
||||
Console.WriteLine("错误" + item.StorageMessage);
|
||||
}
|
||||
foreach (var item in x.IgnoreList)
|
||||
{
|
||||
Console.WriteLine("忽略" + item.StorageMessage);
|
||||
}
|
||||
|
||||
return (msg, x.ErrorList, x.IgnoreList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出端口
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfPortsDto> ExportList(OdfPortsQueryDto 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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfPorts> QueryExp(OdfPortsQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfPorts>();
|
||||
if (parm.RoomId != null)
|
||||
{
|
||||
predicate = predicate.And(f => f.RoomId == parm.RoomId);
|
||||
}
|
||||
if (parm.RacksId != null)
|
||||
{
|
||||
predicate = predicate.And(f => f.RackId == parm.RacksId);
|
||||
}
|
||||
if (parm.FramesId != null)
|
||||
{
|
||||
predicate = predicate.And(f => f.FrameId == parm.FramesId);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(parm.Name))
|
||||
{
|
||||
predicate = predicate.And(f => f.Name.Contains(parm.Name));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(parm.Remarks))
|
||||
{
|
||||
predicate = predicate.And(f => f.Remarks.Contains(parm.Remarks));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(parm.HistoryRemarks))
|
||||
{
|
||||
predicate = predicate.And(f => f.HistoryRemarks.Contains(parm.HistoryRemarks));
|
||||
}
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
}
|
||||
138
ZR.Service/Business/OdfRacksService.cs
Normal file
138
ZR.Service/Business/OdfRacksService.cs
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
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(IOdfRacksService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OdfRacksService : BaseService<OdfRacks>, IOdfRacksService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询机架列表列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfRacksDto> GetList(OdfRacksQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
.OrderBy("RoomId asc,SequenceNumber asc")
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<OdfRacks, OdfRacksDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public OdfRacks GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加机架列表
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public OdfRacks AddOdfRacks(OdfRacks model)
|
||||
{
|
||||
model.CreatedAt = DateTime.Now;
|
||||
model.UpdatedAt=DateTime.Now;
|
||||
|
||||
return Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改机架列表
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateOdfRacks(OdfRacks model)
|
||||
{
|
||||
model.UpdatedAt = DateTime.Now;
|
||||
return Update(model, true, "修改机架列表");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入机架列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public (string, object, object) ImportOdfRacks(List<OdfRacks> list)
|
||||
{
|
||||
var x = Context.Storageable(list)
|
||||
.SplitInsert(it => !it.Any())
|
||||
.SplitError(x => x.Item.RoomId.IsEmpty(), "机房不能为空")
|
||||
.SplitError(x => x.Item.SequenceNumber.IsEmpty(), "序号不能为空")
|
||||
.SplitError(x => x.Item.RackName.IsEmpty(), "ODF名称不能为空")
|
||||
//.WhereColumns(it => it.UserName)//如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
|
||||
.ToStorage();
|
||||
var result = x.AsInsertable.ExecuteCommand();//插入可插入部分;
|
||||
|
||||
string msg = $"插入{x.InsertList.Count} 更新{x.UpdateList.Count} 错误数据{x.ErrorList.Count} 不计算数据{x.IgnoreList.Count} 删除数据{x.DeleteList.Count} 总共{x.TotalList.Count}";
|
||||
Console.WriteLine(msg);
|
||||
|
||||
//输出错误信息
|
||||
foreach (var item in x.ErrorList)
|
||||
{
|
||||
Console.WriteLine("错误" + item.StorageMessage);
|
||||
}
|
||||
foreach (var item in x.IgnoreList)
|
||||
{
|
||||
Console.WriteLine("忽略" + item.StorageMessage);
|
||||
}
|
||||
|
||||
return (msg, x.ErrorList, x.IgnoreList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出机架列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfRacksDto> ExportList(OdfRacksQueryDto parm)
|
||||
{
|
||||
parm.PageNum = 1;
|
||||
parm.PageSize = 100000;
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.Select((it) => new OdfRacksDto()
|
||||
{
|
||||
}, true)
|
||||
.ToPage(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfRacks> QueryExp(OdfRacksQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfRacks>();
|
||||
|
||||
predicate = predicate.AndIF(parm.RoomId != null, it => it.RoomId == parm.RoomId);
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.RackName), it => it.RackName.Contains(parm.RackName));
|
||||
return predicate;
|
||||
}
|
||||
}
|
||||
}
|
||||
173
ZR.Service/Business/OdfRoomsService.cs
Normal file
173
ZR.Service/Business/OdfRoomsService.cs
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
using Infrastructure.Attribute;
|
||||
using Infrastructure.Extensions;
|
||||
using ZR.Model.Business.Dto;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Repository;
|
||||
using ZR.Service.Business.IBusinessService;
|
||||
using Infrastructure;
|
||||
using SqlSugar.IOC;
|
||||
|
||||
namespace ZR.Service.Business
|
||||
{
|
||||
/// <summary>
|
||||
/// 机房列表Service业务层处理
|
||||
/// </summary>
|
||||
[AppService(ServiceType = typeof(IOdfRoomsService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class OdfRoomsService : BaseService<OdfRooms>, IOdfRoomsService
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询机房列表列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfRoomsDto> GetList(OdfRoomsQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
//.OrderBy("Id desc")
|
||||
.Where(predicate.ToExpression())
|
||||
.ToPage<OdfRooms, OdfRoomsDto>(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取详情
|
||||
/// </summary>
|
||||
/// <param name="Id"></param>
|
||||
/// <returns></returns>
|
||||
public OdfRooms GetInfo(int Id)
|
||||
{
|
||||
var response = Queryable()
|
||||
.Where(x => x.Id == Id)
|
||||
.First();
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加机房列表
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public OdfRooms AddOdfRooms(OdfRooms model)
|
||||
{
|
||||
return Insertable(model).ExecuteReturnEntity();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 修改机房列表
|
||||
/// </summary>
|
||||
/// <param name="model"></param>
|
||||
/// <returns></returns>
|
||||
public int UpdateOdfRooms(OdfRooms model)
|
||||
{
|
||||
return Update(model, true, "修改机房列表");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导入机房列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public (string, object, object) ImportOdfRooms(List<OdfRooms> list)
|
||||
{
|
||||
var x = Context.Storageable(list)
|
||||
.SplitInsert(it => !it.Any())
|
||||
.SplitError(x => x.Item.RoomName.IsEmpty(), "机房名称不能为空")
|
||||
.SplitError(x => x.Item.RoomAddress.IsEmpty(), "机房位置不能为空")
|
||||
//.WhereColumns(it => it.UserName)//如果不是主键可以这样实现(多字段it=>new{it.x1,it.x2})
|
||||
.ToStorage();
|
||||
var result = x.AsInsertable.ExecuteCommand();//插入可插入部分;
|
||||
|
||||
string msg = $"插入{x.InsertList.Count} 更新{x.UpdateList.Count} 错误数据{x.ErrorList.Count} 不计算数据{x.IgnoreList.Count} 删除数据{x.DeleteList.Count} 总共{x.TotalList.Count}";
|
||||
Console.WriteLine(msg);
|
||||
|
||||
//输出错误信息
|
||||
foreach (var item in x.ErrorList)
|
||||
{
|
||||
Console.WriteLine("错误" + item.StorageMessage);
|
||||
}
|
||||
foreach (var item in x.IgnoreList)
|
||||
{
|
||||
Console.WriteLine("忽略" + item.StorageMessage);
|
||||
}
|
||||
|
||||
return (msg, x.ErrorList, x.IgnoreList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 导出机房列表
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
public PagedInfo<OdfRoomsDto> ExportList(OdfRoomsQueryDto parm)
|
||||
{
|
||||
parm.PageNum = 1;
|
||||
parm.PageSize = 100000;
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.Select((it) => new OdfRoomsDto()
|
||||
{
|
||||
}, true)
|
||||
.ToPage(parm);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfRooms> QueryExp(OdfRoomsQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfRooms>();
|
||||
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.RoomName), it => it.RoomName.Contains(parm.RoomName));
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.RoomAddress), it => it.RoomAddress.Contains(parm.RoomAddress));
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Remarks), it => it.Remarks.Contains(parm.Remarks));
|
||||
predicate = predicate.AndIF(parm.DeptIds != null && parm.DeptIds.Count > 0, it => parm.DeptIds.Contains(it.DeptId ?? 0));
|
||||
return predicate;
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询导出表达式
|
||||
/// </summary>
|
||||
/// <param name="parm"></param>
|
||||
/// <returns></returns>
|
||||
private static Expressionable<OdfRooms> QueryExp(OdfRoomsTreeQueryDto parm)
|
||||
{
|
||||
var predicate = Expressionable.Create<OdfRooms>();
|
||||
|
||||
predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Name), it => (it.RoomName.Contains(parm.Name) || it.RoomAddress.Contains(parm.Name) || it.DeptName.Contains(parm.Name)));
|
||||
if (parm.DeptId != null)
|
||||
{
|
||||
if (parm.DeptId == 0)
|
||||
{
|
||||
predicate = predicate.AndIF(parm.DeptId != null, it => parm.DeptId == (it.DeptId ?? 0));
|
||||
}
|
||||
else
|
||||
{
|
||||
var db = DbScoped.SugarScope.GetConnectionScope("0");
|
||||
string sql = "WITH DeptCTE AS( SELECT DeptId, ParentId, DeptName FROM sys_dept WHERE DeptId =" + parm.DeptId + " UNION ALL SELECT d.DeptId, d.ParentId, d.DeptName FROM sys_dept d INNER JOIN DeptCTE cte ON d.ParentId = cte.DeptId WHERE d.DelFlag = 0) SELECT DeptId FROM DeptCTE ORDER BY DeptId";
|
||||
var list = db.Ado.SqlQuery<long>(sql);
|
||||
predicate = predicate.And(it => list.Contains(it.DeptId ?? 0));
|
||||
}
|
||||
}
|
||||
return predicate;
|
||||
}
|
||||
public List<OdfRooms> GetList(OdfRoomsTreeQueryDto parm)
|
||||
{
|
||||
var predicate = QueryExp(parm);
|
||||
|
||||
var response = Queryable()
|
||||
.Where(predicate.ToExpression())
|
||||
.ToList();
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -156,6 +156,7 @@ namespace ZR.ServiceCore.Services
|
|||
/// <returns></returns>
|
||||
public List<SysDictDataDto> SelectDictDataByCustomSql(SysDictType sysDictType)
|
||||
{
|
||||
|
||||
return Context.Ado.SqlQuery<SysDictDataDto>(sysDictType?.CustomSql).ToList();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
using Infrastructure;
|
||||
using Infrastructure.Attribute;
|
||||
|
||||
using SqlSugar.IOC;
|
||||
|
||||
using ZR.Model;
|
||||
using ZR.Model.System;
|
||||
using ZR.Model.System.Dto;
|
||||
using ZR.ServiceCore.SqlSugar;
|
||||
|
||||
namespace ZR.ServiceCore.Services
|
||||
{
|
||||
|
|
@ -123,12 +127,59 @@ namespace ZR.ServiceCore.Services
|
|||
/// <returns></returns>
|
||||
public List<SysDictDataDto> SelectDictDataByCustomSql(string dictType)
|
||||
{
|
||||
|
||||
var dictInfo = Queryable()
|
||||
.Where(f => f.DictType == dictType).First();
|
||||
if (dictInfo == null || !dictInfo.CustomSql.StartsWith("select", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (dictInfo.DictType == "sql_odf_room")
|
||||
{
|
||||
//获取当前用户的信息
|
||||
var user = JwtUtil.GetLoginUser(App.HttpContext);
|
||||
if (user == null)
|
||||
{
|
||||
dictInfo.CustomSql += " and DeptId = 0";
|
||||
}
|
||||
else
|
||||
{
|
||||
//管理员不过滤
|
||||
if (!user.RoleKeys.Any(f => f.Equals(GlobalConstant.AdminRole)))
|
||||
{
|
||||
foreach (var role in user.Roles.OrderBy(f => f.DataScope))
|
||||
{
|
||||
var dataScope = (DataPermiEnum)role.DataScope;
|
||||
if (DataPermiEnum.All.Equals(dataScope))//所有权限
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (DataPermiEnum.CUSTOM.Equals(dataScope))//自定数据权限
|
||||
{
|
||||
|
||||
}
|
||||
else if (DataPermiEnum.DEPT.Equals(dataScope))//本部门数据
|
||||
{
|
||||
//user.DeptId
|
||||
dictInfo.CustomSql += " and DeptId = " + user.DeptId;
|
||||
}
|
||||
else if (DataPermiEnum.DEPT_CHILD.Equals(dataScope))//本部门及以下数据
|
||||
{
|
||||
//SQl OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )
|
||||
|
||||
var db = DbScoped.SugarScope.GetConnectionScope("0");
|
||||
var allChildDepts = db.Queryable<SysDept>().ToChildList(it => it.ParentId, user.DeptId);
|
||||
var allDeptId = allChildDepts.Select(f => f.DeptId).ToList();
|
||||
dictInfo.CustomSql += " and DeptId in ( " + string.Join(",", allDeptId) + ")";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return DictDataService.SelectDictDataByCustomSql(dictInfo);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using Infrastructure;
|
||||
|
||||
using SqlSugar.IOC;
|
||||
|
||||
using ZR.Model;
|
||||
using ZR.Model.Business;
|
||||
using ZR.Model.Models;
|
||||
using ZR.Model.System;
|
||||
|
||||
|
|
@ -51,7 +54,9 @@ namespace ZR.ServiceCore.SqlSugar
|
|||
var expLoginlog = Expressionable.Create<SysLogininfor>();
|
||||
var expSysMsg = Expressionable.Create<SysUserMsg>().And(it => it.IsDelete == 0);
|
||||
var expDept = Expressionable.Create<SysDept>();
|
||||
|
||||
var expOdfRooms = Expressionable.Create<OdfRooms>();
|
||||
var expOdfRacks = Expressionable.Create<OdfRacks>();
|
||||
var expOdfPorts = Expressionable.Create<OdfPorts>();
|
||||
db.QueryFilter.AddTableFilter(expSysMsg.ToExpression());
|
||||
//管理员不过滤
|
||||
if (user.RoleKeys.Any(f => f.Equals(GlobalConstant.AdminRole))) return;
|
||||
|
|
@ -73,6 +78,9 @@ namespace ZR.ServiceCore.SqlSugar
|
|||
{
|
||||
expUser.And(it => it.DeptId == user.DeptId);
|
||||
expDept.And(it => it.DeptId == user.DeptId);
|
||||
expOdfRooms.And(it => (it.DeptId == user.DeptId || it.DeptId == 0));
|
||||
expOdfRacks.And(it => (it.DeptId == user.DeptId || it.DeptId == 0));
|
||||
expOdfPorts.And(it => (it.DeptId == user.DeptId || it.DeptId == 0));
|
||||
}
|
||||
else if (DataPermiEnum.DEPT_CHILD.Equals(dataScope))//本部门及以下数据
|
||||
{
|
||||
|
|
@ -82,6 +90,9 @@ namespace ZR.ServiceCore.SqlSugar
|
|||
|
||||
expUser.Or(it => allDeptId.Contains(it.DeptId));
|
||||
expDept.And(it => allDeptId.Contains(it.DeptId));
|
||||
expOdfRooms.And(it => (allDeptId.Contains(it.DeptId ?? 0) || it.DeptId == 0));
|
||||
expOdfRacks.And(it => (allDeptId.Contains(it.DeptId) || it.DeptId == 0));
|
||||
expOdfPorts.And(it => (allDeptId.Contains(it.DeptId) || it.DeptId == 0));
|
||||
}
|
||||
else if (DataPermiEnum.SELF.Equals(dataScope))//仅本人数据
|
||||
{
|
||||
|
|
@ -95,6 +106,9 @@ namespace ZR.ServiceCore.SqlSugar
|
|||
db.QueryFilter.AddTableFilter(expUser.ToExpression());
|
||||
db.QueryFilter.AddTableFilter(expRole.ToExpression());
|
||||
db.QueryFilter.AddTableFilter(expLoginlog.ToExpression());
|
||||
db.QueryFilter.AddTableFilter(expOdfRooms.ToExpression());
|
||||
db.QueryFilter.AddTableFilter(expOdfRacks.ToExpression());
|
||||
db.QueryFilter.AddTableFilter(expOdfPorts.ToExpression());
|
||||
db.QueryFilter.AddTableFilter<UserOnlineLog>(f => f.UserId == user.UserId, QueryFilterProvider.FilterJoinPosition.Where);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user