fix 导入优化
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public interface IDeviceService : IScopeDependency
|
||||
|
||||
Task<List<RecentNumberResponse>> GetRecentNumbersAsync();
|
||||
|
||||
Task BulkUploadsAsync(ImportListRequest request);
|
||||
Task<List<string>> BulkUploadsAsync(ImportListRequest request);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user