namespace SimpleAdmin.Application; /// 仅展示审核通过后创建的正式员工档案;入职资料的来源任务可追溯。 public class OnboardingEmployeeService : IOnboardingEmployeeService { private readonly SqlSugarScope _db; public OnboardingEmployeeService() => _db = DbContext.DB; public Task> Page(OnboardingEmployeePageInput input) => _db.Queryable() .WhereIF(!string.IsNullOrWhiteSpace(input.EmployeeName), x => x.EmployeeName.Contains(input.EmployeeName) || x.IdCardNumber.Contains(input.EmployeeName)) .WhereIF(!string.IsNullOrWhiteSpace(input.Phone), x => x.Phone.Contains(input.Phone)) .WhereIF(input.CompanyId.HasValue, x => x.CompanyId == input.CompanyId.Value) .WhereIF(input.PositionId.HasValue, x => x.PositionId == input.PositionId.Value) .OrderByDescending(x => x.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(x => x.TaskId == task.Id).ToListAsync(); var audits = task == null ? new List() : await _db.Queryable().Where(x => x.TaskId == task.Id).OrderByDescending(x => x.AuditedAt).ToListAsync(); return new OnboardingEmployeeDetailOutput { Employee = employee, Task = task, Contracts = contracts, Audits = audits }; } }