fix 导入优化

This commit is contained in:
cheche
2024-03-08 16:24:52 +08:00
parent 47c882f754
commit 0c639deefb
3 changed files with 48 additions and 8 deletions

View File

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

View File

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

View File

@@ -14,6 +14,7 @@ using Mapster;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using System.Net.Http.Json;
namespace Dlhis.Basic.Device.Services.Implements;
@@ -127,8 +128,9 @@ public class DeviceService : IDeviceService
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task BulkUploadsAsync(ImportListRequest request)
public async Task<List<string>> BulkUploadsAsync(ImportListRequest request)
{
var errs = new List<string>();
var lst = request.Imports;
var places = await _dbContext.Queryable<BusinessPlaceEntity>().ToListAsync();
@@ -137,14 +139,49 @@ public class DeviceService : IDeviceService
if (form.PlaceeCode != null)
{
var place = places.Where(x => x.Code == form.PlaceeCode).FirstOrDefault();
place.ThrowIfNull($"该设备{form.UniqueNo}配置的营业点营业点不存在!");
if(place == null)
{
errs.Add($"该设备{form.UniqueNo}配置的营业点营业点不存在!");
continue;
}
}
//插入
var exists = await _dbContext.Queryable<DeviceEntity>().Where(x => x.UniqueNo == form.UniqueNo)
.AnyAsync();
exists.ThrowIfTrue("唯一号已经存在");
var template = await CheckTemplateExistsAsync(form.TemplateCode);
await CheckTemplateFieldAsync(form.TemplateCode, form.ConnectionInfo);
if (exists)
{
errs.Add($"设备唯一号{form.UniqueNo}已经存在!");
continue;
}
var entity = await _dbContext.Queryable<DeviceTemplateEntity>().Where(x => x.Code == form.TemplateCode).FirstAsync();
if(entity == null)
{
errs.Add($"设备{form.UniqueNo}配置的模板{form.TemplateCode}不存在!");
continue;
}
var template = await _dbContext.Queryable<DeviceTemplateEntity>().Where(x => x.Code == form.TemplateCode).FirstAsync();
var templateJobj = JObject.Parse(template.Template);
var jobj = JObject.Parse(form.ConnectionInfo);
if(templateJobj.Count != jobj.Count)
{
errs.Add($"设备{form.UniqueNo}的连接参数字段数与模板不一致!");
continue;
}
var a = false;
foreach (var item in templateJobj)
{
if (!jobj.ContainsKey(item.Key))
{
errs.Add($"设备{form.UniqueNo}的连接参数需要和模板一致.缺失{item.Key}!");
a = true;
}
}
if (a)
{
continue;
}
var saveEntity = form.Adapt<DeviceEntity>();
saveEntity.Code = Guid.NewGuid();
@@ -166,7 +203,9 @@ public class DeviceService : IDeviceService
};
await _dbContext.InsertAsync(regis);
}
}
return errs;
}
//******************************************************** help methods **********************************************************
@@ -243,6 +282,7 @@ public class DeviceService : IDeviceService
}
}
/// <summary>
/// 检查唯一号是否存在
/// </summary>