代码优化
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
namespace SimpleAdmin.Application;
|
||||
namespace SimpleAdmin.Application;
|
||||
|
||||
/// <summary>
|
||||
/// 实现入职任务查询业务能力。
|
||||
@@ -23,6 +23,7 @@ public class OnboardingTaskQueryService : IOnboardingTaskQueryService
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.TaskNo), item => item.TaskNo.Contains(input.TaskNo))
|
||||
.WhereIF(!string.IsNullOrWhiteSpace(input.TaskStatus), item => item.TaskStatus == input.TaskStatus)
|
||||
.WhereIF(input.CompanyId.HasValue, item => item.CompanyId == input.CompanyId.Value)
|
||||
.WhereIF(input.DepartmentId.HasValue, item => item.DepartmentId == input.DepartmentId.Value)
|
||||
.OrderByDescending(item => item.CreateTime)
|
||||
.ToPagedListAsync(input.PageNum, input.PageSize);
|
||||
|
||||
@@ -191,20 +192,26 @@ public class OnboardingTaskQueryService : IOnboardingTaskQueryService
|
||||
{
|
||||
var taskList = tasks.ToList();
|
||||
var companyIds = taskList.Select(t => t.CompanyId).Distinct().ToList();
|
||||
var departmentIds = taskList.Where(t => t.DepartmentId.HasValue).Select(t => t.DepartmentId.Value).Distinct().ToList();
|
||||
var positionIds = taskList.Select(t => t.PositionId).Distinct().ToList();
|
||||
var templateIds = taskList.Select(t => t.OnboardingTemplateId).Distinct().ToList();
|
||||
|
||||
var companies = await _db.Queryable<ObCompany>().Where(c => companyIds.Contains(c.Id)).ToListAsync();
|
||||
var departments = departmentIds.Count == 0
|
||||
? new List<ObDepartment>()
|
||||
: await _db.Queryable<ObDepartment>().Where(d => departmentIds.Contains(d.Id)).ToListAsync();
|
||||
var positions = await _db.Queryable<ObPosition>().Where(p => positionIds.Contains(p.Id)).ToListAsync();
|
||||
var templates = await _db.Queryable<ObOnboardingTemplate>().Where(t => templateIds.Contains(t.Id)).ToListAsync();
|
||||
|
||||
var companyMap = companies.ToDictionary(c => c.Id, c => c.CompanyName);
|
||||
var departmentMap = departments.ToDictionary(d => d.Id, d => d.DepartmentName);
|
||||
var positionMap = positions.ToDictionary(p => p.Id, p => p.PositionName);
|
||||
var templateMap = templates.ToDictionary(t => t.Id, t => t.TemplateName);
|
||||
|
||||
foreach (var task in taskList)
|
||||
{
|
||||
if (companyMap.TryGetValue(task.CompanyId, out var cName)) task.CompanyName = cName;
|
||||
if (task.DepartmentId.HasValue && departmentMap.TryGetValue(task.DepartmentId.Value, out var dName)) task.DepartmentName = dName;
|
||||
if (positionMap.TryGetValue(task.PositionId, out var pName)) task.PositionName = pName;
|
||||
if (templateMap.TryGetValue(task.OnboardingTemplateId, out var tName)) task.OnboardingTemplateName = tName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user