fix 处理已知问题
This commit is contained in:
@@ -17,25 +17,35 @@ namespace Dlhis.Basic.Device.Services.Implements;
|
||||
public class DeviceConnectService : IDeviceConnectService
|
||||
{
|
||||
private readonly IDbContext _dbContext;
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
|
||||
public DeviceConnectService(IDbContext dbContext, IHttpContextAccessor httpContextAccessor)
|
||||
public DeviceConnectService(IDbContext dbContext)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
}
|
||||
|
||||
|
||||
public async Task<string> RegisterAsync(DeviceResigterRequest request)
|
||||
{
|
||||
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.CustomCode == request.BusinessCustomCode).FirstAsync();
|
||||
var businessPlace = await _dbContext.Queryable<BusinessPlaceEntity>().Where(x => x.CustomCode == request.BusinessCustomCode).SingleAsync();
|
||||
businessPlace.ThrowIfNull("营业点不存在");
|
||||
|
||||
var device = await GetEnableDeviceAsync(request.UniqueNo, false, request.DeployPlace, businessPlace.TenantId);
|
||||
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).FirstAsync();
|
||||
if (device.DeployPlace.Equals("AUTO", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
device.DeployPlace = businessPlace.Name;
|
||||
await _dbContext.UpdateAsync(device);
|
||||
}
|
||||
|
||||
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync();
|
||||
|
||||
if (registry != null)
|
||||
{
|
||||
registry.LastHeartbeatTime = DateTime.Now;
|
||||
registry.RegisterTime = DateTime.Now;
|
||||
registry.BusinessPlaceCode = businessPlace.Code;
|
||||
|
||||
await _dbContext.UpdateAsync(registry);
|
||||
|
||||
return "请勿重复注册设备";
|
||||
}
|
||||
|
||||
@@ -48,12 +58,6 @@ public class DeviceConnectService : IDeviceConnectService
|
||||
TenantId = device.TenantId
|
||||
};
|
||||
|
||||
if (device.DeployPlace == "AUTO")
|
||||
{
|
||||
device.DeployPlace = businessPlace.Name;
|
||||
await _dbContext.UpdateAsync(device);
|
||||
}
|
||||
|
||||
await _dbContext.InsertAsync(registry);
|
||||
return "设备注册成功";
|
||||
}
|
||||
@@ -156,9 +160,7 @@ public class DeviceConnectService : IDeviceConnectService
|
||||
/// <returns></returns>
|
||||
private async Task<DeviceEntity> GetEnableDeviceAsync(string uniqueNo, bool checkExists = true, string deployPlace = "", string tenantId = "")
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>()
|
||||
.Where(x => x.UniqueNo == uniqueNo)
|
||||
.FirstAsync();
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.UniqueNo == uniqueNo).SingleAsync();
|
||||
|
||||
if (checkExists)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user