fix 查询人员权限

This commit is contained in:
2024-12-12 16:30:43 +08:00
parent 5103c5adbb
commit 9f63d4f938
15 changed files with 258 additions and 132 deletions

View File

@@ -33,7 +33,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
}
public async Task<List<DevicePermissionEntity>> GetDevicePermissions(DevicePermissionSaveRequest request)
public async Task<List<DevicePermissionEntity>> GetDevicePermissionsAsync(DevicePermissionSaveRequest request)
{
var currentTenantId = await GetCurrentFactoryAsync(request);
(bool enableDeviceFilter, List<Guid> deviceCodes) = _myDataPermissionService.GetMyDeviceCodes();
@@ -196,7 +196,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
IgnoreUniqueType = ignoreUniqueType
};
var codes = GetAssignDeviceCodesInternal(analyzePack,
var codes = GetAssignDeviceCodesPermissions(analyzePack,
gainfoGroups,
devicePermissions,
deviceGroups,
@@ -210,7 +210,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
}
private static IEnumerable<TenantAssignTypeDeviceCode> GetAssignDeviceCodesInternal(
private static IEnumerable<TenantAssignTypeDeviceCode> GetAssignDeviceCodesPermissions(
AnalyzePackDto analyzePack,
List<GainfoGroupEntity> gainfoGroups,
List<DevicePermissionDto> devicePermissions,
@@ -366,18 +366,17 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
public async Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request)
{
var currentAssignValue = request.AssignType == AssignTypeEnumType.Department ? request.TenantId + ":" + request.AssignValue : request.AssignValue;
var r = await GetDevicePermissionsAsync(new DevicePermissionSaveRequest
{
AssignType = request.AssignType,
AssignValue = request.AssignValue,
UniqueType = request.UniqueType,
Codes = null,
TenantId = request.TenantId,
Type = request.Type
});
(bool enableFilter, List<Guid> deviceCodes) = _myDataPermissionService.GetMyDeviceCodes();
return await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.AssignType == request.AssignType)
.Where(x => x.AssignValue == currentAssignValue)
.Where(x => x.UniqueType == request.UniqueType)
.WhereIF(enableFilter && request.UniqueType == DeviceAssignmentTypeEnumType.Device, x => deviceCodes.Contains(x.UniqueValue))
.Where(x => x.Type == request.Type)
.Select(x => x.UniqueValue)
.ToListAsync();
return r.Select(x => x.UniqueValue).ToList();
}
public async Task<List<GainfoDto>> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request)