Commit 1c82464b by lizefeng

周转表分页导出

parent d998fa7d
...@@ -16,24 +16,30 @@ namespace AutoTurnOver.Common ...@@ -16,24 +16,30 @@ namespace AutoTurnOver.Common
/// <param name="fileName">CSV的文件路径</param> /// <param name="fileName">CSV的文件路径</param>
public static void SaveCSV(DataTable dt, string fileName) public static void SaveCSV(DataTable dt, string fileName)
{ {
if (!Directory.Exists(Path.GetDirectoryName(fileName))) // 是否追加
var existsPush = Directory.Exists(Path.GetDirectoryName(fileName));
if (!existsPush)
{ {
Directory.CreateDirectory(Path.GetDirectoryName(fileName)); Directory.CreateDirectory(Path.GetDirectoryName(fileName));
} }
FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); FileStream fs = new FileStream(fileName, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string data = ""; string data = "";
//写出列名称 if (!existsPush)
for (int i = 0; i < dt.Columns.Count; i++)
{ {
data += dt.Columns[i].ColumnName.ToString(); //写出列名称
if (i < dt.Columns.Count - 1) for (int i = 0; i < dt.Columns.Count; i++)
{ {
data += ","; data += dt.Columns[i].ColumnName.ToString();
if (i < dt.Columns.Count - 1)
{
data += ",";
}
} }
sw.WriteLine(data);
} }
sw.WriteLine(data);
//写出各行数据 //写出各行数据
for (int i = 0; i < dt.Rows.Count; i++) for (int i = 0; i < dt.Rows.Count; i++)
......
...@@ -138,6 +138,8 @@ namespace AutoTurnOver.Controllers ...@@ -138,6 +138,8 @@ namespace AutoTurnOver.Controllers
{ {
try try
{ {
var fileName = AppContext.BaseDirectory + @"Result\RealtimeStock\周转表.csv";
var m = new Condition_AutoTurnOver var m = new Condition_AutoTurnOver
{ {
searchType = searchType, searchType = searchType,
...@@ -158,112 +160,76 @@ namespace AutoTurnOver.Controllers ...@@ -158,112 +160,76 @@ namespace AutoTurnOver.Controllers
var total = 0; var total = 0;
var service = new Services.SkuAutoTurnServices(); var service = new Services.SkuAutoTurnServices();
var list = service.List(m, 0, int.MaxValue, ref total, order, sort).Select(p => new int page = 1;
int rows = 10000;
while (true)
{ {
p.bailun_sku, var list = service.List(m, page, rows, ref total, order, sort);
p.sku_title, if (list ==null ||list.Count <= 0) break;
p.warehouse_code, page++;
p.warehouse_name,
p.quantity_minimum_order, DataTable table = new DataTable();
p.quantity_final_advise, string[] cols = new string[] { "Sku","商品编码", "内部编码", "sku标题", "仓库编码", "仓库名称", "MOQ",
p.quantity_promotion,
p.quantity_inventory,
p.turnover_days,
p.quantity_safe_inventory,
p.inspection_delivery,
p.status,
p.id,
p.quantity_out_stock,
p.supplier_delivery,
p.transfer_delivery,
p.quantity_purchase,
p.quantity_transfer,
p.forecast_fourteenday_sales,
p.forecast_sevenday_sales,
p.oneday_sales,
p.forecast_oneday_sales2,
p.product_inner_code,
p.product_code,
p.bailun_category_name,
p.monitor_status,
p.supplier_name,
p.buyer_name,
p.delivery_days_error,
p.history_sevenday_sales,
p.history_fourteenday_sales,
p.history_thirtyday_sales,
p.unit_price,
p.weight,
p.usable_stock,
p.suppliers_name,
p.history_sevenday_sales_ebay,
p.history_fourteenday_sales_ebay,
p.history_thirtyday_sales_ebay,
p.shipped_stock,
p.develop_time,
p.has_tort
});
DataTable table = new DataTable();
string[] cols = new string[] { "Sku","商品编码", "内部编码", "sku标题", "仓库编码", "仓库名称", "MOQ",
"采购在途", "调拨在途", "昨日销量", "明日销量", "未来7天日均", "未来14天日均", "建议采购数", "活动促销数量", "采购在途", "调拨在途", "昨日销量", "明日销量", "未来7天日均", "未来14天日均", "建议采购数", "活动促销数量",
"实际库存", "安全库存", "周转天数", "供应商交期", "质检入库天数", "调拨头程天数", "预测是否断货", "缺货数量","监控状态","供应商","采购员","交期异常", "实际库存", "安全库存", "周转天数", "供应商交期", "质检入库天数", "调拨头程天数", "预测是否断货", "缺货数量","监控状态","供应商","采购员","交期异常",
"过去7天日均","过去14天日均","过去30天日均","重量","单价","实时库存","ebay最近7天日均销量","ebay最近14天日均销量","ebay最近30天日均销量","已发货库存","开发时间","是否侵权" "过去7天日均","过去14天日均","过去30天日均","重量","单价","实时库存","ebay最近7天日均销量","ebay最近14天日均销量","ebay最近30天日均销量","已发货库存","开发时间","是否侵权"
}; };
foreach (var item in cols) foreach (var item in cols)
{ {
table.Columns.Add(item); table.Columns.Add(item);
}
foreach (var itemData in list)
{
DataRow row = table.NewRow();
row["Sku"] = itemData.bailun_sku;
row["商品编码"] = itemData.product_code;
row["内部编码"] = itemData.product_inner_code;
row["sku标题"] = itemData.sku_title;
row["仓库编码"] = itemData.warehouse_code;
row["仓库名称"] = itemData.warehouse_name;
row["MOQ"] = itemData.quantity_minimum_order;
row["采购在途"] = itemData.quantity_purchase;
row["调拨在途"] = itemData.quantity_transfer;
row["昨日销量"] = itemData.oneday_sales;
row["明日销量"] = itemData.forecast_oneday_sales2;
row["未来7天日均"] = itemData.forecast_sevenday_sales;
row["未来14天日均"] = itemData.forecast_fourteenday_sales;
row["建议采购数"] = itemData.quantity_final_advise;
row["活动促销数量"] = itemData.quantity_promotion;
row["实际库存"] = itemData.quantity_inventory;
row["安全库存"] = itemData.quantity_safe_inventory;
row["周转天数"] = itemData.turnover_days;
row["供应商交期"] = itemData.supplier_delivery;
row["质检入库天数"] = itemData.inspection_delivery;
row["调拨头程天数"] = itemData.transfer_delivery;
row["预测是否断货"] = itemData.status == 1 ? "是" : "否";
row["缺货数量"] = itemData.quantity_out_stock;
row["监控状态"] = itemData.monitor_status == 1 ? "停止监控" : "监控中";
row["供应商"] = itemData.supplier_name;
row["采购员"] = itemData.buyer_name;
row["交期异常"] = itemData.delivery_days_error;
row["过去7天日均"] = itemData.history_sevenday_sales;
row["过去14天日均"] = itemData.history_fourteenday_sales;
row["过去30天日均"] = itemData.history_thirtyday_sales;
row["重量"] = itemData.weight;
row["单价"] = itemData.unit_price;
row["实时库存"] = itemData.usable_stock;
row["ebay最近7天日均销量"] = itemData.history_sevenday_sales_ebay;
row["ebay最近14天日均销量"] = itemData.history_fourteenday_sales_ebay;
row["ebay最近30天日均销量"] = itemData.history_thirtyday_sales_ebay;
row["已发货库存"] = itemData.shipped_stock;
row["开发时间"] = itemData.develop_time;
row["是否侵权"] = itemData.has_tort;
table.Rows.Add(row);
}
DataTableHelper.SaveCSV(table, fileName);
} }
foreach (var itemData in list)
{
DataRow row = table.NewRow();
row["Sku"] = itemData.bailun_sku;
row["商品编码"] = itemData.product_code;
row["内部编码"] = itemData.product_inner_code;
row["sku标题"] = itemData.sku_title;
row["仓库编码"] = itemData.warehouse_code;
row["仓库名称"] = itemData.warehouse_name;
row["MOQ"] = itemData.quantity_minimum_order;
row["采购在途"] = itemData.quantity_purchase;
row["调拨在途"] = itemData.quantity_transfer;
row["昨日销量"] = itemData.oneday_sales;
row["明日销量"] = itemData.forecast_oneday_sales2;
row["未来7天日均"] = itemData.forecast_sevenday_sales;
row["未来14天日均"] = itemData.forecast_fourteenday_sales;
row["建议采购数"] = itemData.quantity_final_advise;
row["活动促销数量"] = itemData.quantity_promotion;
row["实际库存"] = itemData.quantity_inventory;
row["安全库存"] = itemData.quantity_safe_inventory;
row["周转天数"] = itemData.turnover_days;
row["供应商交期"] = itemData.supplier_delivery;
row["质检入库天数"] = itemData.inspection_delivery;
row["调拨头程天数"] = itemData.transfer_delivery;
row["预测是否断货"] = itemData.status == 1 ? "是" : "否";
row["缺货数量"] = itemData.quantity_out_stock;
row["监控状态"] = itemData.monitor_status == 1 ? "停止监控" : "监控中";
row["供应商"] = itemData.supplier_name;
row["采购员"] = itemData.buyer_name;
row["交期异常"] = itemData.delivery_days_error;
row["过去7天日均"] = itemData.history_sevenday_sales;
row["过去14天日均"] = itemData.history_fourteenday_sales;
row["过去30天日均"] = itemData.history_thirtyday_sales;
row["重量"] = itemData.weight;
row["单价"] = itemData.unit_price;
row["实时库存"] = itemData.usable_stock;
row["ebay最近7天日均销量"] = itemData.history_sevenday_sales_ebay;
row["ebay最近14天日均销量"] = itemData.history_fourteenday_sales_ebay;
row["ebay最近30天日均销量"] = itemData.history_thirtyday_sales_ebay;
row["已发货库存"] = itemData.shipped_stock;
row["开发时间"] = itemData.develop_time;
row["是否侵权"] = itemData.has_tort;
table.Rows.Add(row);
}
var fileName = AppContext.BaseDirectory + @"Result\RealtimeStock\周转表.csv";
DataTableHelper.SaveCSV(table, fileName);
var memory = new MemoryStream(); var memory = new MemoryStream();
using (var stream = new FileStream(fileName, FileMode.Open)) using (var stream = new FileStream(fileName, FileMode.Open))
...@@ -275,6 +241,7 @@ namespace AutoTurnOver.Controllers ...@@ -275,6 +241,7 @@ namespace AutoTurnOver.Controllers
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine(ex.Message + "----" + ex.StackTrace);
return new ContentResult() { Content = ex.Message+"----"+ex.StackTrace }; return new ContentResult() { Content = ex.Message+"----"+ex.StackTrace };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment