测试
This commit is contained in:
parent
7ef76129c6
commit
b46027e9b0
|
|
@ -152,11 +152,29 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfframes:edit")]
|
||||
[Log(Title = "框-信息", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateOdfFrames([FromBody] OdfFramesDto parm)
|
||||
public async Task<IActionResult> UpdateOdfFrames([FromBody] OdfFramesDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfFrames>().ToUpdate(HttpContext);
|
||||
var oldModel = _OdfFramesService.GetById(parm.Id);
|
||||
var response = _OdfFramesService.UpdateOdfFrames(modal);
|
||||
if (response > 0)
|
||||
{
|
||||
var rortsName = oldModel.PortsName;
|
||||
var frameId = modal.Id;
|
||||
var rackId = modal.RackId;
|
||||
|
||||
if (oldModel.PortsName != modal.PortsName)
|
||||
{
|
||||
// 最直接的转换
|
||||
await _OdfPortsService.UpdateAsync(
|
||||
it => it.FrameId == frameId && it.RackId == rackId, // WHERE条件
|
||||
it => new OdfPorts // SET部分
|
||||
{
|
||||
FrameName = modal.PortsName,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaBusinessGetLiveInfoRespon
|
|||
using System.Threading.Tasks;
|
||||
using ZR.Repository;
|
||||
using Aliyun.OSS;
|
||||
using System.Linq;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
|
|
@ -30,12 +31,16 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
private readonly IOdfRoomsService _OdfRoomsService;
|
||||
|
||||
|
||||
private readonly ISysDeptService _SysDeptService;
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private readonly ISysUserService _SysUserService;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///机架
|
||||
/// </summary>
|
||||
|
|
@ -51,13 +56,17 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
ISysUserService sysUserService,
|
||||
IOdfPortsService odfPortsService,
|
||||
IOdfFramesService odfFramesService,
|
||||
IOdfRacksService odfRacksService)
|
||||
IOdfRacksService odfRacksService
|
||||
|
||||
)
|
||||
{
|
||||
_OdfRoomsService = OdfRoomsService;
|
||||
_SysUserService = sysUserService;
|
||||
_OdfPortsService = odfPortsService;
|
||||
_OdfFramesService = odfFramesService;
|
||||
_OdfRacksService = odfRacksService;
|
||||
_SysDeptService = sysDeptService;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -339,15 +348,143 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[HttpPost("importData")]
|
||||
[Log(Title = "端口导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
|
||||
[ActionPermissionFilter(Permission = "odfports:import")]
|
||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
public async Task<IActionResult> ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
{
|
||||
List<OdfPortsDto> list = new();
|
||||
List<OdfPortsImportDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
list = stream.Query<OdfPortsDto>(startCell: "A1").ToList();
|
||||
list = stream.Query<OdfPortsImportDto>(startCell: "A1").ToList();
|
||||
}
|
||||
int errorCount = 0;
|
||||
int successCount = 0;
|
||||
int addRoomCount = 0;
|
||||
int addRackCount = 0;
|
||||
int addFrameCount = 0;
|
||||
int addPortCount = 0;
|
||||
if (list.Count > 0)
|
||||
{
|
||||
List<OdfPorts> odfPorts = new List<OdfPorts>();
|
||||
var deptName = list.Select(it => it.DeptName.Trim()).Distinct().ToList();
|
||||
var deptInfo = _SysDeptService.AsQueryable().Where(it => deptName.Contains(it.DeptName)).Select(it => new { it.DeptId, it.DeptName }).ToList();
|
||||
|
||||
return SUCCESS(_OdfPortsService.ImportOdfPorts(list.Adapt<List<OdfPorts>>()));
|
||||
var roomNameList = list.Select(it => it.RoomName).Select(it => it.Trim()).Distinct().ToList();
|
||||
var roomList = _OdfRoomsService.AsQueryable().Where(it => roomNameList.Contains(it.RoomName)).ToList();
|
||||
foreach (var excelItem in list)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dept = deptInfo.Find(it => it.DeptName == excelItem.DeptName);
|
||||
if (dept == null)
|
||||
{
|
||||
//没有部门,下一个数据
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
var room = roomList.Find(it => it.RoomName == excelItem.RoomName);
|
||||
if (room == null)
|
||||
{
|
||||
//添加机房
|
||||
var roomItem = new OdfRooms()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
RoomAddress = "",
|
||||
UpdatedAt = DateTime.Now,
|
||||
DeptId = dept.DeptId,
|
||||
DeptName = dept.DeptName,
|
||||
RacksCount = 0,
|
||||
Remarks = "",
|
||||
RoomName = excelItem.RoomName
|
||||
};
|
||||
await _OdfRoomsService.InsertReturnEntityAsync(roomItem);
|
||||
addRoomCount++;
|
||||
roomList.Add(roomItem);
|
||||
room = roomItem;
|
||||
}
|
||||
//添加机架
|
||||
var rack = _OdfRacksService.AsQueryable().Where(it => it.RoomId == room.Id && it.RackName == excelItem.RackName).First();
|
||||
if (rack == null)
|
||||
{
|
||||
var sequenceNumber = _OdfRacksService.AsQueryable().Where(it => it.RoomId == room.Id).Max(it => (int?)it.SequenceNumber) ?? 0;
|
||||
sequenceNumber++;
|
||||
rack = new OdfRacks()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdatedAt = DateTime.Now,
|
||||
RoomId = room.Id,
|
||||
RackName = excelItem.RackName,
|
||||
DeptId = dept.DeptId,
|
||||
FrameCount = 0,
|
||||
SequenceNumber = sequenceNumber,
|
||||
};
|
||||
await _OdfRacksService.InsertReturnEntityAsync(rack);
|
||||
addRackCount++;
|
||||
}
|
||||
//添加框
|
||||
var frame = _OdfFramesService.AsQueryable().Where(it => it.RackId == rack.Id && it.PortsName == excelItem.FrameName).First();
|
||||
if (frame == null)
|
||||
{
|
||||
var sequenceNumber = _OdfFramesService.AsQueryable().Where(it => it.RackId == rack.Id).Max(it => (int?)it.SequenceNumber) ?? 0;
|
||||
sequenceNumber++;
|
||||
frame = new OdfFrames()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdateAt = DateTime.Now,
|
||||
RackId = rack.Id,
|
||||
PortsName = excelItem.FrameName,
|
||||
SequenceNumber = sequenceNumber,
|
||||
PortsCol = 0,
|
||||
PortsCount = 0,
|
||||
DeptId = dept.DeptId,
|
||||
PortsRow = 0,
|
||||
};
|
||||
await _OdfFramesService.InsertReturnEntityAsync(frame);
|
||||
addFrameCount++;
|
||||
}
|
||||
//添加端口
|
||||
var port = _OdfPortsService.AsQueryable().Where(it => it.FrameId == frame.Id && it.RowNumber == excelItem.RowNumber && it.PortNumber == excelItem.PortNumber).First();
|
||||
if (port == null)
|
||||
{
|
||||
port = new OdfPorts()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdatedAt = DateTime.Now,
|
||||
DeptId = dept.DeptId,
|
||||
DeptName = dept.DeptName,
|
||||
FrameId = frame.Id,
|
||||
FrameName = frame.PortsName,
|
||||
RackId = rack.Id,
|
||||
RackName = rack.RackName,
|
||||
RoomId = room.Id,
|
||||
RoomName = room.RoomName,
|
||||
Name = excelItem.RowNumber + "-" + excelItem.PortNumber,
|
||||
RowNumber = excelItem.RowNumber,
|
||||
PortNumber = excelItem.PortNumber,
|
||||
Status = excelItem.Status,
|
||||
Remarks = excelItem.Remarks?.Trim(),
|
||||
OpticalAttenuation = excelItem.OpticalAttenuation?.Trim(),
|
||||
HistoryRemarks = excelItem.HistoryRemarks?.Trim(),
|
||||
};
|
||||
await _OdfPortsService.InsertAsync(port);
|
||||
addPortCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
port.HistoryRemarks = excelItem.HistoryRemarks?.Trim();
|
||||
port.Remarks = excelItem.Remarks?.Trim();
|
||||
port.OpticalAttenuation = excelItem.OpticalAttenuation?.Trim();
|
||||
port.Status = excelItem.Status;
|
||||
await _OdfPortsService.UpdateAsync(port);
|
||||
}
|
||||
successCount++;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return SUCCESS($"共查询{list.Count}条数据,导入成功{successCount}条数据!导入失败{errorCount}条!{(addRoomCount > 0 ? "添加机房" + addRoomCount + "条," : "")}{(addRackCount > 0 ? "添加机架" + addRackCount + "条" : "")}{(addFrameCount > 0 ? "添加机框" + addFrameCount + "条" : "")}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using ZR.Model.Business;
|
|||
using ZR.Service.Business.IBusinessService;
|
||||
using MiniExcelLibs;
|
||||
using ZR.Service.Business;
|
||||
using SqlSugar;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
|
|
@ -207,11 +208,29 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[HttpPut]
|
||||
[ActionPermissionFilter(Permission = "odfracks:edit")]
|
||||
[Log(Title = "机架列表", BusinessType = BusinessType.UPDATE)]
|
||||
public IActionResult UpdateOdfRacks([FromBody] OdfRacksDto parm)
|
||||
public async Task<IActionResult> UpdateOdfRacks([FromBody] OdfRacksDto parm)
|
||||
{
|
||||
var modal = parm.Adapt<OdfRacks>().ToUpdate(HttpContext);
|
||||
var oldModel = _OdfRacksService.GetById(parm.Id);
|
||||
var response = _OdfRacksService.UpdateOdfRacks(modal);
|
||||
if (response > 0)
|
||||
{
|
||||
var rackName = oldModel.RackName;
|
||||
var oldRoomId = modal.RoomId;
|
||||
var rackId = modal.Id;
|
||||
|
||||
if (oldModel.RackName != modal.RackName)
|
||||
{
|
||||
// 最直接的转换
|
||||
await _OdfPortsService.UpdateAsync(
|
||||
it => it.RoomId == oldRoomId && it.RackId == rackId, // WHERE条件
|
||||
it => new OdfPorts // SET部分
|
||||
{
|
||||
RackName = modal.RackName,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@ using ZR.ServiceCore.Services;
|
|||
using System.Threading.Tasks;
|
||||
using ZR.Service.Business;
|
||||
using SqlSugar;
|
||||
using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaBusinessGetLiveInfoResponse.Types;
|
||||
using Aliyun.OSS;
|
||||
using Azure;
|
||||
|
||||
//创建时间:2025-08-05
|
||||
namespace ZR.Admin.WebApi.Controllers.Business
|
||||
|
|
@ -342,7 +345,7 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -378,14 +381,17 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
var response = _OdfRoomsService.UpdateOdfRooms(modal);
|
||||
if (response > 0)
|
||||
{
|
||||
var deptId = modal.DeptId ?? 0;
|
||||
var deptName = modal.DeptName;
|
||||
var roomName = modal.RoomName;
|
||||
var oldRoomId = oldModel.Id;
|
||||
|
||||
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 => it.RoomId == oldRoomId, // WHERE条件
|
||||
it => new OdfPorts // SET部分
|
||||
{
|
||||
DeptId = deptId,
|
||||
|
|
@ -394,14 +400,14 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
);
|
||||
// 1. 更新 odf_racks
|
||||
var racksUpdated = await _OdfRacksService.UpdateAsync(
|
||||
r => r.RoomId == roomId,
|
||||
r => r.RoomId == oldRoomId,
|
||||
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)
|
||||
.Where(r => r.RoomId == oldRoomId && r.Id == f.RackId)
|
||||
.Any(),
|
||||
f => new OdfFrames { DeptId = deptId }
|
||||
);
|
||||
|
|
@ -410,6 +416,17 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
//_OdfFramesService
|
||||
//_OdfRacksService
|
||||
}
|
||||
if (oldModel.RoomName != modal.RoomName)
|
||||
{
|
||||
// 最直接的转换
|
||||
await _OdfPortsService.UpdateAsync(
|
||||
it => it.RoomId == oldRoomId, // WHERE条件
|
||||
it => new OdfPorts // SET部分
|
||||
{
|
||||
RoomName = roomName,
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
return ToResponse(response);
|
||||
}
|
||||
|
|
@ -454,15 +471,179 @@ namespace ZR.Admin.WebApi.Controllers.Business
|
|||
[HttpPost("importData")]
|
||||
[Log(Title = "机房列表导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false)]
|
||||
[ActionPermissionFilter(Permission = "odfrooms:import")]
|
||||
public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
public async Task<IActionResult> ImportData([FromForm(Name = "file")] IFormFile formFile)
|
||||
{
|
||||
List<OdfRoomsDto> list = new();
|
||||
List<OdfRoomsImDto> list = new();
|
||||
using (var stream = formFile.OpenReadStream())
|
||||
{
|
||||
list = stream.Query<OdfRoomsDto>(startCell: "A1").ToList();
|
||||
list = stream.Query<OdfRoomsImDto>(startCell: "A1").ToList();
|
||||
}
|
||||
int errorCount = 0;
|
||||
int successCount = 0;
|
||||
int addRoomCount = 0;
|
||||
int addRackCount = 0;
|
||||
int addFrameCount = 0;
|
||||
int addPortCount = 0;
|
||||
if (list.Count > 0)
|
||||
{
|
||||
List<OdfPorts> odfPorts = new List<OdfPorts>();
|
||||
var deptName = list.Select(it => it.DeptName.Trim()).Distinct().ToList();
|
||||
var deptInfo = sysDeptService.AsQueryable().Where(it => deptName.Contains(it.DeptName)).Select(it => new { it.DeptId, it.DeptName }).ToList();
|
||||
|
||||
return SUCCESS(_OdfRoomsService.ImportOdfRooms(list.Adapt<List<OdfRooms>>()));
|
||||
var roomNameList = list.Select(it => it.RoomName).Select(it => it.Trim()).Distinct().ToList();
|
||||
var roomList = _OdfRoomsService.AsQueryable().Where(it => roomNameList.Contains(it.RoomName)).ToList();
|
||||
foreach (var excelItem in list)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dept = deptInfo.Find(it => it.DeptName == excelItem.DeptName);
|
||||
if (dept == null)
|
||||
{
|
||||
//没有部门,下一个数据
|
||||
errorCount++;
|
||||
continue;
|
||||
}
|
||||
var room = roomList.Find(it => it.RoomName == excelItem.RoomName);
|
||||
if (room == null)
|
||||
{
|
||||
//添加机房
|
||||
var roomItem = new OdfRooms()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
RoomAddress = "",
|
||||
UpdatedAt = DateTime.Now,
|
||||
DeptId = dept.DeptId,
|
||||
DeptName = dept.DeptName,
|
||||
RacksCount = excelItem.RacksCount,
|
||||
Remarks = "",
|
||||
RoomName = excelItem.RoomName
|
||||
};
|
||||
await _OdfRoomsService.InsertReturnEntityAsync(roomItem);
|
||||
addRoomCount++;
|
||||
roomList.Add(roomItem);
|
||||
room = roomItem;
|
||||
}
|
||||
else
|
||||
{
|
||||
room.RoomAddress = excelItem.RoomAddress?.Trim();
|
||||
room.Remarks = excelItem.Remarks?.Trim();
|
||||
room.RacksCount = excelItem.RacksCount ?? 0;
|
||||
room.UpdatedAt = DateTime.Now;
|
||||
await _OdfRoomsService.UpdateAsync(room);
|
||||
continue;
|
||||
}
|
||||
if (excelItem.RacksCount > 0)
|
||||
{
|
||||
var roomId = room.Id;
|
||||
var roomName = room.RoomName;
|
||||
List<OdfRacks> racksList = new List<OdfRacks>();
|
||||
//添加机架
|
||||
for (int i = 0; i < excelItem.RacksCount; i++)
|
||||
{
|
||||
var t = await _OdfRacksService.InsertReturnEntityAsync(new OdfRacks
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
FrameCount = excelItem.FrameCount,
|
||||
DeptId = room.DeptId ?? 0,
|
||||
RackName = $"odf-{(i + 1)}",
|
||||
RoomId = roomId,
|
||||
SequenceNumber = i + 1,
|
||||
UpdatedAt = DateTime.Now,
|
||||
}); // 直接插入机架
|
||||
racksList.Add(t);
|
||||
|
||||
}
|
||||
|
||||
//机架添加完成
|
||||
//return Insertable(model).ExecuteReturnEntity();
|
||||
if (excelItem.FrameCount > 0)
|
||||
{
|
||||
|
||||
//添加机框
|
||||
List<OdfFrames> framesList = new List<OdfFrames>();
|
||||
|
||||
foreach (var rack in racksList)
|
||||
{
|
||||
for (int i = 0; i < excelItem.FrameCount; i++)
|
||||
{
|
||||
var t = await _OdfFramesService.InsertReturnEntityAsync(new OdfFrames()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
UpdateAt = DateTime.Now,
|
||||
PortsCol = 12,
|
||||
PortsRow = 6,
|
||||
PortsCount = 6 * 12,
|
||||
DeptId = rack.DeptId,
|
||||
PortsName = $"{(i + 1)}框",
|
||||
RackId = rack.Id,
|
||||
SequenceNumber = i + 1
|
||||
});
|
||||
framesList.Add(t);
|
||||
}
|
||||
}
|
||||
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 < 6; row++)
|
||||
{
|
||||
for (int port = 0; port < 12; port++)
|
||||
{
|
||||
ports.Add(new OdfPorts()
|
||||
{
|
||||
CreatedAt = DateTime.Now,
|
||||
DeptId = frame.DeptId ?? 0,
|
||||
DeptName = room.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 = 1,
|
||||
UpdatedAt = DateTime.Now,
|
||||
});
|
||||
}
|
||||
}
|
||||
await _OdfPortsService.AsInsertable(ports).ExecuteReturnEntityAsync(true);
|
||||
//如果超过100个机框,则休眠一下,防止服务器死机
|
||||
index++;
|
||||
if (index > 100)
|
||||
{
|
||||
Thread.Sleep(50);
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
successCount++;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
errorCount++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return SUCCESS($"导入成功{successCount}条数据,失败{errorCount}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/OdfPorts.xlsx
Normal file
BIN
ZR.Admin.WebApi/wwwroot/ImportTemplate/OdfPorts.xlsx
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -204,6 +204,69 @@ namespace ZR.Model.Business.Dto
|
|||
public string DeptName { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 端口输入对象
|
||||
/// </summary>
|
||||
public class OdfPortsImportDto
|
||||
{
|
||||
|
||||
|
||||
|
||||
[Required(ErrorMessage = "机房名称不能为空")]
|
||||
[ExcelColumn(Name = "机房名称")]
|
||||
[ExcelColumnName("机房名称")]
|
||||
public string RoomName { get; set; }
|
||||
|
||||
|
||||
|
||||
[Required(ErrorMessage = "机架名称不能为空")]
|
||||
[ExcelColumn(Name = "机架名称")]
|
||||
[ExcelColumnName("机架名称")]
|
||||
public string RackName { get; set; }
|
||||
|
||||
|
||||
|
||||
[Required(ErrorMessage = "机框名称不能为空")]
|
||||
[ExcelColumn(Name = "机框名称")]
|
||||
[ExcelColumnName("机框名称")]
|
||||
public string FrameName { get; set; }
|
||||
|
||||
|
||||
|
||||
[Required(ErrorMessage = "行号不能为空")]
|
||||
[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 = "连接状态,1正常,0断开")]
|
||||
[ExcelColumnName("连接状态,1正常,0断开")]
|
||||
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; }
|
||||
|
||||
/// <summary>
|
||||
/// 部门名称
|
||||
/// </summary>
|
||||
[ExcelColumn(Name = "部门名称")]
|
||||
public string DeptName { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 端口输入输出对象
|
||||
|
|
|
|||
|
|
@ -105,9 +105,43 @@ namespace ZR.Model.Business.Dto
|
|||
[ExcelColumn(Name = "修改时间", Format = "yyyy-MM-dd HH:mm:ss", Width = 20)]
|
||||
[ExcelColumnName("修改时间")]
|
||||
public DateTime? UpdatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 机房列表输入输出对象
|
||||
/// </summary>
|
||||
public class OdfRoomsImDto
|
||||
{
|
||||
|
||||
[ExcelColumn(Name = "部门名称")]
|
||||
[ExcelColumnName("部门名称")]
|
||||
public string DeptName { get; set; }
|
||||
|
||||
[Required(ErrorMessage = "机房名称不能为空")]
|
||||
[ExcelColumn(Name = "机房名称")]
|
||||
[ExcelColumnName("机房名称")]
|
||||
public string RoomName { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "机房位置")]
|
||||
[ExcelColumnName("机房位置")]
|
||||
public string RoomAddress { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "备注")]
|
||||
[ExcelColumnName("备注")]
|
||||
public string Remarks { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "机架数量")]
|
||||
[ExcelColumnName("机架数量")]
|
||||
public int? RacksCount { get; set; }
|
||||
|
||||
|
||||
[ExcelColumn(Name = "机框数量")]
|
||||
[ExcelColumnName("机框数量")]
|
||||
public int? FrameCount { get; set; }
|
||||
|
||||
[ExcelColumn(Name = "是否生成端口数据,1生成,0只导入机房列表")]
|
||||
[ExcelColumnName("是否生成端口数据,1生成,0只导入机房列表")]
|
||||
public int? CreateRoomInfo { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user