namespace SimpleAdmin.Application; /// /// 实现入职任务查询业务能力。 /// public class OnboardingTaskQueryService : IOnboardingTaskQueryService { private readonly SqlSugarScope _db; public OnboardingTaskQueryService() { _db = DbContext.DB; } /// /// 分页查询后台入职任务。 /// public Task> Page(OnboardingTaskPageInput input) { return _db.Queryable() .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) .OrderByDescending(item => item.CreateTime) .ToPagedListAsync(input.PageNum, input.PageSize); } /// /// 查询任务基础信息、人员资料、合同、材料、表单值、链接和审核记录。 /// public async Task Detail(BaseIdInput input) { var task = await _db.Queryable().InSingleAsync(input.Id) ?? throw Oops.Bah("入职任务不存在"); return new OnboardingTaskDetailOutput { Task = task, EmployeeInfo = await _db.Queryable() .FirstAsync(item => item.TaskId == task.Id), Contracts = await _db.Queryable() .Where(item => item.TaskId == task.Id) .ToListAsync(), Materials = await _db.Queryable() .Where(item => item.TaskId == task.Id) .ToListAsync(), FormValues = await _db.Queryable() .Where(item => item.TaskId == task.Id) .ToListAsync(), Link = await _db.Queryable() .Where(item => item.TaskId == task.Id && item.LinkStatus == "active") .OrderByDescending(item => item.CreateTime) .FirstAsync(), Audits = await _db.Queryable() .Where(item => item.TaskId == task.Id) .OrderByDescending(item => item.AuditedAt) .ToListAsync() }; } }