feat 出差人员筛选,移除无用代码

This commit is contained in:
2024-07-04 17:53:53 +08:00
parent 218027ffd4
commit cae9035e4a
12 changed files with 52 additions and 104 deletions

View File

@@ -82,19 +82,16 @@ public class DevicePermissionsController : ControllerBase
{
return await _devicePermissionService.GetAssignmentUniqueAsync(request);
}
/// <summary>
/// 获取就餐设备唯一号权限
/// 获取设备下人员分页
/// </summary>
/// <param name="userNo"></param>
/// <param name="request"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpGet("canteen/uniqueNos")]
[IgnoreTenant]
public async Task<List<string>> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo)
[HttpGet("gainfos/page")]
public async Task<Pagination<GainfoDto>> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request)
{
return await _devicePermissionService.GetCanteenDeviceUniqueNosByUserNoAsync(userNo);
return await _devicePermissionService.GetGainfoPageByDeviceAsync(request);
}
/// <summary>
@@ -121,15 +118,4 @@ public class DevicePermissionsController : ControllerBase
{
return await _devicePermissionService.ReGeneratePermissionUsersInfoAsync(beforeDto);
}
/// <summary>
/// 获取设备下人员分页
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("gainfos/page")]
public async Task<Pagination<GainfoDto>> GetGainfoPageByDeviceAsync([FromQuery] DeviceWithGainfoRequest request)
{
return await _devicePermissionService.GetGainfoPageByDeviceAsync(request);
}
}

View File

@@ -58,18 +58,8 @@ public interface IDevicePermissionService : IScopeDependency
/// <returns></returns>
Task<List<Guid>> GetAssignDeviceCodesAsync(string userNo);
/// <summary>
/// 获取就餐权限唯一号
/// </summary>
/// <param name="userNo"></param>
/// <returns></returns>
Task<List<string>> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo);
Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos);
Task<int> ReGeneratePermissionUsersInfoAsync(PermissionUsersInfoDto beforeDto);
Task<Pagination<GainfoDto>> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request);

View File

@@ -335,18 +335,21 @@ public class DevicePermissionService : IDevicePermissionService
var current = await GetAssignDeviceCodesInternalAsync(userNos);
var deivces = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
var waitTasks = new List<DeviceTaskEntity>();
foreach (var userNo in userNos)
{
before.TryGetValue(userNo, out var beforeTenantDeviceCodes);
beforeTenantDeviceCodes ??= new();
current.TryGetValue(userNo, out var currentTenantDeviceCodes);
currentTenantDeviceCodes ??= new();
var tenants = beforeTenantDeviceCodes.Select(x => x.Tenant).Concat(currentTenantDeviceCodes.Select(x => x.Tenant)).Distinct().ToList();
var tenants = new HashSet<string>();
foreach (var item in beforeTenantDeviceCodes)
tenants.Add(item.Tenant);
foreach (var item in currentTenantDeviceCodes)
tenants.Add(item.Tenant);
foreach (var tenant in tenants)
{
@@ -363,34 +366,33 @@ public class DevicePermissionService : IDevicePermissionService
continue;
}
var deviceCodes = deivces.Where(x => deletedItems.Contains(x.Code) || addItems.Contains(x.Code)).Select(x => x.Code).ToList();
var deviceCodes = devices.Where(x => deletedItems.Contains(x.Code) || addItems.Contains(x.Code)).Select(x => x.Code).ToList();
deletedItems = deletedItems.Where(x => deviceCodes.Contains(x)).ToList();
addItems = addItems.Where(x => deviceCodes.Contains(x)).ToList();
//下发任务创建
var toDeleted = deletedItems.Select(x => new DeviceTaskEntity
deletedItems.ForEach(x => waitTasks.Add(new DeviceTaskEntity
{
DeviceUniqueNo = deivces.First(item => item.Code == x).UniqueNo,
DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
Status = DeviceTaskStatusEnumType.Wait,
Type = DeviceTaskEnumType.Delete,
DeviceType = deivces.First(item => item.Code == x).Type,
CancellationId = 0,
DeviceType = devices.First(item => item.Code == x).Type,
UserNo = userNo,
Version = 0,
TenantId = tenant,
}).ToList();
}));
var toAdd = addItems.Select(x => new DeviceTaskEntity
addItems.ForEach(x => waitTasks.Add(new DeviceTaskEntity
{
DeviceUniqueNo = deivces.First(item => item.Code == x).UniqueNo,
DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
Status = DeviceTaskStatusEnumType.Wait,
Type = DeviceTaskEnumType.Add,
DeviceType = deivces.First(item => item.Code == x).Type,
DeviceType = devices.First(item => item.Code == x).Type,
UserNo = userNo,
Version = 0,
TenantId = tenant,
}).ToList();
waitTasks.AddRange(toDeleted.Concat(toAdd).ToList());
}));
}
}
@@ -481,18 +483,6 @@ public class DevicePermissionService : IDevicePermissionService
await _dbContext.InsertAsync(tasks);
}
public async Task<List<string>> GetCanteenDeviceUniqueNosByUserNoAsync(string userNo)
{
var all = await GetAssignDeviceCodesAsync(userNo);
return await _dbContext.Queryable<DeviceEntity>()
.Where(x => x.Enable)
.Where(x => x.Type == DeviceTypeEnumType.Meal)
.Where(x => all.Contains(x.Code))
.Select(x => x.UniqueNo)
.ToListAsync();
}
/// <summary>
/// 获取用户所有设备权限