feat 处理设备下访客人员
This commit is contained in:
@@ -140,4 +140,11 @@ public class DevicePermissionsController : ControllerBase
|
||||
{
|
||||
return await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List<string> { userNo });
|
||||
}
|
||||
|
||||
[HttpGet("reset-visitors")]
|
||||
[IgnoreTenant]
|
||||
public async Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo)
|
||||
{
|
||||
return await _devicePermissionService.ResetVisitorsByDeviceAsync(deviceUniqueNo);
|
||||
}
|
||||
}
|
||||
@@ -55,4 +55,6 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
Task<List<string>> GetDeviceUserCodesAsync(string deviceUniqueNo);
|
||||
|
||||
Task<object> ExternalAndManuallyUserNoAsync(string deviceUniqueNo);
|
||||
|
||||
Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo);
|
||||
}
|
||||
@@ -552,4 +552,28 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
.Distinct()
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public async Task<int> ResetVisitorsByDeviceAsync(string deviceUniqueNo)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().SingleAsync(x => x.UniqueNo == deviceUniqueNo);
|
||||
device.ThrowIfNull("设备不存在");
|
||||
|
||||
var userNos = await GetDeviceUserNosFromVisitorAsync(device.Code);
|
||||
var deviceTaskEntities = userNos.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
Type = DeviceTaskEnumType.Add,
|
||||
DeviceType = device.Type,
|
||||
UserId = null,
|
||||
UserNo = x,
|
||||
DeviceUniqueNo = device.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
Source = "手动下发设备中的访客人员",
|
||||
Priority = 0,
|
||||
TenantId = device.TenantId
|
||||
}).ToList();
|
||||
|
||||
return await _dbContext.InsertAsync(deviceTaskEntities);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user