Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
data-center-auto
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bltdc
data-center-auto
Commits
cdcdeac0
Commit
cdcdeac0
authored
Jul 18, 2019
by
lizefeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导出优化
parent
23bd71bb
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
200 additions
and
86 deletions
+200
-86
SkuAutoTurnServices.cs
AutoTurnOver.Services/SkuAutoTurnServices.cs
+91
-0
CsvFileHelper.cs
AutoTurnOver.Utility/CsvFileHelper.cs
+105
-0
CsvFileHelper.cs
AutoTurnOver/Common/CsvFileHelper.cs
+1
-1
DailyController.cs
AutoTurnOver/Controllers/DailyController.cs
+2
-1
SkuAutoTurnController.cs
AutoTurnOver/Controllers/SkuAutoTurnController.cs
+1
-84
No files found.
AutoTurnOver.Services/SkuAutoTurnServices.cs
View file @
cdcdeac0
...
...
@@ -3,6 +3,9 @@ using System.Collections.Generic;
using
System.Text
;
using
AutoTurnOver.Models
;
using
System.Linq
;
using
System.IO
;
using
System.Data
;
using
AutoTurnOver.Utility
;
namespace
AutoTurnOver.Services
{
...
...
@@ -271,5 +274,93 @@ namespace AutoTurnOver.Services
return
DB
.
dc_auto_turnover
.
SkuNewSupplierDeliveryList
();
}
public
MemoryStream
Export
(
UserData
user
,
Condition_AutoTurnOver
m
,
string
order
,
string
sort
)
{
var
fileName
=
AppContext
.
BaseDirectory
+
$@"Result\RealtimeStock\
{
user
.
UserAccount
}
周转表.csv"
;
var
total
=
0
;
var
service
=
new
Services
.
SkuAutoTurnServices
();
int
page
=
1
;
int
rows
=
50000
;
while
(
true
)
{
var
list
=
service
.
List
(
m
,
(
page
-
1
)
*
rows
,
rows
,
ref
total
,
order
,
sort
);
if
(
list
==
null
||
list
.
Count
<=
0
)
break
;
DataTable
table
=
new
DataTable
();
string
[]
cols
=
new
string
[]
{
"Sku"
,
"商品编码"
,
"内部编码"
,
"sku标题"
,
"仓库编码"
,
"仓库名称"
,
"MOQ"
,
"采购在途"
,
"调拨在途"
,
"昨日销量"
,
"明日销量"
,
"未来7天日均"
,
"未来14天日均"
,
"建议采购数"
,
"活动促销数量"
,
"实际库存"
,
"安全库存"
,
"周转天数"
,
"供应商交期"
,
"质检入库天数"
,
"调拨头程天数"
,
"预测是否断货"
,
"缺货数量"
,
"监控状态"
,
"供应商"
,
"采购员"
,
"交期异常"
,
"过去7天日均"
,
"过去14天日均"
,
"过去30天日均"
,
"重量"
,
"单价"
,
"实时库存"
,
"ebay最近7天日均销量"
,
"ebay最近14天日均销量"
,
"ebay最近30天日均销量"
,
"已发货库存"
,
"开发时间"
,
"是否侵权"
};
foreach
(
var
item
in
cols
)
{
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
);
}
CsvFileHelper
.
SaveCSV
(
table
,
fileName
,
page
==
1
);
page
++;
}
var
memory
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
fileName
,
FileMode
.
Open
))
{
stream
.
CopyTo
(
memory
);
}
memory
.
Position
=
0
;
return
memory
;
}
}
}
AutoTurnOver.Utility/CsvFileHelper.cs
0 → 100644
View file @
cdcdeac0
using
System
;
using
System.Collections.Generic
;
using
System.Data
;
using
System.IO
;
using
System.Linq
;
using
System.Net
;
using
System.Text
;
using
System.Text.RegularExpressions
;
namespace
AutoTurnOver.Utility
{
public
class
CsvFileHelper
{
/// <summary>
/// 将DataTable中数据写入到CSV文件中
/// </summary>
/// <param name="dt">提供保存数据的DataTable</param>
/// <param name="fileName">CSV的文件路径</param>
/// <param name="isShowColumnName">是否写出列名</param>
public
static
void
SaveCSV
(
DataTable
dt
,
string
fullPath
,
bool
isShowColumnName
=
true
)
{
FileInfo
fi
=
new
FileInfo
(
fullPath
);
if
(!
fi
.
Directory
.
Exists
)
{
fi
.
Directory
.
Create
();
}
FileStream
fs
=
isShowColumnName
?
new
FileStream
(
fullPath
,
System
.
IO
.
FileMode
.
Create
,
System
.
IO
.
FileAccess
.
Write
)
:
new
FileStream
(
fullPath
,
System
.
IO
.
FileMode
.
Append
,
System
.
IO
.
FileAccess
.
Write
);
//StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
StreamWriter
sw
=
new
StreamWriter
(
fs
,
System
.
Text
.
Encoding
.
UTF8
);
string
data
=
""
;
//写出列名称
if
(
isShowColumnName
)
{
for
(
int
i
=
0
;
i
<
dt
.
Columns
.
Count
;
i
++)
{
data
+=
dt
.
Columns
[
i
].
ColumnName
.
ToString
();
if
(
i
<
dt
.
Columns
.
Count
-
1
)
{
data
+=
","
;
}
}
sw
.
WriteLine
(
data
);
}
//写出各行数据
for
(
int
i
=
0
;
i
<
dt
.
Rows
.
Count
;
i
++)
{
data
=
""
;
for
(
int
j
=
0
;
j
<
dt
.
Columns
.
Count
;
j
++)
{
string
str
=
dt
.
Rows
[
i
][
j
].
ToString
();
//if (str.Contains(',') || str.Contains('"')
// || str.Contains('\r') || str.Contains('\n')) //含逗号 冒号 换行符的需要放到引号中
//{
// str = string.Format("\"{0}\"", str);
//}
data
+=
ToStr
(
str
);
if
(
j
<
dt
.
Columns
.
Count
-
1
)
{
data
+=
","
;
}
}
sw
.
WriteLine
(
data
);
}
sw
.
Close
();
fs
.
Close
();
}
private
static
string
ToStr
(
object
obj
)
{
if
(
obj
==
null
)
return
""
;
return
obj
.
ToString
().
Replace
(
","
,
""
).
Replace
(
"\n"
,
""
);
}
/// <summary>
/// 将DataTable转成csv字符串
/// </summary>
/// <param name="table"></param>
/// <returns></returns>
public
static
string
ToCSV
(
DataTable
table
)
{
var
result
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
table
.
Columns
.
Count
;
i
++)
{
result
.
Append
(
table
.
Columns
[
i
].
ColumnName
.
ToString
());
result
.
Append
(
i
==
table
.
Columns
.
Count
-
1
?
"\n"
:
","
);
}
foreach
(
DataRow
row
in
table
.
Rows
)
{
for
(
int
i
=
0
;
i
<
table
.
Columns
.
Count
;
i
++)
{
string
str
=
row
[
i
].
ToString
();
if
(
str
.
Contains
(
','
)
||
str
.
Contains
(
'"'
)
||
str
.
Contains
(
'\r'
)
||
str
.
Contains
(
'\n'
))
//含逗号 冒号 换行符的需要放到引号中
{
str
=
string
.
Format
(
"\"{0}\""
,
str
);
}
result
.
Append
(
str
);
result
.
Append
(
i
==
table
.
Columns
.
Count
-
1
?
"\n"
:
","
);
}
}
return
result
.
ToString
();
}
}
}
AutoTurnOver/Common/CsvFileHelper.cs
View file @
cdcdeac0
...
...
@@ -12,7 +12,7 @@ namespace AutoTurnOver.Common
/// <summary>
/// csv操作类
/// </summary>
public
class
CsvFileHelper
public
class
CsvFileHelper
_bak
{
/// <summary>
/// 将DataTable中数据写入到CSV文件中
...
...
AutoTurnOver/Controllers/DailyController.cs
View file @
cdcdeac0
...
...
@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using
AutoTurnOver.Common
;
using
AutoTurnOver.Models
;
using
AutoTurnOver.Services
;
using
AutoTurnOver.Utility
;
using
Microsoft.AspNetCore.Mvc
;
namespace
AutoTurnOver.Controllers
...
...
@@ -115,7 +116,7 @@ namespace AutoTurnOver.Controllers
/// <param name="sku"></param>
/// <param name="warehousecode"></param>
/// <returns></returns>
public
FileResult
ExportRealtime
(
string
sku
,
string
bailun_sku
,
string
warehousecode
,
string
product_inner_code
,
string
sku_title_cn
,
string
supplier_name
,
string
warehousetype
,
int
?
warehousearea
,
int
?
has_tort
=
null
)
public
FileResult
ExportRealtime
(
string
sku
,
string
bailun_sku
,
string
warehousecode
,
string
product_inner_code
,
string
sku_title_cn
,
string
supplier_name
,
int
offset
,
int
limit
,
string
order
,
string
sort
,
string
warehousetype
,
int
?
warehousearea
,
int
?
has_tort
=
null
)
{
var
user
=
AutoUtility
.
GetUser
();
var
services
=
new
DailyServices
();
...
...
AutoTurnOver/Controllers/SkuAutoTurnController.cs
View file @
cdcdeac0
...
...
@@ -99,8 +99,6 @@ namespace AutoTurnOver.Controllers
{
var
user
=
AutoUtility
.
GetUser
();
if
(
user
==
null
)
throw
new
Exception
(
"登陆失效,请重新登录"
);
var
fileName
=
AppContext
.
BaseDirectory
+
$@"Result\RealtimeStock\
{
user
.
UserAccount
}
周转表.csv"
;
var
m
=
new
Condition_AutoTurnOver
{
searchType
=
searchType
,
...
...
@@ -118,88 +116,7 @@ namespace AutoTurnOver.Controllers
supplier_name
=
supplier_name
,
has_tort
=
has_tort
};
var
total
=
0
;
var
service
=
new
Services
.
SkuAutoTurnServices
();
int
page
=
1
;
int
rows
=
50000
;
while
(
true
)
{
var
list
=
service
.
List
(
m
,
(
page
-
1
)*
rows
,
rows
,
ref
total
,
order
,
sort
);
if
(
list
==
null
||
list
.
Count
<=
0
)
break
;
DataTable
table
=
new
DataTable
();
string
[]
cols
=
new
string
[]
{
"Sku"
,
"商品编码"
,
"内部编码"
,
"sku标题"
,
"仓库编码"
,
"仓库名称"
,
"MOQ"
,
"采购在途"
,
"调拨在途"
,
"昨日销量"
,
"明日销量"
,
"未来7天日均"
,
"未来14天日均"
,
"建议采购数"
,
"活动促销数量"
,
"实际库存"
,
"安全库存"
,
"周转天数"
,
"供应商交期"
,
"质检入库天数"
,
"调拨头程天数"
,
"预测是否断货"
,
"缺货数量"
,
"监控状态"
,
"供应商"
,
"采购员"
,
"交期异常"
,
"过去7天日均"
,
"过去14天日均"
,
"过去30天日均"
,
"重量"
,
"单价"
,
"实时库存"
,
"ebay最近7天日均销量"
,
"ebay最近14天日均销量"
,
"ebay最近30天日均销量"
,
"已发货库存"
,
"开发时间"
,
"是否侵权"
};
foreach
(
var
item
in
cols
)
{
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
);
}
CsvFileHelper
.
SaveCSV
(
table
,
fileName
,
page
==
1
);
page
++;
}
var
memory
=
new
MemoryStream
();
using
(
var
stream
=
new
FileStream
(
fileName
,
FileMode
.
Open
))
{
stream
.
CopyTo
(
memory
);
}
memory
.
Position
=
0
;
var
memory
=
new
SkuAutoTurnServices
().
Export
(
user
,
m
,
order
,
sort
);
return
File
(
memory
,
"text/csv"
,
$"
{
user
.
UserAccount
}
周转表.csv"
);
}
catch
(
Exception
ex
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment