fix 增加任务详情返回
This commit is contained in:
@@ -32,9 +32,9 @@ public class DevicePermissionsController : ControllerBase
|
||||
[AssignPermissionLimit]
|
||||
[Transactional]
|
||||
[CrossTenant]
|
||||
public async Task AssignAsync(DevicePermissionSaveRequest request)
|
||||
public async Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request)
|
||||
{
|
||||
await _devicePermissionService.AssignAsync(request);
|
||||
return await _devicePermissionService.AssignAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -37,7 +37,7 @@ public class DevicePermissionSaveRequest : IValidatableObject
|
||||
/// AssignType == AssignTypeEnumType.Department 需要传入
|
||||
/// </summary>
|
||||
public string TenantId { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设备类型
|
||||
/// </summary>
|
||||
@@ -53,7 +53,8 @@ public class DevicePermissionSaveRequest : IValidatableObject
|
||||
yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) });
|
||||
}
|
||||
}
|
||||
else if (AssignType == AssignTypeEnumType.Role)
|
||||
|
||||
if (AssignType == AssignTypeEnumType.Role)
|
||||
{
|
||||
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>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
Task AssignAsync(DevicePermissionSaveRequest request);
|
||||
Task<DevicePermissionAssignResponse> AssignAsync(DevicePermissionSaveRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 分配到设备
|
||||
@@ -38,7 +38,7 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
/// <param name="func"></param>
|
||||
/// <param name="userNos"></param>
|
||||
/// <returns></returns>
|
||||
Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||
Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -25,21 +25,19 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
private readonly IMyDataPermissionService _myDataPermissionService;
|
||||
private readonly ITenantApi _tenantApi;
|
||||
private readonly ICurrentUser _currentUser;
|
||||
private readonly ILogger<DevicePermissionService> _logger;
|
||||
|
||||
public DevicePermissionService(IDbContext dbContext, IMyDataPermissionService myDataPermissionService, ITenantApi tenantApi,
|
||||
ICurrentUser currentUser, ILogger<DevicePermissionService> logger)
|
||||
ICurrentUser currentUser)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
_myDataPermissionService = myDataPermissionService;
|
||||
_tenantApi = tenantApi;
|
||||
_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;
|
||||
var currentTenantId = _currentUser.GetStringTenantId();
|
||||
@@ -160,16 +158,13 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
}).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())
|
||||
userNos = await GetPermissionUserNosAsync();
|
||||
|
||||
var before = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||
_logger.LogInformation("{tenant}任务前置人数{count}", tenantId, userNos.Count);
|
||||
|
||||
//业务处理
|
||||
_dbContext.Client.QueryFilter.Restore();
|
||||
@@ -182,7 +177,6 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
userNos = userNos.Concat(nextUserNos).Distinct().ToList();
|
||||
|
||||
var current = await GetAssignDeviceCodesInternalAsync(userNos);
|
||||
_logger.LogInformation("{tenant}任务后置人数{count}", tenantId, userNos.Count);
|
||||
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
||||
var waitAddTasks = new List<DeviceTaskEntity>();
|
||||
@@ -191,9 +185,9 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
foreach (var userNo in userNos)
|
||||
{
|
||||
before.TryGetValue(userNo, out var beforeTenantDeviceCodes);
|
||||
beforeTenantDeviceCodes ??= new();
|
||||
beforeTenantDeviceCodes ??= new List<UserTenantDeviceCodeDto>();
|
||||
current.TryGetValue(userNo, out var currentTenantDeviceCodes);
|
||||
currentTenantDeviceCodes ??= new();
|
||||
currentTenantDeviceCodes ??= new List<UserTenantDeviceCodeDto>();
|
||||
|
||||
var tenants = new HashSet<string>();
|
||||
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())
|
||||
{
|
||||
await _dbContext.InsertAsync(waitAddTasks);
|
||||
@@ -258,6 +251,12 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
{
|
||||
await _dbContext.InsertAsync(waitDeleteTasks);
|
||||
}
|
||||
|
||||
return new DevicePermissionAssignResponse
|
||||
{
|
||||
AddCount = waitAddTasks.Count,
|
||||
DeleteCount = waitDeleteTasks.Count
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<PermissionUsersInfoDto> GetPermissionUsersInfoAsync(List<string> userNos)
|
||||
|
||||
Reference in New Issue
Block a user