diff --git a/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs b/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs deleted file mode 100644 index e89b9c8a..00000000 --- a/Src/Dlhis.Basic.Api/Dto/PermissionUsersInfoDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Dlhis.Basic.Api.Dto; - -public class PermissionUsersInfoDto -{ - /// - /// 拥有权限的用户 - /// - public List UserNos { get; set; } - - /// - /// 用户对应的 [ 厂区--设备Code ] - /// - public Dictionary> PermissionInfos { get; set; } -} \ No newline at end of file diff --git a/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs b/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs deleted file mode 100644 index 70578e86..00000000 --- a/Src/Dlhis.Basic.Api/Dto/UserTenantDeviceCodeDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Dlhis.Basic.Api.Dto; - -public class UserTenantDeviceCodeDto -{ - /// - /// 租户 - /// - public string Tenant { get; set; } - - /// - /// 设备权限 - /// - public List Codes { get; set; } -} diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index b7a655aa..ba2f97c9 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -1,5 +1,4 @@ using Dlhis.Basic.Device.Dtos; -using Dlhis.Basic.Device.Filters; using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Services; @@ -31,7 +30,6 @@ public class DevicePermissionsController : ControllerBase /// /// [HttpPost("assign")] - [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task AssignAsync(DevicePermissionSaveRequest request) @@ -44,7 +42,6 @@ public class DevicePermissionsController : ControllerBase /// /// [HttpPost("assign-unique")] - [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request) @@ -52,14 +49,14 @@ public class DevicePermissionsController : ControllerBase return await _devicePermissionService.AssignToUniqueAsync(request); } - [AllowAnonymous] - [HttpPost("assign-unique-import")] - [Transactional] - [IgnoreTenant] - public async Task AssignToUniqueImportAsync(IFormFile file) - { - await _devicePermissionService.AssignToUniqueImportAsync(file); - } + // [AllowAnonymous] + // [HttpPost("assign-unique-import")] + // [Transactional] + // [IgnoreTenant] + // public async Task AssignToUniqueImportAsync(IFormFile file) + // { + // await _devicePermissionService.AssignToUniqueImportAsync(file); + // } /// /// 当前类型的权限分配 diff --git a/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs b/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs index 8876e200..69267478 100644 --- a/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs +++ b/Src/Dlhis.Basic/Device/Dtos/TenantAssignTypeDeviceCode.cs @@ -38,17 +38,4 @@ public class AssignTypeDeviceCode public List Codes { get; set; } public List OriginalCodes { get; set; } -} - -public class UserTenantDeviceCodeDto -{ - /// - /// 租户 - /// - public string Tenant { get; set; } - - /// - /// 设备权限 - /// - public IEnumerable Codes { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs b/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs deleted file mode 100644 index 2c621773..00000000 --- a/Src/Dlhis.Basic/Device/Filters/AssignPermissionLimitAttribute.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Kurisu.AspNetCore.Authentication.Abstractions; -using Kurisu.AspNetCore.Cache; -using Kurisu.AspNetCore.Utils.Extensions; -using Microsoft.AspNetCore.Mvc.Filters; - -namespace Dlhis.Basic.Device.Filters; - -[AttributeUsage(AttributeTargets.Method)] -public class AssignPermissionLimitAttribute : Attribute, IAsyncActionFilter -{ - public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) - { - // var currentUser = context.HttpContext.RequestServices.GetRequiredService(); - // var redisCache = context.HttpContext.RequestServices.GetRequiredService(); - // - // var currentTenantId = currentUser.GetStringTenantId(); - // - // await using var handler = await redisCache.LockAsync($"permission:generate:{currentTenantId}", expiry: TimeSpan.FromMinutes(3)); - // handler.Acquired.ThrowIfFalse("请勿频繁分配"); - await next(); - } -} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs index a69fbd20..e47ef14e 100644 --- a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs @@ -56,11 +56,10 @@ public class DeviceGetAssignmentUniquesRequest public DeviceAssignmentTypeEnumType UniqueType { get; set; } /// - /// + /// 权限值 /// public Guid UniqueValue { get; set; } - /// /// 设备类型 /// diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs index 770e99f3..dc6eb6ea 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionAnalyzeService.cs @@ -1,6 +1,5 @@ using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Request; -using Dlhis.Basic.Device.Response; using Dlhis.Basic.Organization.Dto; using Dlhis.Entity.Sys.Entities; using Dlhis.Entity.Sys.Enums; @@ -12,22 +11,42 @@ namespace Dlhis.Basic.Device.Services; /// public interface IDevicePermissionAnalyzeService : IScopeDependency { + /// + /// 获取存储的设备权限(原始数据) + /// + /// + /// Task> GetDevicePermissionsAsync(DevicePermissionSaveRequest request); - Task GenerateDeviceTasksAsync(Func func, List userNos, string source); - + /// + /// 获取设备权限codes(原始数据) + /// + /// + /// Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request); + /// + /// 获取设备分配的人(按人员) + /// + /// + /// Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request); - Task> GetAssignDeviceCodesAsync(string userNo); - - - Task>> GetUserAssignDeviceCodesInTenantAsync( - List userNos, - DeviceAssignmentTypeEnumType? ignoreUniqueType = null, - string ignoreAssignValue = null, AssignTypeEnumType? ignoreAssignType = null); + /// + /// 获取人员所有权限codes + /// + /// + /// + Task> GetUserPermissionDeviceCodesAsync(string userNo); + /// + /// 获取人员权限(人员--(厂区--分配方式--设备codes)) + /// + /// + /// + /// + /// + /// Task>> GetUserAssignDeviceCodesWithTypeInTenantAsync( List userNos, DeviceAssignmentTypeEnumType? ignoreUniqueType = null, diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs index e2a6149b..21851ee5 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionManuallyService.cs @@ -4,11 +4,29 @@ using Kurisu.AspNetCore.DataAccess.Dto; namespace Dlhis.Basic.Device.Services; +/// +/// 例外人员权限分配 +/// public interface IDevicePermissionManuallyService : IScopeDependency { + /// + /// 获取例外分配分页 + /// + /// + /// Task> GetPageAsync(PageDto requestDto); - + + /// + /// 添加例外 + /// + /// + /// Task AddAsync(DevicePermissionManuallyAddRequest request); + /// + /// 删除例外 + /// + /// + /// Task DeleteAsync(long id); } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index 1e9b597f..921c50cf 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -21,12 +21,8 @@ public interface IDevicePermissionService : IScopeDependency /// /// Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request); - - - Task AssignToUniqueImportAsync(IFormFile file); - - - Task>> GetUserDevicePermissionsAsync(string code); + + //Task AssignToUniqueImportAsync(IFormFile file); /// /// 生成下发任务(主动生成) diff --git a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs index 11171b85..1a3ad660 100644 --- a/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDeviceTimePeriodService.cs @@ -5,15 +5,45 @@ using Kurisu.AspNetCore.DataAccess.Dto; namespace Dlhis.Basic.Device.Services; +/// +/// 设备时段码服务 +/// public interface IDeviceTimePeriodService : IScopeDependency { + /// + /// 时段码配置 + /// + /// + /// Task> GetPageAsync(DeviceTimePeriodPageRequest request); + /// + /// 保存时段码 + /// + /// + /// Task SaveAsync(DeviceTimePeriodSaveRequest request); + /// + /// 获取时段码配置 + /// + /// + /// + /// Task> GetListAsync(DeviceTimePeriodAssignEnumType assignType, Guid value); + /// + /// 删除时段码 + /// + /// + /// Task DeleteCardTypeAsync(DeviceTimePeriodDeleteCardTypeRequest request); + /// + /// 生成时段码 + /// + /// + /// + /// Task GenerateDeviceTimePeriodTasksAsync(Func func, string source); } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs index 65f7d99a..e448ce5e 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs @@ -2,7 +2,6 @@ using System.Collections.Concurrent; using Dlhis.Basic.DataPermissions; using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Request; -using Dlhis.Basic.Device.Response; using Dlhis.Basic.Organization.Dto; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Enums; @@ -11,7 +10,6 @@ using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Entities; using Dlhis.Entity.Sys.Enums; using Kurisu.AspNetCore.Authentication.Abstractions; -using Kurisu.AspNetCore.DataAccess.Entity; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.Utils.Extensions; @@ -34,8 +32,9 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService public async Task> GetDevicePermissionsAsync(DevicePermissionSaveRequest request) { - var currentTenantId = await GetCurrentFactoryAsync(request); + var currentTenantId = await GetCurrentFactoryAsync(request.UniqueType, request.Codes); + //获取当前查询的配置 var setting = _dbContext.GetQueryableSetting(); var query = _dbContext.Queryable().Where(x => x.AssignType == request.AssignType @@ -43,6 +42,8 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService && x.UniqueType == request.UniqueType && x.Type == request.Type && x.TenantId == currentTenantId); + + //根据数据权限进行过滤 if (setting.GetEnableDataPermission()) { (bool enableDeviceFilter, List deviceCodes) = _myDataPermissionService.GetMyDeviceCodes(); @@ -54,102 +55,32 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService } return await query.ToListAsync(); - } - private async Task GetCurrentFactoryAsync(DevicePermissionSaveRequest request) - { - var currentTenantId = _currentUser.GetStringTenantId(); - var r = request.UniqueType switch + //获取当前的操作人的基地 + async Task GetCurrentFactoryAsync(DeviceAssignmentTypeEnumType uniqueType, List codes) { - DeviceAssignmentTypeEnumType.Device => await _dbContext.Queryable().Where(x => request.Codes.Contains(x.Code)).Where(x => x.TenantId != currentTenantId).AnyAsync(), - DeviceAssignmentTypeEnumType.Group => await _dbContext.Queryable().Where(x => request.Codes.Contains(x.Code)).Where(x => x.TenantId != currentTenantId).AnyAsync(), - _ => false - }; + var internalCurrentTenantId = _currentUser.GetStringTenantId(); - r.ThrowIfTrue("存在设备或者设备组不属于当前厂区,操作失败!"); - - return currentTenantId; - } - - - public async Task GenerateDeviceTasksAsync(Func func, List userNos, string source) - { - var before = await GetUserAssignDeviceCodesInTenantAsync(userNos); - - //业务处理 - _dbContext.Client.QueryFilter.Restore(); - await func(); - _dbContext.Client.QueryFilter.ClearAndBackup(); - - var current = await GetUserAssignDeviceCodesInTenantAsync(userNos); - - var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); - - var waitAddTasks = new List(); - var waitDeleteTasks = new List(); - - foreach (var userNo in userNos) - { - var beforeTenantDeviceCodes = before[userNo].ToList(); - var currentTenantDeviceCodes = current[userNo].ToList(); - - var tenants = new HashSet(); - foreach (var item in beforeTenantDeviceCodes) - tenants.Add(item.Tenant); - foreach (var item in currentTenantDeviceCodes) - tenants.Add(item.Tenant); - - foreach (var tenant in tenants) + var r = uniqueType switch { - var currentCodes = currentTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes?.ToList() ?? new List(); - var beforeCodes = beforeTenantDeviceCodes.FirstOrDefault(x => x.Tenant == tenant)?.Codes?.ToList() ?? new List(); + DeviceAssignmentTypeEnumType.Device => await _dbContext.Queryable().Where(x => codes.Contains(x.Code)).Where(x => x.TenantId != internalCurrentTenantId).AnyAsync(), + DeviceAssignmentTypeEnumType.Group => await _dbContext.Queryable().Where(x => codes.Contains(x.Code)).Where(x => x.TenantId != internalCurrentTenantId).AnyAsync(), + _ => false + }; - //被删除 - var deletedItems = beforeCodes.Where(x => !currentCodes.Contains(x)).ToList(); - //新增 - var addItems = currentCodes.Where(x => !beforeCodes.Contains(x)).ToList(); + r.ThrowIfTrue("存在设备或者设备组不属于当前厂区,操作失败!"); - if (!deletedItems.Any() && !addItems.Any()) - { - continue; - } - - var deviceCodes = devices.Where(x => deletedItems.Contains(x.Code) || addItems.Contains(x.Code)).Select(x => x.Code).ToList(); - deletedItems = deletedItems.Where(x => deviceCodes.Contains(x)).ToList(); - addItems = addItems.Where(x => deviceCodes.Contains(x)).ToList(); - - //下发任务创建 - deletedItems.ForEach(x => waitDeleteTasks.Add(new DeviceTaskEntity - { - DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo, - Status = DeviceTaskStatusEnumType.Wait, - Type = DeviceTaskEnumType.Delete, - DeviceType = devices.First(item => item.Code == x).Type, - UserNo = userNo, - Version = 0, - TenantId = tenant, - Source = source - })); - - addItems.ForEach(x => waitAddTasks.Add(new DeviceTaskEntity - { - DeviceUniqueNo = devices.First(item => item.Code == x).UniqueNo, - Status = DeviceTaskStatusEnumType.Wait, - Type = DeviceTaskEnumType.Add, - DeviceType = devices.First(item => item.Code == x).Type, - UserNo = userNo, - Version = 0, - TenantId = tenant, - Source = source - })); - } + return internalCurrentTenantId; } + } - await ChunkInsertAsync(waitAddTasks); - await ChunkInsertAsync(waitDeleteTasks); - - return new DevicePermissionAssignResponse(waitAddTasks.Count, waitDeleteTasks.Count); + public async Task> GetUserPermissionDeviceCodesAsync(string userNo) + { + var result = await GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo }); + return result.Count == 0 + ? new List() + : result[userNo].SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); } @@ -344,33 +275,6 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService return r; } - private async Task ChunkInsertAsync(List batch) where T : class, new() - { - foreach (var tasks in batch.Chunk(500)) - { - await _dbContext.InsertAsync(tasks.ToList()); - } - } - - - public async Task>> GetUserAssignDeviceCodesInTenantAsync( - List userNos, - DeviceAssignmentTypeEnumType? ignoreUniqueType = null, - string ignoreAssignValue = null, AssignTypeEnumType? ignoreAssignType = null) - { - var result = await GetUserAssignDeviceCodesWithTypeInTenantAsync(userNos, ignoreUniqueType, ignoreAssignValue, ignoreAssignType); - - return result.ToDictionary(x => x.Key, x => x.Value.GroupBy(p => p.Tenant).Select(item => - { - return new UserTenantDeviceCodeDto - { - Tenant = item.Key, - Codes = item.SelectMany(p => p.AssignTypes).SelectMany(p => p.Codes).Distinct().ToList(), - }; - }).ToList()); - } - - public async Task> GetAssignmentsAsync(DeviceGetAssignmentsRequest request) { var r = await GetDevicePermissionsAsync(new DevicePermissionSaveRequest @@ -405,10 +309,4 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService Factory = x.Factory }).ToListAsync(); } - - public async Task> GetAssignDeviceCodesAsync(string userNo) - { - var result = await GetUserAssignDeviceCodesInTenantAsync(new List { userNo }); - return result.First().Value.SelectMany(x => x.Codes).ToList(); - } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 91d0ddbf..882a39a7 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -156,81 +156,64 @@ public class DevicePermissionService : IDevicePermissionService return new DevicePermissionAssignResponse(tasksToAdd.Count, tasksToDelete.Count); } - /// - public async Task AssignToUniqueImportAsync(IFormFile file) - { - var deviceNo = Path.GetFileNameWithoutExtension(file.FileName); - - var device = await _dbContext.Queryable().Where(x => x.UniqueNo == deviceNo).SingleAsync(); - device.ThrowIfNull("设备不存在"); - - ExcelPackage.LicenseContext = LicenseContext.NonCommercial; - using (var package = new ExcelPackage(file.OpenReadStream())) - { - ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; - int rowCount = worksheet.Dimension.Rows; // 获取行数 - int colCount = worksheet.Dimension.Columns; // 获取列数 - - var list = new List(); - for (int i = 1; i < rowCount; i++) - { - var userCode = worksheet.Cells[i + 1, 2].GetCellValue(); - list.Add(userCode); - } - - foreach (var items in list.Chunk(500)) - { - var gainfoNos = await _dbContext.Queryable().Where(x => items.Contains(x.Code)).Select(x => x.No).ToListAsync(); - - var permissions = gainfoNos.Select(x => new DevicePermissionEntity - { - AssignType = AssignTypeEnumType.User, - AssignValue = x, - UniqueType = DeviceAssignmentTypeEnumType.Device, - UniqueValue = device.Code, - Type = device.Type, - TenantId = device.TenantId, - IsDeleted = false - }).ToList(); - - await _dbContext.InsertAsync(permissions); - - var tasks = permissions.Select(x => new DeviceTaskEntity - { - Type = DeviceTaskEnumType.Add, - DeviceType = x.Type, - UserId = null, - UserNo = x.AssignValue, - DeviceUniqueNo = device.UniqueNo, - Status = DeviceTaskStatusEnumType.Wait, - Version = 0, - ResultMessage = null, - Source = "人员分配到设备import", - Priority = 0, - TenantId = device.TenantId, - }).ToList(); - - await _dbContext.InsertAsync(tasks); - } - } - } - - /// - public async Task>> GetUserDevicePermissionsAsync(string code) - { - var userNo = await _dbContext.Queryable().Where(x => x.Code == code).Select(x => x.No).SingleAsync(); - var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { userNo }); - - return result.ToDictionary(x => x.Key, x => x.Value.GroupBy(p => p.Tenant).Select(item => - { - return new UserTenantDeviceCodeDto - { - Tenant = item.Key, - Codes = item.SelectMany(p => p.AssignTypes).SelectMany(p => p.Codes).Distinct().ToList(), - }; - })); - } - + // /// + // public async Task AssignToUniqueImportAsync(IFormFile file) + // { + // var deviceNo = Path.GetFileNameWithoutExtension(file.FileName); + // + // var device = await _dbContext.Queryable().Where(x => x.UniqueNo == deviceNo).SingleAsync(); + // device.ThrowIfNull("设备不存在"); + // + // ExcelPackage.LicenseContext = LicenseContext.NonCommercial; + // using (var package = new ExcelPackage(file.OpenReadStream())) + // { + // ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; + // int rowCount = worksheet.Dimension.Rows; // 获取行数 + // int colCount = worksheet.Dimension.Columns; // 获取列数 + // + // var list = new List(); + // for (int i = 1; i < rowCount; i++) + // { + // var userCode = worksheet.Cells[i + 1, 2].GetCellValue(); + // list.Add(userCode); + // } + // + // foreach (var items in list.Chunk(500)) + // { + // var gainfoNos = await _dbContext.Queryable().Where(x => items.Contains(x.Code)).Select(x => x.No).ToListAsync(); + // + // var permissions = gainfoNos.Select(x => new DevicePermissionEntity + // { + // AssignType = AssignTypeEnumType.User, + // AssignValue = x, + // UniqueType = DeviceAssignmentTypeEnumType.Device, + // UniqueValue = device.Code, + // Type = device.Type, + // TenantId = device.TenantId, + // IsDeleted = false + // }).ToList(); + // + // await _dbContext.InsertAsync(permissions); + // + // var tasks = permissions.Select(x => new DeviceTaskEntity + // { + // Type = DeviceTaskEnumType.Add, + // DeviceType = x.Type, + // UserId = null, + // UserNo = x.AssignValue, + // DeviceUniqueNo = device.UniqueNo, + // Status = DeviceTaskStatusEnumType.Wait, + // Version = 0, + // ResultMessage = null, + // Source = "人员分配到设备import", + // Priority = 0, + // TenantId = device.TenantId, + // }).ToList(); + // + // await _dbContext.InsertAsync(tasks); + // } + // } + // } public async Task> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request) { diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs index 71997067..6b819a1a 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceTimePeriodService.cs @@ -190,9 +190,10 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService DeviceUniqueNo = deviceUniqueNo, Status = DeviceTaskStatusEnumType.Wait, Version = 0, + ResultMessage = null, Source = source, Priority = 90, - TenantId = device.TenantId + TenantId = device.TenantId, }); break; diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs index 7dc4db28..2e3f849f 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoGroupsController.cs @@ -1,5 +1,4 @@ -using Dlhis.Basic.Device.Filters; -using Dlhis.Basic.Device.Response; +using Dlhis.Basic.Device.Response; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; @@ -75,7 +74,6 @@ public class GainfoGroupsController : ControllerBase /// /// [HttpPost("assign")] - [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task AssignGainfosAsync(GainfoAssignRequest request) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index d2d24271..5d416a89 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -169,7 +169,7 @@ public class GainfoPermissionService : IGainfoPermissionService //获取人员的设备权限 if (deviceCodes.IsEmpty()) { - deviceCodes = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(gainfo!.No); + deviceCodes = await _devicePermissionAnalyzeService.GetUserPermissionDeviceCodesAsync(gainfo!.No); } var devices = await _dbContext.Queryable().Where(x => deviceCodes.Contains(x.Code)).ToListAsync(); diff --git a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs index fdc8d006..14eb15a0 100644 --- a/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs +++ b/Src/Dlhis.Basic/Places/Controllers/BusinessPlacesController.cs @@ -1,5 +1,4 @@ using Dlhis.Basic.BusinessShift.Services; -using Dlhis.Basic.Device.Filters; using Dlhis.Basic.Places.Request; using Dlhis.Basic.Places.Response; using Dlhis.Basic.Places.Services; @@ -124,7 +123,6 @@ public class BusinessPlacesController : ControllerBase /// /// [HttpPost("device/assign")] - [AssignPermissionLimit] [Transactional] [CrossTenant] public async Task Assign(DispositionDeviceRequest request)