feat 获取不在设备中的人员
This commit is contained in:
@@ -545,6 +545,35 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
return toDeleteUserCodes;
|
||||
}
|
||||
|
||||
|
||||
public async Task<List<string>> GetDeviceNotInUsersAsync(string deviceUniqueNo)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().SingleAsync(x => x.UniqueNo == deviceUniqueNo);
|
||||
device.ThrowIfNull("设备不存在");
|
||||
|
||||
var usersQuery = await GetDeviceUsersQueryAsync(deviceUniqueNo, string.Empty, null);
|
||||
var userCodes = (await usersQuery.ToListAsync()).Select(x => x.Code);
|
||||
|
||||
var devicePermissionManuallyUserNos = await GetManuallyDeviceUserNoAsync(device.Code);
|
||||
var visitorUserNos = await GetDeviceUserNosFromVisitorAsync(device.Code);
|
||||
|
||||
var otherUserCodes = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => devicePermissionManuallyUserNos.Contains(x.No) || visitorUserNos.Contains(x.No))
|
||||
.Select(x => x.Code)
|
||||
.ToListAsync();
|
||||
|
||||
var existsUserCodes = userCodes.Concat(otherUserCodes).Distinct().ToList();
|
||||
|
||||
var deviceExistsUserCodes = await _dbContext.Queryable<DeviceUserEntity>()
|
||||
.Where(x => x.DeviceUniqueNo == deviceUniqueNo)
|
||||
.Select(x => x.UserCode)
|
||||
.ToListAsync();
|
||||
|
||||
//获取existsUserCodes不存在deviceExistsUserCodes的工号
|
||||
var toAddUserCodes = existsUserCodes.Except(deviceExistsUserCodes).ToList();
|
||||
return toAddUserCodes;
|
||||
}
|
||||
|
||||
public async Task<int> GenerateDeleteDeviceTasksAsync(string deviceUniqueNo)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().SingleAsync(x => x.UniqueNo == deviceUniqueNo);
|
||||
|
||||
Reference in New Issue
Block a user