添加确认书生成日志
This commit is contained in:
@@ -144,17 +144,23 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
///
|
||||
/// </summary>
|
||||
private TradeDocGenerateResult GenerateSingleV1(trade_contract_group contractGroup, string docType = "DOCX")
|
||||
{
|
||||
var logger = LogFactory.GetLogger("生成确认书详细日志");
|
||||
logger.Info($"[BatchGenerateSingleV1] 开始处理 - docType: {docType}");
|
||||
|
||||
if (contractGroup == null)
|
||||
{
|
||||
logger.Error("[BatchGenerateSingleV1] contractGroup 为 null");
|
||||
throw new ArgumentNullException(nameof(contractGroup));
|
||||
}
|
||||
|
||||
var contractBLL = new TradeContractBLL(this);
|
||||
var trade = contractGroup.trade;
|
||||
logger.Info($"[BatchGenerateSingleV1] 交易信息 - TradeId: {trade?.id}, TradeNumber: {trade?.TradeNumber}, TradeType: {trade?.TradeType}");
|
||||
|
||||
var contractBLL = new TradeContractBLL(this);
|
||||
tradeBLL.SetFieldsByTradeType(trade);
|
||||
var needAddData = true;
|
||||
|
||||
@@ -399,25 +405,54 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
dic["{{结算方式}}"] = "人民币现金结算";
|
||||
dic["{{补充}}"] = "补充";
|
||||
|
||||
var batchLogger = LogFactory.GetLogger("生成确认书详细日志");
|
||||
try
|
||||
{
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 开始生成文档 - TradeId: {trade?.id}");
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 模板类型: {trade.TradeType}, IsUsePremiumRate: {trade.IsUsePremiumRate}");
|
||||
|
||||
var templateDir = OtcAppContext.MapPath("~/App_Docs/GTJA");
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] templateDir: {templateDir}");
|
||||
|
||||
var templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书模板.docx");
|
||||
if (trade.TradeType == "亚式期权")
|
||||
{
|
||||
templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书(亚式期权)模板.docx");
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 使用亚式期权模板");
|
||||
}
|
||||
|
||||
if (trade.IsUsePremiumRate != null && trade.IsUsePremiumRate.Value)
|
||||
{
|
||||
templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书(名义本金)模板.docx");
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 使用名义本金模板");
|
||||
}
|
||||
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 最终模板路径: {templatePath}");
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 输出文件名: {outPutFileName}");
|
||||
|
||||
// 检查模板文件是否存在
|
||||
if (!File.Exists(templatePath))
|
||||
{
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 模板文件不存在: {templatePath}");
|
||||
return new TradeDocGenerateResult(trade) { ErrorMessage = $"模板文件不存在: {templatePath}" };
|
||||
}
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 模板文件存在,准备生成");
|
||||
|
||||
LogFactory.GetLogger("交易确认书").Info("交易确认书:" + outPutFileName);
|
||||
|
||||
var outPutFilePath = Path.Combine(templateDir, outPutFileName);
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 输出文件路径: {outPutFilePath}");
|
||||
|
||||
// 确保输出目录存在
|
||||
if (!Directory.Exists(templateDir))
|
||||
{
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 创建输出目录: {templateDir}");
|
||||
Directory.CreateDirectory(templateDir);
|
||||
}
|
||||
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] 调用 MsWordTempalteHelper.GenerateFromTemplate");
|
||||
MsWordTempalteHelper.GenerateFromTemplate(templatePath, dic, outPutFilePath);
|
||||
batchLogger.Info($"[BatchGenerateSingleV1] MsWordTempalteHelper.GenerateFromTemplate 完成");
|
||||
|
||||
if (docType == "PDF" && !outPutFilePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
@@ -478,6 +513,18 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 发生异常 - TradeId: {trade?.id}, TradeNumber: {trade?.TradeNumber}", e);
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 异常类型: {e.GetType().FullName}");
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 异常消息: {e.Message}");
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 异常堆栈: {e.StackTrace}");
|
||||
|
||||
if (e.InnerException != null)
|
||||
{
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 内部异常类型: {e.InnerException.GetType().FullName}");
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 内部异常消息: {e.InnerException.Message}");
|
||||
batchLogger.Error($"[BatchGenerateSingleV1] 内部异常堆栈: {e.InnerException.StackTrace}");
|
||||
}
|
||||
|
||||
LogFactory.GetLogger<ConfirmationGenerateService>().Error("GenerateSingleConfirmBook出错", e);
|
||||
return new TradeDocGenerateResult(trade) { ErrorMessage = e.Message };
|
||||
}
|
||||
|
||||
@@ -36,13 +36,18 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
/// </summary>
|
||||
public List<TradeDocGenerateResult> Generate(IEnumerable<int> tradeIds, string docType)
|
||||
{
|
||||
var logger = LogFactory.GetLogger("生成确认书详细日志");
|
||||
logger.Info($"[Generate] 开始生成确认书 - tradeIds: {string.Join(",", tradeIds)}, docType: {docType}");
|
||||
|
||||
if (tradeIds == null)
|
||||
{
|
||||
logger.Error("[Generate] tradeIds 为 null");
|
||||
throw new ArgumentNullException(nameof(tradeIds));
|
||||
}
|
||||
|
||||
if (docType == null)
|
||||
{
|
||||
logger.Error("[Generate] docType 为 null");
|
||||
throw new ArgumentNullException(nameof(docType));
|
||||
}
|
||||
|
||||
@@ -72,9 +77,13 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
//----------------------------------
|
||||
// 交易现金交割记录
|
||||
//----------------------------------
|
||||
logger.Info("[Generate] 开始查询交易数据");
|
||||
List<trade> allTradeList = allTradeList = DbContext.trade.Where(x => tradeIds.Contains(x.id)).ToList();
|
||||
logger.Info($"[Generate] 查询到交易数: {allTradeList.Count}");
|
||||
|
||||
if (allTradeList.Count < 1)
|
||||
{
|
||||
logger.Error("[Generate] 没有找到交易记录");
|
||||
throw new ServiceException("没有已确认的记录信息!");
|
||||
}
|
||||
|
||||
@@ -258,17 +267,23 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
///
|
||||
/// </summary>
|
||||
private TradeDocGenerateResult GenerateSingleV1(trade_contract_group contractGroup, string docType = "DOCX")
|
||||
{
|
||||
var logger = LogFactory.GetLogger("生成确认书详细日志");
|
||||
logger.Info($"[GenerateSingleV1] 开始处理 - docType: {docType}");
|
||||
|
||||
if (contractGroup == null)
|
||||
{
|
||||
logger.Error("[GenerateSingleV1] contractGroup 为 null");
|
||||
throw new ArgumentNullException(nameof(contractGroup));
|
||||
}
|
||||
|
||||
var contractBLL = new TradeContractBLL(this);
|
||||
var trade = contractGroup.trade;
|
||||
logger.Info($"[GenerateSingleV1] 交易信息 - TradeId: {trade?.id}, TradeNumber: {trade?.TradeNumber}, TradeType: {trade?.TradeType}");
|
||||
|
||||
var contractBLL = new TradeContractBLL(this);
|
||||
tradeBLL.SetFieldsByTradeType(trade);
|
||||
var needAddData = true;
|
||||
|
||||
@@ -518,25 +533,56 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
dic["{{结算方式}}"] = "人民币现金结算";
|
||||
dic["{{补充}}"] = "补充";
|
||||
|
||||
var confirmLogger = LogFactory.GetLogger("生成确认书详细日志");
|
||||
try
|
||||
{
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 开始生成 - TradeId: {trade?.id}, TradeNumber: {trade?.TradeNumber}, TradeType: {trade?.TradeType}");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 模板路径配置 - TradeType: {trade.TradeType}, IsUsePremiumRate: {trade.IsUsePremiumRate}");
|
||||
|
||||
var templateDir = OtcAppContext.MapPath("~/App_Docs/GTJA");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] templateDir: {templateDir}");
|
||||
|
||||
var templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书模板.docx");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 默认模板路径: {templatePath}");
|
||||
|
||||
if (trade.TradeType == "亚式期权")
|
||||
{
|
||||
templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书(亚式期权)模板.docx");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 使用亚式期权模板: {templatePath}");
|
||||
}
|
||||
|
||||
if (trade.IsUsePremiumRate != null && trade.IsUsePremiumRate.Value)
|
||||
{
|
||||
templatePath = OtcAppContext.MapPath("~/App_Docs/导出模板/交易确认书(名义本金)模板.docx");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 使用名义本金模板: {templatePath}");
|
||||
}
|
||||
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 最终模板路径: {templatePath}");
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 输出文件名: {outPutFileName}");
|
||||
|
||||
// 检查模板文件是否存在
|
||||
if (!File.Exists(templatePath))
|
||||
{
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 模板文件不存在: {templatePath}");
|
||||
return new TradeDocGenerateResult(trade) { ErrorMessage = $"模板文件不存在: {templatePath}" };
|
||||
}
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 模板文件存在,准备生成");
|
||||
|
||||
LogFactory.GetLogger("交易确认书").Info("交易确认书:" + outPutFileName);
|
||||
|
||||
string outPutFilePath = Path.Combine(templateDir, outPutFileName);
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 输出文件路径: {outPutFilePath}");
|
||||
|
||||
// 确保输出目录存在
|
||||
if (!Directory.Exists(templateDir))
|
||||
{
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 创建输出目录: {templateDir}");
|
||||
Directory.CreateDirectory(templateDir);
|
||||
}
|
||||
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] 调用 MsWordTempalteHelper.GenerateFromTemplate");
|
||||
MsWordTempalteHelper.GenerateFromTemplate(templatePath, dic, outPutFilePath);
|
||||
confirmLogger.Info($"[GenerateSingleConfirmBook] MsWordTempalteHelper.GenerateFromTemplate 完成");
|
||||
|
||||
if (docType == "PDF" && !outPutFilePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
@@ -598,6 +644,19 @@ namespace YLErp.Modules.TradeModule.DocGenerateModule
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 发生异常 - TradeId: {trade?.id}, TradeNumber: {trade?.TradeNumber}", e);
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 异常类型: {e.GetType().FullName}");
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 异常消息: {e.Message}");
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 异常堆栈: {e.StackTrace}");
|
||||
|
||||
// 检查是否是内部异常
|
||||
if (e.InnerException != null)
|
||||
{
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 内部异常类型: {e.InnerException.GetType().FullName}");
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 内部异常消息: {e.InnerException.Message}");
|
||||
confirmLogger.Error($"[GenerateSingleConfirmBook] 内部异常堆栈: {e.InnerException.StackTrace}");
|
||||
}
|
||||
|
||||
LogFactory.GetLogger<ConfirmationGenerateService>().Error("GenerateSingleConfirmBook出错", e);
|
||||
return new TradeDocGenerateResult(trade) { ErrorMessage = e.Message };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user