using F9WebAiTest.Application.Common; using F9WebAiTest.Application.Dtos.SYS.WuziMulus; using F9WebAiTest.Application.Dtos.SYS.YuanliaoZhuangkous; using F9WebAiTest.Application.Interfaces.Repositories.SYS.YuanliaoZhuangkous; using MediatR; namespace F9WebAiTest.Application.CQRS.SYS.YuanliaoZhuangkous.Queries; /// 原料庄口分页查询(年度 + 产地/站点/季别 + 关键字) public record GetYuanliaoZhuangkouPagedQuery( int Year = 0, string Chandi = "", string Zhandian = "", string Jibie = "", string Like = "", int PageIndex = 1, int PageSize = 20) : IRequest>; public class GetYuanliaoZhuangkouPagedQueryHandler(IYuanliaoZhuangkouReadRepository readRepository) : IRequestHandler> { public async Task> Handle(GetYuanliaoZhuangkouPagedQuery query, CancellationToken ct) => await readRepository.GetPagedAsync(query.Year, query.Chandi, query.Zhandian, query.Jibie, query.Like, query.PageIndex, query.PageSize); } /// 按 Id 查询原料庄口(编辑回显) public record GetYuanliaoZhuangkouByIdQuery(long Id) : IRequest; public class GetYuanliaoZhuangkouByIdQueryHandler(IYuanliaoZhuangkouReadRepository readRepository) : IRequestHandler { public async Task Handle(GetYuanliaoZhuangkouByIdQuery query, CancellationToken ct) => await readRepository.GetByIdForEditAsync(query.Id); } /// 物资(茧别)下拉选项:来自物资目录中名称含"茧"的物资,支持关键字过滤 public record GetYuanliaoZhuangkouWuziOptionsQuery(string Keyword = "") : IRequest>; public class GetYuanliaoZhuangkouWuziOptionsQueryHandler(IYuanliaoZhuangkouReadRepository readRepository) : IRequestHandler> { public async Task> Handle(GetYuanliaoZhuangkouWuziOptionsQuery query, CancellationToken ct) => await readRepository.GetWuziOptionsAsync(query.Keyword); }