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)