fix 增加任务详情返回

This commit is contained in:
2024-08-06 13:58:35 +08:00
parent 2abd983b4e
commit e4d0e327eb
5 changed files with 33 additions and 19 deletions

View File

@@ -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>

View File

@@ -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) });
}

View File

@@ -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; }
}

View File

@@ -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>

View File

@@ -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)