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
610d5333
Commit
610d5333
authored
Aug 26, 2021
by
zhoujinhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更正缺货查询
parent
9998c623
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
166 additions
and
25 deletions
+166
-25
dc_auto_week_shortage_dao.cs
AutoTurnOver.DB/dc_auto_week_shortage_dao.cs
+72
-9
gmt_out_stock_page_output_dto.cs
.../ApiDto/WeeklyStatistics/gmt_out_stock_page_output_dto.cs
+40
-0
week_shortage_details_page_output_dto.cs
...WeeklyStatistics/week_shortage_details_page_output_dto.cs
+11
-5
WeeklyStatisticsServices.cs
AutoTurnOver.Services/WeeklyStatisticsServices.cs
+34
-8
WeeklyStatisticsController.cs
AutoTurnOver/Controllers/WeeklyStatisticsController.cs
+9
-3
No files found.
AutoTurnOver.DB/dc_auto_week_shortage_dao.cs
View file @
610d5333
...
...
@@ -23,7 +23,13 @@ namespace AutoTurnOver.DB
public
static
List
<
week_shortage_details_page_output_dto
>
GetWeekShortagePageList
(
week_shortage_details_page_input_dto
m
,
int
offset
,
int
limit
,
ref
int
total
)
{
StringBuilder
sql
=
new
StringBuilder
();
sql
.
Append
(
" SELECT * FROM dc_auto_week_shortage_details ORDER BY create_date_time DESC "
);
sql
.
Append
(
@"
SELECT t1.*,t2.product_code,t3.warehouse_name
FROM dc_auto_week_shortage_details AS t1
LEFT JOIN dc_base_warehouse AS t3 ON t3.warehouse_code = t1.warehouse_code
LEFT JOIN dc_base_sku AS t2 ON t2.bailun_sku = t1.bailun_sku
WHERE 1=1 ORDER BY t1.create_date_time DESC
"
);
try
{
var
obj
=
_connection
.
Page
<
week_shortage_details_page_output_dto
>(
offset
,
limit
,
sql
.
ToString
(),
ref
total
);
...
...
@@ -37,16 +43,9 @@ namespace AutoTurnOver.DB
public
static
bool
Insert
(
dc_auto_week_shortage_details
model
)
{
StringBuilder
sql
=
new
StringBuilder
();
sql
.
Append
(
"INSERT INTO `dc_auto_week_shortage_details` (`bailun_sku`, `warehouse_code`, `warehousing_time`, `historical_purchase_quantity`,"
);
sql
.
Append
(
" `historical_sales_quantity`, `seven_days_average`, `stockout_time`, `pds_item_id`, `ana_seven_days_average`,"
);
sql
.
Append
(
" `first_sales_platform_average`, `second_sales_platform_average`, `safety_stock`, `start_date`, `end_date`, `create_date_time`, `last_synch_time`)"
);
sql
.
Append
(
" VALUES (@bailun_sku, @warehouse_code, @warehousing_time, @historical_purchase_quantity,"
);
sql
.
Append
(
" @historical_sales_quantity, @seven_days_average, @stockout_time, @pds_item_id, @ana_seven_days_average,"
);
sql
.
Append
(
" @first_sales_platform_average, @second_sales_platform_average, @safety_stock, @start_date, @end_date, @create_date_time, @last_synch_time);"
);
try
{
var
count
=
_connection
.
Execute
(
sql
.
ToString
(),
model
);
var
count
=
_connection
.
Insert
(
model
);
return
count
>
0
;
}
catch
(
Exception
ex
)
...
...
@@ -74,5 +73,69 @@ namespace AutoTurnOver.DB
return
new
dc_auto_week_shortage_details
();
}
}
/// <summary>
/// 查询缺货数据
/// </summary>
/// <param name="startTime"></param>
/// <param name="endtime"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <param name="total"></param>
/// <returns></returns>
public
static
List
<
gmt_out_stock_page_output_dto
>
GetGmtOutStockPageList
(
DateTime
startTime
,
DateTime
endtime
,
int
offset
,
int
limit
,
ref
int
total
)
{
StringBuilder
sql
=
new
StringBuilder
();
sql
.
Append
(
$@"
SELECT t1.*,t3.first_inbound_date,t4.bailun_sku_quantity_ordered FROM(
SELECT bailun_sku,warehouse_code,MAX(gmt_out_stock_modified) AS gmt_out_stock_modified FROM dc_mid_transit
WHERE gmt_out_stock_modified>= '
{
startTime
}
' AND gmt_out_stock_modified< '
{
endtime
}
' GROUP BY bailun_sku,warehouse_code
) AS t1
LEFT JOIN dc_base_stock AS t3 ON t3.bailun_sku = t1.bailun_sku AND t3.warehouse_code = t1.warehouse_code
LEFT JOIN(
SELECT bailun_sku,warehouse_code,SUM(bailun_sku_quantity_ordered)bailun_sku_quantity_ordered FROM
dc_base_oms_sku_30 WHERE gmt_create>= '
{
startTime
}
' AND gmt_create< '
{
endtime
}
'
and has_fba_s = 0 and has_delete = 0 and has_scalp = 0
and has_buyer_remark = 0 and has_platsku_remark = 0 and has_innersale = 0 and bailun_order_status !='Canceled'
and platform_order_type != '手工单' GROUP BY bailun_sku,warehouse_code
)AS t4 ON t4.bailun_sku = t1.bailun_sku AND t4.warehouse_code = t1.warehouse_code"
);
try
{
var
obj
=
_connection
.
Page
<
gmt_out_stock_page_output_dto
>(
offset
,
limit
,
sql
.
ToString
(),
ref
total
);
return
obj
.
AsList
();
}
catch
(
Exception
ex
)
{
return
new
List
<
gmt_out_stock_page_output_dto
>();
}
}
/// <summary>
/// 查询采购数量
/// </summary>
/// <param name="skus"></param>
/// <param name="startTime"></param>
/// <param name="endtime"></param>
/// <returns></returns>
public
static
List
<
gmt_out_stock_page_output_dto
>
GetSkuPurchaseList
(
List
<
string
>
skus
,
DateTime
startTime
,
DateTime
endtime
)
{
StringBuilder
sql
=
new
StringBuilder
();
string
sku
=
"'"
+
string
.
Join
(
"','"
,
skus
)
+
"'"
;
sql
.
Append
(
@"
SELECT bailun_sku,warehouse_code,SUM(count) purchase_num FROM dc_base_purchase WHERE `status` = 1
AND create_time>=@startTime AND create_time<@endtime AND bailun_sku IN("
+
sku
+
") GROUP BY bailun_sku,warehouse_code"
);
try
{
var
parameters
=
new
DynamicParameters
();
parameters
.
Add
(
"startTime"
,
startTime
);
parameters
.
Add
(
"endtime"
,
endtime
);
var
obj
=
_connection
.
Query
<
gmt_out_stock_page_output_dto
>(
sql
.
ToString
(),
parameters
);
return
obj
.
AsList
();
}
catch
(
Exception
)
{
return
new
List
<
gmt_out_stock_page_output_dto
>();
}
}
}
}
AutoTurnOver.Models/ApiDto/WeeklyStatistics/gmt_out_stock_page_output_dto.cs
0 → 100644
View file @
610d5333
using
System
;
namespace
AutoTurnOver.Models.ApiDto.WeeklyStatistics
{
/// <summary>
/// 查询缺货记录输出参数
/// </summary>
public
class
gmt_out_stock_page_output_dto
{
/// <summary>
/// sku
/// </summary>
public
string
bailun_sku
{
get
;
set
;
}
/// <summary>
/// 仓库编码
/// </summary>
public
string
warehouse_code
{
get
;
set
;
}
/// <summary>
/// 缺货时间
/// </summary>
public
DateTime
gmt_out_stock_modified
{
get
;
set
;
}
/// <summary>
/// 首次入库时间
/// </summary>
public
DateTime
?
first_inbound_date
{
get
;
set
;
}
/// <summary>
/// 销售数量
/// </summary>
public
int
?
bailun_sku_quantity_ordered
{
get
;
set
;
}
/// <summary>
/// 采购数量
/// </summary>
public
int
?
purchase_num
{
get
;
set
;
}
}
}
AutoTurnOver.Models/ApiDto/WeeklyStatistics/week_shortage_details_page_output_dto.cs
View file @
610d5333
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
AutoTurnOver.Models.ApiDto.WeeklyStatistics
namespace
AutoTurnOver.Models.ApiDto.WeeklyStatistics
{
/// <summary>
/// aims普货周缺货数据输出参数信息
/// </summary>
public
class
week_shortage_details_page_output_dto
:
dc_auto_week_shortage_details
{
/// <summary>
/// 产品编码
/// </summary>
public
string
product_code
{
get
;
set
;
}
/// <summary>
/// 仓库名称
/// </summary>
public
string
warehouse_name
{
get
;
set
;
}
}
}
\ No newline at end of file
AutoTurnOver.Services/WeeklyStatisticsServices.cs
View file @
610d5333
...
...
@@ -3,6 +3,7 @@ using AutoTurnOver.Models.ApiDto.WeeklyStatistics;
using
AutoTurnOver.Utility
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
namespace
AutoTurnOver.Services
{
...
...
@@ -81,7 +82,7 @@ namespace AutoTurnOver.Services
}
/// <summary>
/// 定时执行
/// 定时执行
冗余数据
/// </summary>
public
void
TimingWeekRedundancyTask
()
{
...
...
@@ -113,17 +114,42 @@ namespace AutoTurnOver.Services
}
/// <summary>
/// 定时执行
/// 定时执行
缺货数据
/// </summary>
public
void
TimingWeekShortageTask
()
{
var
model
=
new
Models
.
dc_auto_week_shortage_details
int
limit
=
20
;
int
total
=
0
;
for
(
int
i
=
1
;
i
<
30000
;
i
++)
{
create_date_time
=
DateTime
.
Now
,
start_date
=
DateHelper
.
GetWeekFirstDayMon
(
DateTime
.
Now
.
AddDays
(-
1
)),
end_date
=
DateHelper
.
GetWeekLastDaySun
(
DateTime
.
Now
.
AddDays
(-
1
))
};
dc_auto_week_shortage_dao
.
Insert
(
model
);
int
offset
=
(
i
-
1
)
*
limit
;
DateTime
startTime
=
DateHelper
.
GetWeekFirstDayMon
(
DateTime
.
Now
);
DateTime
endtime
=
DateHelper
.
GetWeekLastDaySun
(
DateTime
.
Now
).
AddDays
(
1
).
AddMilliseconds
(-
1
);
var
dataList
=
dc_auto_week_shortage_dao
.
GetGmtOutStockPageList
(
startTime
,
endtime
,
offset
,
limit
,
ref
total
);
if
(
dataList
.
Count
<=
0
)
break
;
var
skus
=
dataList
.
Select
(
x
=>
x
.
bailun_sku
).
ToList
();
var
findPurchases
=
dc_auto_week_shortage_dao
.
GetSkuPurchaseList
(
skus
,
startTime
,
endtime
);
foreach
(
var
item
in
dataList
)
{
var
purchaseModel
=
findPurchases
.
FirstOrDefault
(
x
=>
x
.
bailun_sku
==
item
.
bailun_sku
);
var
model
=
new
Models
.
dc_auto_week_shortage_details
{
create_date_time
=
DateTime
.
Now
,
stockout_time
=
item
.
gmt_out_stock_modified
,
bailun_sku
=
item
.
bailun_sku
,
last_synch_time
=
DateTime
.
Now
,
warehouse_code
=
item
.
warehouse_code
,
warehousing_time
=
item
.
first_inbound_date
,
historical_sales_quantity
=
item
.
bailun_sku_quantity_ordered
??
0
,
historical_purchase_quantity
=
purchaseModel
?.
purchase_num
??
0
,
start_date
=
DateHelper
.
GetWeekFirstDayMon
(
DateTime
.
Now
.
AddDays
(-
1
)),
end_date
=
DateHelper
.
GetWeekLastDaySun
(
DateTime
.
Now
.
AddDays
(-
1
))
};
dc_auto_week_shortage_dao
.
Insert
(
model
);
Console
.
WriteLine
(
$"写入缺货数据:
{
i
}
---
{
item
.
bailun_sku
}
"
);
}
}
}
}
}
AutoTurnOver/Controllers/WeeklyStatisticsController.cs
View file @
610d5333
...
...
@@ -58,7 +58,7 @@ namespace AutoTurnOver.Controllers
DataTable
table
=
new
DataTable
();
string
[]
cols
=
new
string
[]
{
"商品编码"
,
"SKU"
,
"名称"
,
"周销量"
,
"周gmv"
,
"周退款数"
,
"周退款金额"
,
"利润率"
,
"利润额"
,
"退款率"
,
"创建时间"
"商品编码"
,
"SKU"
,
"名称"
,
"周销量"
,
"周gmv"
,
"周退款数"
,
"周退款金额"
,
"利润率"
,
"利润额"
,
"退款率"
,
"
起始日期"
,
"结束日期"
,
"
创建时间"
};
foreach
(
var
item
in
cols
)
{
...
...
@@ -80,6 +80,8 @@ namespace AutoTurnOver.Controllers
row
[
"利润率"
]
=
itemData
.
profit_margin
;
row
[
"利润额"
]
=
itemData
.
amount_of_profit
;
row
[
"退款率"
]
=
itemData
.
refund_rate
;
row
[
"起始日期"
]
=
itemData
.
start_date
;
row
[
"结束日期"
]
=
itemData
.
end_date
;
row
[
"创建时间"
]
=
itemData
.
create_date_time
;
table
.
Rows
.
Add
(
row
);
...
...
@@ -134,7 +136,7 @@ namespace AutoTurnOver.Controllers
DataTable
table
=
new
DataTable
();
string
[]
cols
=
new
string
[]
{
"商品编码"
,
"SKU"
,
"仓库编码"
,
"仓库名称"
,
"入库时间"
,
"过去7天日均"
,
"总库存数"
,
"总库存金额"
,
"冗余数"
,
"冗余金额"
,
"冗余发生日期"
,
"创建时间"
"商品编码"
,
"SKU"
,
"仓库编码"
,
"仓库名称"
,
"入库时间"
,
"过去7天日均"
,
"总库存数"
,
"总库存金额"
,
"冗余数"
,
"冗余金额"
,
"冗余发生日期"
,
"
起始日期"
,
"结束日期"
,
"
创建时间"
};
foreach
(
var
item
in
cols
)
{
...
...
@@ -156,6 +158,8 @@ namespace AutoTurnOver.Controllers
row
[
"冗余数"
]
=
itemData
.
redundant_number
;
row
[
"冗余金额"
]
=
itemData
.
redundancy_amount
;
row
[
"冗余发生日期"
]
=
itemData
.
redundancy_occurrence_date
;
row
[
"起始日期"
]
=
itemData
.
start_date
;
row
[
"结束日期"
]
=
itemData
.
end_date
;
row
[
"创建时间"
]
=
itemData
.
create_date_time
;
table
.
Rows
.
Add
(
row
);
}
...
...
@@ -209,7 +213,7 @@ namespace AutoTurnOver.Controllers
DataTable
table
=
new
DataTable
();
string
[]
cols
=
new
string
[]
{
"商品编码"
,
"SKU"
,
"仓库编码"
,
"仓库名称"
,
"入库时间"
,
"历史采购数量"
,
"历史销售数量"
,
"过去7天日均"
,
"缺货时间"
,
"pds开发竞品item"
,
"ana市场模糊7日均"
,
"第一销售平台7日均"
,
"第二销售平台7日均"
,
"安全库存"
,
"创建时间"
"ana市场模糊7日均"
,
"第一销售平台7日均"
,
"第二销售平台7日均"
,
"安全库存"
,
"
起始日期"
,
"结束日期"
,
"
创建时间"
};
foreach
(
var
item
in
cols
)
{
...
...
@@ -234,6 +238,8 @@ namespace AutoTurnOver.Controllers
row
[
"第一销售平台7日均"
]
=
itemData
.
first_sales_platform_average
;
row
[
"第二销售平台7日均"
]
=
itemData
.
second_sales_platform_average
;
row
[
"安全库存"
]
=
itemData
.
safety_stock
;
row
[
"起始日期"
]
=
itemData
.
start_date
;
row
[
"结束日期"
]
=
itemData
.
end_date
;
row
[
"创建时间"
]
=
itemData
.
create_date_time
;
table
.
Rows
.
Add
(
row
);
}
...
...
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