fix 批量导入修改

This commit is contained in:
cheche
2024-03-08 11:36:36 +08:00
committed by liguoyang
parent eca9ca3a44
commit 62dbaada9d
7 changed files with 59 additions and 151 deletions

View File

@@ -224,7 +224,7 @@ public class DevicesController : ControllerBase
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("bulkUploads")]
public async Task BulkUploadsAsync([FromForm] BulkUploadsRequest request)
public async Task BulkUploadsAsync(ImportListRequest request)
{
await _deviceService.BulkUploadsAsync(request);
}

View File

@@ -5,9 +5,6 @@ namespace Dlhis.Basic.Device.Request
{
public class ImportDeviceSaveRequest
{
public long? Id { get; set; }
/// <summary>
/// 设备唯一号
/// </summary>

View File

@@ -0,0 +1,7 @@
namespace Dlhis.Basic.Device.Request
{
public class ImportListRequest
{
public List<ImportDeviceSaveRequest> Imports { get; set; }
}
}

View File

@@ -27,7 +27,7 @@ public interface IDeviceService : IScopeDependency
Task<List<RecentNumberResponse>> GetRecentNumbersAsync();
Task BulkUploadsAsync(BulkUploadsRequest request);
Task BulkUploadsAsync(ImportListRequest request);
}

View File

@@ -11,13 +11,8 @@ using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using MySqlX.XDevAPI.Relational;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.OpenXmlFormats;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using SqlSugar;
namespace Dlhis.Basic.Device.Services.Implements;
@@ -132,9 +127,9 @@ public class DeviceService : IDeviceService
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task BulkUploadsAsync(BulkUploadsRequest request)
public async Task BulkUploadsAsync(ImportListRequest request)
{
var lst = ImportFromExcel(request.FormFile);
var lst = request.Imports;
var places = await _dbContext.Queryable<BusinessPlaceEntity>().ToListAsync();
foreach (var form in lst)
@@ -500,67 +495,6 @@ public class DeviceService : IDeviceService
return list;
}
private List<ImportDeviceSaveRequest> ImportFromExcel(IFormFile formFile)
{
var requests = new List<ImportDeviceSaveRequest>();
using (var stream = formFile.OpenReadStream())
{
XSSFWorkbook workbook = new XSSFWorkbook(stream);
ISheet sheet = workbook.GetSheetAt(0);
for (int rowIdx = 1; rowIdx <= sheet.LastRowNum; rowIdx++)
{
IRow row = sheet.GetRow(rowIdx);
if (row == null) continue;
var request = new ImportDeviceSaveRequest();
request.UniqueNo = row.GetCell(0).ToString();
request.TemplateCode = Guid.Parse(row.GetCell(1).ToString());
request.Supplier = row.GetCell(2).ToString();
var funs = new List<DeviceFuncEnumType>();
var fs = row.GetCell(3).ToString().Split(',');
foreach (string str in fs)
{
switch (str)
{
case "1":
funs.Add(DeviceFuncEnumType.Face);
break;
case "2":
funs.Add(DeviceFuncEnumType.Card);
break;
case "3":
funs.Add(DeviceFuncEnumType.QrCode);
break;
case "4":
funs.Add(DeviceFuncEnumType.Control);
break;
default:
break;
}
}
request.Funcs = funs;
request.Type = (DeviceTypeEnumType)Enum.Parse(typeof(DeviceTypeEnumType), row.GetCell(4).ToString());
request.HeartbeatInterval = int.Parse(row.GetCell(5).ToString());
request.DeployPlace = row.GetCell(6).ToString();
request.DeployPosition = row.GetCell(7).ToString();
request.DeployDirection = row.GetCell(8).ToString();
request.ConnectionInfo = row.GetCell(9).ToString();
request.Enable = Convert.ToBoolean(Convert.ToInt32(row.GetCell(10).ToString()));
request.AsAttendance = Convert.ToBoolean(Convert.ToInt32(row.GetCell(11).ToString()));
if (row.GetCell(12) != null)
{
request.PlaceeCode = Guid.Parse(row.GetCell(12)?.ToString());
}
requests.Add(request);
}
}
return requests;
}
}

View File

@@ -18,7 +18,6 @@
<ItemGroup>
<PackageReference Include="Kurisu.AspNetCore" Version="0.6.1" />
<PackageReference Include="NPOI" Version="2.6.2" />
</ItemGroup>
<ItemGroup>