using F9WebAiTest.Application.Common; using F9WebAiTest.Application.Dtos.SYS.Employees; using F9WebAiTest.Application.Interfaces.Repositories.SYS.Employees; using F9WebAiTest.Domain.Enums.SYS.Employees; using MediatR; namespace F9WebAiTest.Application.CQRS.SYS.Employees.Queries; /// 职工分页查询(部门含子部门 + 工种 + 在职状态 + 班次 + 关键字) public record GetEmployeePagedQuery(long DepId = 0, long WorktypeId = 0, Employee_WorkStatus_Enum? WorkStatus = null, Prod_Banci_Enum? Banci = null, string Like = "", int PageIndex = 1, int PageSize = 20) : IRequest>; public class GetEmployeePagedQueryHandler(IEmployeeReadRepository readRepository) : IRequestHandler> { public async Task> Handle(GetEmployeePagedQuery query, CancellationToken ct) => await readRepository.GetPagedAsync(query.DepId, query.WorktypeId, query.WorkStatus, query.Banci, query.Like, query.PageIndex, query.PageSize); } /// 按 Id 查询职工(编辑回显) public record GetEmployeeByIdQuery(long Id) : IRequest; public class GetEmployeeByIdQueryHandler(IEmployeeReadRepository readRepository) : IRequestHandler { public async Task Handle(GetEmployeeByIdQuery query, CancellationToken ct) => await readRepository.GetByIdForEditAsync(query.Id); } /// 职工变更记录 public record GetEmployeeChangeRecordsQuery(long EmployeeId) : IRequest>; public class GetEmployeeChangeRecordsQueryHandler(IEmployeeReadRepository readRepository) : IRequestHandler> { public async Task> Handle(GetEmployeeChangeRecordsQuery query, CancellationToken ct) => await readRepository.GetChangeRecordsAsync(query.EmployeeId); } /// 职工调岗记录 public record GetEmployeeTiaogangRecordsQuery(long EmployeeId) : IRequest>; public class GetEmployeeTiaogangRecordsQueryHandler(IEmployeeReadRepository readRepository) : IRequestHandler> { public async Task> Handle(GetEmployeeTiaogangRecordsQuery query, CancellationToken ct) => await readRepository.GetTiaogangRecordsAsync(query.EmployeeId); }