From d9aa4ff5efa8ec11fc8171fe3f01bf47afedec21 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 18 Feb 2025 16:35:35 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E8=AE=BE=E5=A4=87=E5=8D=95=E7=8B=AC?= =?UTF-8?q?=E5=88=86=E9=85=8D=E4=BA=BA=E5=91=98=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Implements/DevicePermissionService.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 882a39a7..843ac64f 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -53,6 +53,16 @@ public class DevicePermissionService : IDevicePermissionService var device = await _dbContext.Queryable().Where(x => x.Code == request.UniqueValue).SingleAsync(); device.ThrowIfNull("设备不存在"); + var deviceGroupCodes = await _dbContext.Queryable().Where(x => x.DeviceCode == device.Code).Select(x => x.GroupCode).ToListAsync(); + + var existsTenantAssigned = await _dbContext.Queryable() + .Where(x => (x.UniqueType == DeviceAssignmentTypeEnumType.Device && x.UniqueValue == request.UniqueValue) + || (x.UniqueType == DeviceAssignmentTypeEnumType.Group && deviceGroupCodes.Contains(x.UniqueValue))) + .Where(x => x.AssignType == AssignTypeEnumType.Tenant) + .AnyAsync(); + existsTenantAssigned.ThrowIfTrue("当前设备或者所在分组已分配到厂区,无法操作"); + + //当前匹配的基地权限 var dps = await _dbContext.Queryable() .Where(x => x.UniqueType == DeviceAssignmentTypeEnumType.Device)