using NPOI.OpenXmlFormats.Dml;
using YLErp.Model;
using YLErp.Modules.SuperviseReportModule.ExtendReport.Common;
using YLErp.Modules.SuperviseReportModule.ExtendReport.GeLin;
using YLErp.Modules.SuperviseReportModule.ExtendReport.ZheQi;
using YLErp.Modules.SuperviseReportModule.ExtendReport.ZheShang;
namespace YLErp.Modules.SuperviseReportModule.ExtendReport
{
public abstract class ExtendReportBaseService : YLBaseService
{
protected SuperviseReportReq RequestInfo { get; private set; }
///
/// 输出模板名
///
public abstract string TemplateName { get; }
///
/// 输出文件名
///
///
public abstract string TargetFileName { get; }
public ExtendReportBaseService(OptUserInfo userInfo, SuperviseReportReq req) : base(userInfo)
{
RequestInfo = req;
}
///
/// 获取实现对象
///
///
///
public static ExtendReportBaseService ServiceFactory(OptUserInfo optUser, SuperviseReportReq req)
{
ExtendReportBaseService service = null;
switch (req.DataSource)
{
case "成交明细汇总":
service = new TransactionDetails(optUser, req);
break;
case "风险资本准备计算表":
service = new ExtendOtherReport(optUser, req);
break;
case "客户持仓信息":
service = new ClientPositionReport(optUser, req);
break;
case "客户资金记录报表":
service = new CustomerFundsReport(optUser, req);
break;
case "月报基础数据债券收益互换":
service = new SwapTradeMothReport(optUser, req);
break;
default:
throw new ServiceException("报表未实现");
}
return service;
}
///
/// 获取报告内容
///
///
/// Key:模板中的sheet名
/// Value:模板中要填充的Model
///
public virtual Dictionary SearchReportInfo()
{
throw new ServiceException("未实现");
}
}
public abstract class SimpleExtendReportBaseService : ExtendReportBaseService
{
///
/// 输出Sheet名
///
public virtual string[] SheetNames { get; } = { "Sheet1" };
public SimpleExtendReportBaseService(OptUserInfo userInfo, SuperviseReportReq req) : base(userInfo, req)
{ }
///
/// 获取报告内容
///
///
/// Key:模板中的sheet名
/// Value:模板中要填充的Model
///
public override Dictionary SearchReportInfo()
{
var result = new Dictionary();
foreach (var name in SheetNames)
{
result[name] = SearchReportInfo(name);
}
return result;
}
///
/// 获取报告内容
///
/// 要填充的Sheet名
///
public virtual object SearchReportInfo(string sheetName)
{
throw new ServiceException("未实现");
}
}
}