fix 增加任务详情返回
This commit is contained in:
@@ -32,9 +32,9 @@ public class DevicePermissionsController : ControllerBase
|
|||||||
[AssignPermissionLimit]
|
[AssignPermissionLimit]
|
||||||
[Transactional]
|
[Transactional]
|
||||||
[CrossTenant]
|
[CrossTenant]
|
||||||
public async Task AssignAsync(DevicePermissionSaveRequest request)
|
public async Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request)
|
||||||
{
|
{
|
||||||
await _devicePermissionService.AssignAsync(request);
|
return await _devicePermissionService.AssignAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ public class DevicePermissionSaveRequest : IValidatableObject
|
|||||||
yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) });
|
yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (AssignType == AssignTypeEnumType.Role)
|
|
||||||
|
if (AssignType == AssignTypeEnumType.Role)
|
||||||
{
|
{
|
||||||
yield return new ValidationResult("暂不支持角色分配", new[] { nameof(AssignType) });
|
yield return new ValidationResult("暂不支持角色分配", new[] { nameof(AssignType) });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
namespace Dlhis.Basic.Device.Response;
|
||||||
|
|
||||||
|
public class DevicePermissionAssignResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 添加数量
|
||||||
|
/// </summary>
|
||||||
|
public int AddCount { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除数量
|
||||||
|
/// </summary>
|
||||||
|
public int DeleteCount { get; set; }
|
||||||
|
}
|
||||||
@@ -14,7 +14,7 @@ public interface IDevicePermissionService : IScopeDependency
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="request"></param>
|
/// <param name="request"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task AssignAsync(DevicePermissionSaveRequest request);
|
Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 分配到设备
|
/// 分配到设备
|
||||||
@@ -38,7 +38,7 @@ public interface IDevicePermissionService : IScopeDependency
|
|||||||
/// <param name="func"></param>
|
/// <param name="func"></param>
|
||||||
/// <param name="userNos"></param>
|
/// <param name="userNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -25,21 +25,19 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
private readonly IMyDataPermissionService _myDataPermissionService;
|
private readonly IMyDataPermissionService _myDataPermissionService;
|
||||||
private readonly ITenantApi _tenantApi;
|
private readonly ITenantApi _tenantApi;
|
||||||
private readonly ICurrentUser _currentUser;
|
private readonly ICurrentUser _currentUser;
|
||||||
private readonly ILogger<DevicePermissionService> _logger;
|
|
||||||
|
|
||||||
public DevicePermissionService(IDbContext dbContext, IMyDataPermissionService myDataPermissionService, ITenantApi tenantApi,
|
public DevicePermissionService(IDbContext dbContext, IMyDataPermissionService myDataPermissionService, ITenantApi tenantApi,
|
||||||
ICurrentUser currentUser, ILogger<DevicePermissionService> logger)
|
ICurrentUser currentUser)
|
||||||
{
|
{
|
||||||
_dbContext = dbContext;
|
_dbContext = dbContext;
|
||||||
_myDataPermissionService = myDataPermissionService;
|
_myDataPermissionService = myDataPermissionService;
|
||||||
_tenantApi = tenantApi;
|
_tenantApi = tenantApi;
|
||||||
_currentUser = currentUser;
|
_currentUser = currentUser;
|
||||||
_logger = logger;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task AssignAsync(DevicePermissionSaveRequest request)
|
public async Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request)
|
||||||
{
|
{
|
||||||
await GenerateDeviceTasksAsync(async () =>
|
return await GenerateDeviceTasksAsync(async () =>
|
||||||
{
|
{
|
||||||
request.AssignValue = request.AssignType == AssignTypeEnumType.Department ? request.TenantId + ":" + request.AssignValue : request.AssignValue;
|
request.AssignValue = request.AssignType == AssignTypeEnumType.Department ? request.TenantId + ":" + request.AssignValue : request.AssignValue;
|
||||||
var currentTenantId = _currentUser.GetStringTenantId();
|
var currentTenantId = _currentUser.GetStringTenantId();
|
||||||
@@ -160,16 +158,13 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos)
|
public async Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos)
|
||||||
{
|
{
|
||||||
var tenantId = _currentUser.GetStringTenantId();
|
|
||||||
|
|
||||||
//获取所有人的权限
|
//获取所有人的权限
|
||||||
if (userNos.IsEmpty())
|
if (userNos.IsEmpty())
|
||||||
userNos = await GetPermissionUserNosAsync();
|
userNos = await GetPermissionUserNosAsync();
|
||||||
|
|
||||||
var before = await GetAssignDeviceCodesInternalAsync(userNos);
|
var before = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||||
_logger.LogInformation("{tenant}任务前置人数{count}", tenantId, userNos.Count);
|
|
||||||
|
|
||||||
//业务处理
|
//业务处理
|
||||||
_dbContext.Client.QueryFilter.Restore();
|
_dbContext.Client.QueryFilter.Restore();
|
||||||
@@ -182,7 +177,6 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
userNos = userNos.Concat(nextUserNos).Distinct().ToList();
|
userNos = userNos.Concat(nextUserNos).Distinct().ToList();
|
||||||
|
|
||||||
var current = await GetAssignDeviceCodesInternalAsync(userNos);
|
var current = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||||
_logger.LogInformation("{tenant}任务后置人数{count}", tenantId, userNos.Count);
|
|
||||||
|
|
||||||
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
||||||
var waitAddTasks = new List<DeviceTaskEntity>();
|
var waitAddTasks = new List<DeviceTaskEntity>();
|
||||||
@@ -191,9 +185,9 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
foreach (var userNo in userNos)
|
foreach (var userNo in userNos)
|
||||||
{
|
{
|
||||||
before.TryGetValue(userNo, out var beforeTenantDeviceCodes);
|
before.TryGetValue(userNo, out var beforeTenantDeviceCodes);
|
||||||
beforeTenantDeviceCodes ??= new();
|
beforeTenantDeviceCodes ??= new List<UserTenantDeviceCodeDto>();
|
||||||
current.TryGetValue(userNo, out var currentTenantDeviceCodes);
|
current.TryGetValue(userNo, out var currentTenantDeviceCodes);
|
||||||
currentTenantDeviceCodes ??= new();
|
currentTenantDeviceCodes ??= new List<UserTenantDeviceCodeDto>();
|
||||||
|
|
||||||
var tenants = new HashSet<string>();
|
var tenants = new HashSet<string>();
|
||||||
foreach (var item in beforeTenantDeviceCodes)
|
foreach (var item in beforeTenantDeviceCodes)
|
||||||
@@ -248,7 +242,6 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_logger.LogInformation("{tenant}任务产生新增数量{addCount},删除数量:{delteCount}", tenantId, waitAddTasks.Count, waitDeleteTasks.Count);
|
|
||||||
if (waitAddTasks.Any())
|
if (waitAddTasks.Any())
|
||||||
{
|
{
|
||||||
await _dbContext.InsertAsync(waitAddTasks);
|
await _dbContext.InsertAsync(waitAddTasks);
|
||||||
@@ -258,6 +251,12 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
{
|
{
|
||||||
await _dbContext.InsertAsync(waitDeleteTasks);
|
await _dbContext.InsertAsync(waitDeleteTasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new DevicePermissionAssignResponse
|
||||||
|
{
|
||||||
|
AddCount = waitAddTasks.Count,
|
||||||
|
DeleteCount = waitDeleteTasks.Count
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos)
|
public async Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos)
|
||||||
|
|||||||
Reference in New Issue
Block a user