fix 增加where条件优化查询性能
This commit is contained in:
@@ -105,13 +105,14 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
|
||||
public async Task<Pagination<DeviceTaskAssignmentResponse>> GetPageWarningAsync(DeviceTaskAssignmentRequest request)
|
||||
{
|
||||
var rows = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||
var page = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||
.LeftJoin<DeviceEntity>((deviceTask, device) => deviceTask.DeviceUniqueNo == device.UniqueNo)
|
||||
.LeftJoin<GainfoEntity>((deviceTask, device, ga) => deviceTask.UserNo == ga.No)
|
||||
.LeftJoin<GainfoLeaveEntity>((deviceTask, device, ga, gaLeave) => deviceTask.UserNo == gaLeave.No)
|
||||
.LeftJoin<DeviceRegistryEntity>((deviceTask, device, ga, gaLeave, deviceRegistry) => deviceRegistry.DeviceUniqueNo == deviceTask.DeviceUniqueNo)
|
||||
.Where(deviceTask => deviceTask.TenantId == request.Factory)
|
||||
.WhereIF(request.Type.HasValue, deviceTask => deviceTask.DeviceType == request.Type)
|
||||
.Where(deviceTask => deviceTask.DeviceType == request.Type)
|
||||
.Where(deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process)
|
||||
.WhereIF(!request.Search.IsEmpty(), (deviceTask, device, ga) =>
|
||||
ga.Name == request.Search
|
||||
|| ga.Code == request.Search
|
||||
@@ -139,12 +140,14 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
CreateBy = deviceTask.CreatedBy,
|
||||
Source = deviceTask.Source
|
||||
})
|
||||
.ToPageListAsync(request.PageIndex, request.PageSize);
|
||||
.ToPageListAsync(request);
|
||||
//.ToPageListAsync(request.PageIndex, request.PageSize);
|
||||
|
||||
try
|
||||
{
|
||||
var tenants = await _tenantApi.GetTenantsInternalAsync();
|
||||
rows.ForEach(item => { item.TenantName = tenants.FirstOrDefault(x => x.Code == item.TenantId)?.Name; });
|
||||
//rows.ForEach(item => { item.TenantName = tenants.FirstOrDefault(x => x.Code == item.TenantId)?.Name; });
|
||||
page.Data.ForEach(item => { item.TenantName = tenants.FirstOrDefault(x => x.Code == item.TenantId)?.Name; });
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@@ -153,22 +156,25 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
|
||||
try
|
||||
{
|
||||
var userIds = rows.Select(x => x.CreateBy).Distinct().ToList();
|
||||
//var userIds = rows.Select(x => x.CreateBy).Distinct().ToList();
|
||||
var userIds = page.Data.Select(x => x.CreateBy).Distinct().ToList();
|
||||
var userInfos = await _userApi.GetUserByIdsAsync(new IdsRequest { Ids = userIds });
|
||||
rows.ForEach(item => item.Creator = userInfos.FirstOrDefault(x => x.Id == item.CreateBy)?.OperatorName);
|
||||
page.Data.ForEach(item => item.Creator = userInfos.FirstOrDefault(x => x.Id == item.CreateBy)?.OperatorName);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogError("获取人员数据失败:{error}", e.Message);
|
||||
}
|
||||
|
||||
return new Pagination<DeviceTaskAssignmentResponse>
|
||||
{
|
||||
PageIndex = request.PageIndex,
|
||||
PageSize = request.PageSize,
|
||||
Total = 0,
|
||||
Data = rows
|
||||
};
|
||||
// return new Pagination<DeviceTaskAssignmentResponse>
|
||||
// {
|
||||
// PageIndex = request.PageIndex,
|
||||
// PageSize = request.PageSize,
|
||||
// Total = 0,
|
||||
// Data = rows
|
||||
// };
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user