From 9c705075bd06a3c814074f743e4af631bbc7c26f Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 24 Jun 2024 17:41:04 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=9D=83=E9=99=90=E4=BA=BA=E5=91=98=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicePermissionsController.cs | 12 +++++++++++ .../Request/DeviceGetAssignmentsRequest.cs | 14 +++++++++++++ .../Services/IDevicePermissionService.cs | 2 ++ .../Implements/DevicePermissionService.cs | 20 +++++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index fefea005..552efee4 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -70,6 +70,18 @@ public class DevicePermissionsController : ControllerBase { return await _devicePermissionService.GetAssignmentsAsync(request.UniqueType, request.AssignType, request.AssignValue); } + + /// + /// 当前类型的权限分配 + /// + /// + /// + [DataPermission] + [HttpGet("assignments-unique")] + public async Task> GetAssignmentUniqueAsync([FromQuery] DeviceGetAssignmentUniquesRequest request) + { + return await _devicePermissionService.GetAssignmentUniqueAsync(request); + } /// diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs index f0798dfe..2b961487 100644 --- a/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DeviceGetAssignmentsRequest.cs @@ -27,4 +27,18 @@ public class DeviceGetAssignmentsRequest /// 设备类型 /// public DeviceTypeEnumType Type { get; set; } +} + +public class DeviceGetAssignmentUniquesRequest +{ + /// + /// 权限分配类型 DeviceAssignmentTypeEnumType + /// + [EnumDataType(typeof(DeviceAssignmentTypeEnumType))] + public DeviceAssignmentTypeEnumType UniqueType { get; set; } + + /// + /// + /// + public Guid UniqueValue { get; set; } } \ 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 c23de1c5..b09ea908 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -34,6 +34,8 @@ public interface IDevicePermissionService : IScopeDependency /// Task> GetAssignmentsAsync(DeviceAssignmentTypeEnumType uniqueType, AssignTypeEnumType assignType, string assignValue); + Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request); + /// /// 生成下发任务 diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 29a4656c..40fd48cc 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -180,6 +180,26 @@ public class DevicePermissionService : IDevicePermissionService return result.FirstOrDefault(x => x.Tenant == _currentUser.GetStringTenantId())?.Codes; } + + public async Task> GetAssignmentUniqueAsync(DeviceGetAssignmentUniquesRequest request) + { + var nos = await _dbContext.Queryable() + .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().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 func, List userNos) { var tenantId = _currentUser.GetStringTenantId();