diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index e209fa0b..f40abb6a 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -1110,7 +1110,7 @@ public class DevicePermissionService : IDevicePermissionService } - private static List GetAssignDeviceCodesInternal( + private List GetAssignDeviceCodesInternal( GainfoDto gainfo, List gainfoGroupRelationships, List devicePermissions, @@ -1119,6 +1119,7 @@ public class DevicePermissionService : IDevicePermissionService List deviceRegistries, List devices, List departments) { + var sw = Stopwatch.StartNew(); if (gainfo.IsOutsource) { //外包人员不允许餐饮 @@ -1138,11 +1139,12 @@ public class DevicePermissionService : IDevicePermissionService var du = GetAssignCodesInternal(devicePermissions, deviceGroups, departments, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.User, userNo); var gu = GetAssignCodesInternal(devicePermissions, deviceGroups, departments, DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo); var pu = GetAssignCodesInternal(devicePermissions, deviceGroups, departments, DeviceAssignmentTypeEnumType.BusinessPlace, AssignTypeEnumType.User, userNo); - deviceDtos.AddRange(du); deviceGroupDtos.AddRange(gu); businessPlaceDtos.AddRange(pu); + _logger.LogWarning("按用户获取时间:{ts}", sw.ElapsedMilliseconds); + sw.Restart(); //按用户组 foreach (var groupCode in gainfoGroups) { @@ -1154,6 +1156,9 @@ public class DevicePermissionService : IDevicePermissionService businessPlaceDtos.AddRange(pg); } + _logger.LogWarning("按用户组获取时间:{ts}", sw.ElapsedMilliseconds); + sw.Restart(); + //按部门 var currentAssignValue = gainfo.Factory + ":" + gainfo.DepartmentNo; var dd = GetAssignCodesInternal(devicePermissions, deviceGroups, departments, DeviceAssignmentTypeEnumType.Device, AssignTypeEnumType.Department, currentAssignValue); @@ -1163,6 +1168,9 @@ public class DevicePermissionService : IDevicePermissionService deviceGroupDtos.AddRange(gd); businessPlaceDtos.AddRange(pd); + _logger.LogWarning("按部门获取时间:{ts}", sw.ElapsedMilliseconds); + sw.Restart(); + //按厂区 if (!gainfo.IsOutsource || gainfo.EnableFactoryPermission) { @@ -1174,6 +1182,9 @@ public class DevicePermissionService : IDevicePermissionService businessPlaceDtos.AddRange(pt); } + _logger.LogWarning("按厂区获取时间:{ts}", sw.ElapsedMilliseconds); + sw.Restart(); + var deviceGroupCodes = deviceGroupDtos.SelectMany(x => x.Codes).Distinct().ToList(); var businessPlaceCodes = businessPlaceDtos.SelectMany(x => x.Codes).Distinct().ToList(); @@ -1201,17 +1212,24 @@ public class DevicePermissionService : IDevicePermissionService deviceDtos.AddRange(deviceCodesByGroup); deviceDtos.AddRange(placeGroup); - return deviceDtos.GroupBy(x => x.Tenant).Select(x => + try { - var dto = new UserTenantDeviceCodeDto + return deviceDtos.GroupBy(x => x.Tenant).Select(x => { - Tenant = x.Key, - Codes = x.SelectMany(item => item.Codes).Distinct().ToList() - }; + var dto = new UserTenantDeviceCodeDto + { + Tenant = x.Key, + Codes = x.SelectMany(item => item.Codes).Distinct().ToList() + }; - dto.Codes = dto.Codes.Where(p => devices.Any(item => item.Code == p)).ToList(); + dto.Codes = dto.Codes.Where(p => devices.Any(item => item.Code == p)).ToList(); - return dto; - }).ToList(); + return dto; + }).ToList(); + } + finally + { + _logger.LogWarning("数据整合时间:{ts}", sw.ElapsedMilliseconds); + } } } \ No newline at end of file