diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index a58b9593..d2d24271 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -103,41 +103,43 @@ public class GainfoPermissionService : IGainfoPermissionService page.Data.ForEach(item => { - var permission = permissions.First(x => x.Tenant == item.Factory); - - item.Source = new DevicePermissionSourceDto + var permission = permissions.FirstOrDefault(x => x.Tenant == item.Factory); + if (permission != null) { - Factory = item.Factory, - Types = permission.AssignTypes.Where(x => x.Codes.Any(p => p == item.Code)).Select(x => + item.Source = new DevicePermissionSourceDto { - var codeDesc = x.UniqueType == DeviceAssignmentTypeEnumType.Device - ? item.DeployPlace - : deviceGroups.First(p => p.Code == x.OriginalCodes.First()).Name; - - var currentAssignValue = x.AssignValue; - - currentAssignValue = x.AssignType switch + Factory = item.Factory, + Types = permission.AssignTypes.Where(x => x.Codes.Any(p => p == item.Code)).Select(x => { - AssignTypeEnumType.Department => departments.FirstOrDefault(p => p.No == x.AssignValue.Split(":")[1])?.Name, - AssignTypeEnumType.Group => userGroups.FirstOrDefault(p => p.Code == Guid.Parse(currentAssignValue))?.Name, - AssignTypeEnumType.User => "自己", - _ => currentAssignValue - }; + var codeDesc = x.UniqueType == DeviceAssignmentTypeEnumType.Device + ? item.DeployPlace + : deviceGroups.FirstOrDefault(p => p.Code == x.OriginalCodes.First())?.Name; - var r = new DevicePermissionSourceTypeDto - { - AssignType = x.AssignType, - AssignValue = currentAssignValue, - UniqueType = x.UniqueType, - Codes = x.UniqueType == DeviceAssignmentTypeEnumType.Device - ? x.Codes.Where(p => p == item.Code) - : x.Codes.Take(1), - CodeDesc = codeDesc - }; + var currentAssignValue = x.AssignValue; - return r; - }) - }; + currentAssignValue = x.AssignType switch + { + AssignTypeEnumType.Department => departments.FirstOrDefault(p => p.No == x.AssignValue.Split(":")[1])?.Name, + AssignTypeEnumType.Group => userGroups.FirstOrDefault(p => p.Code == Guid.Parse(currentAssignValue))?.Name, + AssignTypeEnumType.User => "自己", + _ => currentAssignValue + }; + + var r = new DevicePermissionSourceTypeDto + { + AssignType = x.AssignType, + AssignValue = currentAssignValue, + UniqueType = x.UniqueType, + Codes = x.UniqueType == DeviceAssignmentTypeEnumType.Device + ? x.Codes.Where(p => p == item.Code) + : x.Codes.Take(1), + CodeDesc = codeDesc + }; + + return r; + }) + }; + } }); return page;