using F9WebAiTest.Application.CQRS.SYS.Reports.Queries; using F9WebAiTest.Application.Dtos.SYS.Reports; using F9WebAiTest.Application.Interfaces.Reports; using MediatR; namespace F9WebAiTest.Application.Services.Reports.Providers; /// /// 落丝记录报表数据提供者(生产-前缫)。 /// DsName = "RepDt_Prod_Lsjl" /// 参数:q_date_start / q_date_end(日期范围)、q_dep(车间,含子车间)、q_jizu(机组)、 /// q_zk(庄口 Id,选择页取值)、q_like(关键字:庄口 / 规格 / 颜色)。 /// 参数与列完全由查询结果/报表配置决定,Provider 只负责取数。 /// public class RepDt_Prod_Lsjl : IReportDataProvider { public string ReportName => "RepDt_Prod_Lsjl"; public async Task GetData(Dictionary pairs, IMediator mediator) { DateTime? dateStart = null; if (pairs.TryGetValue("q_date_start", out var ds) && ds != null && ds.ToString() is { Length: > 0 } s1 && DateTime.TryParse(s1, out var d1)) dateStart = d1; DateTime? dateEnd = null; if (pairs.TryGetValue("q_date_end", out var de) && de != null && de.ToString() is { Length: > 0 } s2 && DateTime.TryParse(s2, out var d2)) dateEnd = d2; long depId = 0; if (pairs.TryGetValue("q_dep", out var dep) && dep != null && long.TryParse(dep.ToString(), out var d)) depId = d; int jizu = 0; if (pairs.TryGetValue("q_jizu", out var jz) && jz != null && int.TryParse(jz.ToString(), out var j)) jizu = j; long gyzkId = 0; if (pairs.TryGetValue("q_zk", out var zk) && zk != null && long.TryParse(zk.ToString(), out var z)) gyzkId = z; var like = pairs.TryGetValue("q_like", out var lk) && lk != null ? lk.ToString() ?? "" : ""; return await mediator.Send(new GetLsjlRepQuery(dateStart, dateEnd, depId, jizu, gyzkId, like)); } }