diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 6b1cae24..ebd03673 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -400,7 +400,7 @@ public class DevicePermissionService : IDevicePermissionService var tenantId = arr.First(); var currentDepartmentNo = arr.Last(); var departmentNos = new List { currentDepartmentNo }; - DepartmentRecursionGetPNo(currentDepartmentNo, departments, departmentNos); + DepartmentRecursionGetNext(currentDepartmentNo, departments, departmentNos); ids.AddRange(await _dbContext.Queryable().Where(x => x.Factory == tenantId && departmentNos.Contains(x.DepartmentNo)).Select(x => x.Id).ToListAsync()); } @@ -459,13 +459,13 @@ public class DevicePermissionService : IDevicePermissionService return page; - void DepartmentRecursionGetPNo(string current, List data, List result) + void DepartmentRecursionGetNext(string current, List data, List result) { - var p = data.FirstOrDefault(x => x.No == current)?.PNo; - if (p.IsPresent()) + var next = data.Where(x => x.PNo == current); + foreach (var item in next) { - result.Add(p); - DepartmentRecursionGetPNo(p, data, result); + result.Add(item.No); + DepartmentRecursionGetNext(item.No, data, result); } } }