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);
}