feat 获取设备权限人员接口

This commit is contained in:
2024-06-24 17:41:04 +08:00
parent 596d2a2805
commit 9c705075bd
4 changed files with 48 additions and 0 deletions

View File

@@ -70,6 +70,18 @@ public class DevicePermissionsController : ControllerBase
{
return await _devicePermissionService.GetAssignmentsAsync(request.UniqueType, request.AssignType, request.AssignValue);
}
/// <summary>
/// 当前类型的权限分配
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[DataPermission]
[HttpGet("assignments-unique")]
public async Task<List<GainfoDto>> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request)
{
return await _devicePermissionService.GetAssignmentUniqueAsync(request);
}
/// <summary>

View File

@@ -27,4 +27,18 @@ public class DeviceGetAssignmentsRequest
/// 设备类型
/// </summary>
public DeviceTypeEnumType Type { get; set; }
}
public class DeviceGetAssignmentUniquesRequest
{
/// <summary>
/// 权限分配类型 DeviceAssignmentTypeEnumType
/// </summary>
[EnumDataType(typeof(DeviceAssignmentTypeEnumType))]
public DeviceAssignmentTypeEnumType UniqueType { get; set; }
/// <summary>
///
/// </summary>
public Guid UniqueValue { get; set; }
}

View File

@@ -34,6 +34,8 @@ public interface IDevicePermissionService : IScopeDependency
/// <returns></returns>
Task<List<Guid>> GetAssignmentsAsync(DeviceAssignmentTypeEnumType uniqueType, AssignTypeEnumType assignType, string assignValue);
Task<List<GainfoDto>> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request);
/// <summary>
/// 生成下发任务

View File

@@ -180,6 +180,26 @@ public class DevicePermissionService : IDevicePermissionService
return result.FirstOrDefault(x => x.Tenant == _currentUser.GetStringTenantId())?.Codes;
}
public async Task<List<GainfoDto>> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request)
{
var nos = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.UniqueType == request.UniqueType)
.Where(x => x.UniqueValue == request.UniqueValue)
.Where(x => x.AssignType == AssignTypeEnumType.User)
.Select(x => x.AssignValue)
.ToListAsync();
return await _dbContext.Queryable<GainfoEntity>().Where(x => nos.Contains(x.No)).Select(x => new GainfoDto
{
Id = x.Id,
Code = x.Code,
Name = x.Name,
Workplace = x.Workplace,
Factory = x.Factory
}).ToListAsync();
}
public async Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos)
{
var tenantId = _currentUser.GetStringTenantId();