From b03b7b99633fd66f2b6977569cf45843cbbf18eb Mon Sep 17 00:00:00 2001 From: liguoyang Date: Mon, 20 Oct 2025 14:36:22 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BA=BA=E5=91=98=E6=9D=83=E9=99=90?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BE=8B=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/DevicePermissionService.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 91716574..a812b5a3 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -331,7 +331,14 @@ public class DevicePermissionService : IDevicePermissionService { var no = await _dbContext.Queryable().Where(x => x.No == userNo || x.Code == userNo).Select(x => x.No).SingleAsync(); var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List { no }); - return result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); + var deviceCodes = result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); + + //例外处理: 特殊手动分配的设备权限 + var manuallyDeviceCodes = await _dbContext.Queryable().Where(x => x.UserNo == no) + .Select(x => x.DeviceCode) + .ToListAsync(); + + return deviceCodes.Concat(manuallyDeviceCodes).Distinct().ToList(); } @@ -547,7 +554,7 @@ public class DevicePermissionService : IDevicePermissionService .Where(x => userCodes.Contains(x.Code)) .Select(x => x.No) .ToListAsync(); - + var userNoLeaves = await _dbContext.Queryable() .Where(x => userCodes.Contains(x.Code)) .Select(x => x.No)