using F9WebAiTest.Application.Dtos.SYS.Reports;
using F9WebAiTest.Application.Interfaces.Repositories.SYS.Employees;
using MediatR;
namespace F9WebAiTest.Application.CQRS.SYS.Reports.Queries;
/// 职工花名册报表数据查询(示例,对应 DsName = RepDt_Sys_Users)
public record GetEmployeeDirectoryRepQuery(long DepId, string Like) : IRequest;
public class GetEmployeeDirectoryRepQueryHandler : IRequestHandler
{
private readonly IEmployeeReadRepository _readRepository;
public GetEmployeeDirectoryRepQueryHandler(IEmployeeReadRepository readRepository)
{
_readRepository = readRepository;
}
public async Task Handle(GetEmployeeDirectoryRepQuery query, CancellationToken cancellationToken)
{
var dto = new ReportDto_DataSource
{
Report_Data = new Dictionary()
};
// 1. 通过仓储查询职工数据(部门含子部门)
var page = await _readRepository.GetPagedAsync(query.DepId, 0, null, null,
string.IsNullOrWhiteSpace(query.Like) ? "" : query.Like, 1, 1000);
// 2. 部门名称(查询条件展示用)
var depName = query.DepId > 0 ? await _readRepository.GetDepNameAsync(query.DepId) : "";
// 3. 明细数据:属性名须与 .grf 模板 DetailGrid.Recordset.Field 一致
var rows = new List