test .
This commit is contained in:
@@ -119,18 +119,4 @@ public class DevicePermissionsController : ControllerBase
|
||||
{
|
||||
return await _devicePermissionService.GetGainfoPageByDeviceAsync(request);
|
||||
}
|
||||
|
||||
[DataPermission]
|
||||
[HttpGet("test")]
|
||||
public async Task GetTextData()
|
||||
{
|
||||
await _devicePermissionService.GetTestData();
|
||||
}
|
||||
|
||||
[DataPermission]
|
||||
[HttpGet("test/user")]
|
||||
public async Task GetTestUserNoData()
|
||||
{
|
||||
await _devicePermissionService.GetTestUserNoData();
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
|
||||
namespace Dlhis.Basic.Device.Request;
|
||||
|
||||
@@ -21,4 +22,9 @@ public class DeviceGetAssignmentsRequest
|
||||
/// 分配值
|
||||
/// </summary>
|
||||
public string AssignValue { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备类型
|
||||
/// </summary>
|
||||
public DeviceTypeEnumType Type { get; set; }
|
||||
}
|
||||
@@ -9,10 +9,6 @@ namespace Dlhis.Basic.Device.Services;
|
||||
|
||||
public interface IDevicePermissionService : IScopeDependency
|
||||
{
|
||||
Task<object> GetTestData();
|
||||
|
||||
Task<object> GetTestUserNoData();
|
||||
|
||||
/// <summary>
|
||||
/// 保存设备权限
|
||||
/// </summary>
|
||||
|
||||
@@ -154,104 +154,6 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
return result.FirstOrDefault(x => x.Tenant == _currentUser.GetStringTenantId())?.Codes;
|
||||
}
|
||||
|
||||
public async Task<object> GetTestData()
|
||||
{
|
||||
var userNos = new List<string>();
|
||||
//获取所有人的权限
|
||||
if (userNos.IsEmpty())
|
||||
userNos = await GetPermissionUserNosAsync();
|
||||
|
||||
var before = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||
|
||||
return before;
|
||||
}
|
||||
|
||||
|
||||
public async Task<object> GetTestUserNoData()
|
||||
{
|
||||
var userNos = new List<string>();
|
||||
_dbContext.Client.QueryFilter.ClearAndBackup<ITenantId>();
|
||||
try
|
||||
{
|
||||
//获取所有人的权限
|
||||
if (userNos.IsEmpty())
|
||||
userNos = await GetPermissionUserNosAsync();
|
||||
|
||||
var before = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||
|
||||
//获取业务处理后所有人的权限
|
||||
var nextUserNos = await GetPermissionUserNosAsync();
|
||||
if (nextUserNos.Any())
|
||||
userNos = userNos.Concat(nextUserNos).Distinct().ToList();
|
||||
|
||||
var current = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
||||
|
||||
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();
|
||||
|
||||
foreach (var tenant in tenants)
|
||||
{
|
||||
var currentCodes = currentTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes ?? new();
|
||||
var beforeCodes = beforeTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes ?? new();
|
||||
|
||||
//被删除
|
||||
var deletedItems = beforeCodes.Where(x => !currentCodes.Contains(x)).ToList();
|
||||
//新增
|
||||
var addItems = currentCodes.Where(x => !beforeCodes.Contains(x)).ToList();
|
||||
|
||||
if (!deletedItems.Any() && !addItems.Any())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
CancellationId = 0,
|
||||
DeviceType = devices.First(item => item.Code == x).Type,
|
||||
UserNo = userNo,
|
||||
Version = 0,
|
||||
TenantId = tenant,
|
||||
}).ToList();
|
||||
|
||||
var toAdd = addItems.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Type = DeviceTaskEnumType.Add,
|
||||
DeviceType = devices.First(item => item.Code == x).Type,
|
||||
UserNo = userNo,
|
||||
Version = 0,
|
||||
TenantId = tenant,
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
_dbContext.Client.QueryFilter.Restore();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public async Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos)
|
||||
{
|
||||
//获取所有人的权限
|
||||
@@ -338,10 +240,10 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
}
|
||||
|
||||
_logger.LogInformation("任务产生数量{count}", waitTasks.Count);
|
||||
if (waitTasks.Any())
|
||||
{
|
||||
await _dbContext.InsertAsync(waitTasks);
|
||||
}
|
||||
// if (waitTasks.Any())
|
||||
// {
|
||||
// await _dbContext.InsertAsync(waitTasks);
|
||||
// }
|
||||
}
|
||||
|
||||
public async Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos)
|
||||
|
||||
Reference in New Issue
Block a user