From b070d0ea58ea9251f8ddd8eae5ab79f2dd181670 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 11 Dec 2024 17:42:49 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BC=98=E5=8C=96=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicePermissionAnalyzeService.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs index 57caf78e..c97f9049 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionAnalyzeService.cs @@ -35,8 +35,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService public async Task> GetDevicePermissions(DevicePermissionSaveRequest request) { - var currentTenantId = _currentUser.GetStringTenantId(); - + var currentTenantId = await GetCurrentFactoryAsync(request); (bool enableDeviceFilter, List deviceCodes) = _myDataPermissionService.GetMyDeviceCodes(); (bool enableDeviceGroupFilter, List deviceGroupCodes) = _myDataPermissionService.GetMyDeviceGroupCodes(); @@ -50,6 +49,22 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService .ToListAsync(); } + private async Task GetCurrentFactoryAsync(DevicePermissionSaveRequest request) + { + var currentTenantId = _currentUser.GetStringTenantId(); + + var r = request.UniqueType switch + { + 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 + }; + + r.ThrowIfTrue("存在设备或者设备组不属于当前厂区,操作失败!"); + + return currentTenantId; + } + public async Task GenerateDeviceTasksAsync(Func func, List userNos) {