namespace SimpleAdmin.Application; /// /// 实现正式员工档案查询业务能力,仅展示审核通过后创建的正式员工。 /// public class OnboardingEmployeeService : IOnboardingEmployeeService { private readonly SqlSugarScope _db; public OnboardingEmployeeService() { _db = DbContext.DB; } /// /// 分页查询审核通过后生成的正式员工档案。 /// public Task> Page(OnboardingEmployeePageInput input) { return _db.Queryable() .WhereIF( !string.IsNullOrWhiteSpace(input.EmployeeName), item => item.EmployeeName.Contains(input.EmployeeName) || item.IdCardNumber.Contains(input.EmployeeName)) .WhereIF(!string.IsNullOrWhiteSpace(input.Phone), item => item.Phone.Contains(input.Phone)) .WhereIF(input.CompanyId.HasValue, item => item.CompanyId == input.CompanyId.Value) .WhereIF(input.DepartmentId.HasValue, item => item.DepartmentId == input.DepartmentId.Value) .WhereIF(input.PositionId.HasValue, item => item.PositionId == input.PositionId.Value) .OrderByDescending(item => item.CreateTime) .ToPagedListAsync(input.PageNum, input.PageSize); } /// /// 查询正式员工及其来源任务、合同和审核记录。 /// public async Task Detail(BaseIdInput input) { var employee = await _db.Queryable().InSingleAsync(input.Id) ?? throw Oops.Bah("正式员工不存在"); var task = await _db.Queryable().FirstAsync(x => x.EmployeeId == employee.Id); var contracts = task == null ? new List() : await _db.Queryable() .Where(item => item.TaskId == task.Id) .ToListAsync(); var audits = task == null ? new List() : await _db.Queryable() .Where(item => item.TaskId == task.Id) .OrderByDescending(item => item.AuditedAt) .ToListAsync(); return new OnboardingEmployeeDetailOutput { Employee = employee, Task = task, Contracts = contracts, Audits = audits }; } }