/// <summary> /// 新旧分摊数据对比 /// </summary> static void AllocRecordSummaryContrast() { List<AllocRecordSummaryDiff> recordSummaryDiffs = new List<AllocRecordSummaryDiff>(); AllocationLogBLL bll = new AllocationLogBLL(); foreach (var dtItem in _dataTypes) { foreach (var item in _serviceTypePairs) { if (item.Key == "ALL") { continue; } List<AllocRecordSummaryDiff> diffs = bll.AllocRecordSummaryContrast(item.Key, dtItem.Key); if (diffs != null && diffs.Count > 0) { recordSummaryDiffs.AddRange(diffs); } } } var table = InitTable(recordSummaryDiffs); var exporter = new ExcelExporter(); var buffer = exporter.ExportAsByteArray(table).GetAwaiter().GetResult(); //创建本地文件夹 string fileFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data"); if (!Directory.Exists(fileFolder)) Directory.CreateDirectory(fileFolder); //本地文件路径 \\ var filepath = Path.Combine(fileFolder, $"新旧分摊差异{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); //HttpClient _httpClient = new HttpClient() { Timeout = TimeSpan.FromMinutes(30) }; try { //创建本地文件写入流 using (var stream = new FileStream(filepath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) { stream.Write(buffer, 0, buffer.Length); } Console.WriteLine("导出差异文件:" + filepath); } catch { throw; } } /// <summary> /// 初始化导出的数据 /// </summary> /// <param name="dataList"></param> /// <returns></returns> static DataTable InitTable(List<AllocRecordSummaryDiff> dataList) { var table = new DataTable(); table.Columns.Add("服务类型"); table.Columns.Add("业务单号"); table.Columns.Add("数据类型"); table.Columns.Add("对账编码"); table.Columns.Add("总金额"); table.Columns.Add("总金额差异"); table.Columns.Add("成本计费重合计"); table.Columns.Add("成本计费重合计差异"); table.Columns.Add("应收计费重合计"); table.Columns.Add("应收计费重合计差异"); table.Columns.Add("总票数"); table.Columns.Add("总票数差异"); table.Columns.Add("备注"); foreach (var data in dataList) { var row = table.NewRow(); row["服务类型"] = data.service_type; row["业务单号"] = data.bsn_number; row["数据类型"] = data.data_type == "1" ? "预估" : "实际"; row["对账编码"] = data.rec_code_old; row["总金额"] = data.amount_old; row["总金额差异"] = data.amount_diff; row["成本计费重合计"] = data.server_weight_old; row["成本计费重合计差异"] = data.server_weight_diff; row["应收计费重合计"] = data.shipper_weight_old; row["应收计费重合计差异"] = data.shipper_weight_diff; row["总票数"] = data.bill_count_old; row["总票数差异"] = data.bill_count_diff; row["备注"] = data.remarks; table.Rows.Add(row); } return table; }