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