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
4ba39c6c
Commit
4ba39c6c
authored
Oct 27, 2020
by
泽锋 李
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增计算退款sku的服务
parent
ba530339
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
276 additions
and
2 deletions
+276
-2
db_config.cs
AutoTurnOver.DB/db_config.cs
+1
-1
dc_auto_return_goods_config_dao.cs
AutoTurnOver.DB/dc_auto_return_goods_config_dao.cs
+185
-0
dc_auto_return_goods_config.cs
AutoTurnOver.Models/dc_auto_return_goods_config.cs
+1
-1
dc_auto_return_goods_sku.cs
AutoTurnOver.Models/dc_auto_return_goods_sku.cs
+73
-0
AverageTargetBackgrounService.cs
...r.Purchase.AverageTarget/AverageTargetBackgrounService.cs
+6
-0
Program.cs
AutoTurnOver.Purchase.AverageTarget/Program.cs
+10
-0
No files found.
AutoTurnOver.DB/db_config.cs
View file @
4ba39c6c
...
...
@@ -1849,7 +1849,7 @@ where 1 = 1 ";
{
throw
new
Exception
(
"系统异常 供应商不存在"
);
}
m
.
suppliers_id
=
supplierData
.
id
;
m
.
suppliers_id
=
supplierData
.
sup_value
;
}
else
{
...
...
AutoTurnOver.DB/dc_auto_return_goods_config_dao.cs
0 → 100644
View file @
4ba39c6c
using
AutoTurnOver.Models
;
using
Bailun.ServiceFabric
;
using
Dapper
;
using
MySql.Data.MySqlClient
;
using
System
;
using
System.Collections.Generic
;
using
System.Linq
;
using
System.Text
;
using
AutoTurnOver.Utility
;
namespace
AutoTurnOver.DB
{
public
class
dc_auto_return_goods_config_dao
:
connectionHelper
{
/// <summary>
/// 计算可以退货的sku
/// </summary>
public
static
void
Calculation
()
{
var
conn
=
_connection
;
var
configs
=
conn
.
Query
<
dc_auto_return_goods_config
>(
" select * from dc_auto_return_goods_config where status=0 "
);
foreach
(
var
item
in
configs
)
{
var
skus
=
GetSkus
(
MyMySqlConnection
.
_connection_read_only
,
item
);
if
(
skus
!=
null
&&
skus
.
Count
>=
1
)
{
var
max_days
=
Math
.
Max
(
item
.
sales_days_1
,
item
.
sales_days_2
);
// 销量过滤
foreach
(
var
itemSku
in
skus
)
{
var
order_dates
=
GetOrderDateList
(
MyMySqlConnection
.
_connection_read_only
,
itemSku
.
bailun_sku
,
itemSku
.
warehouse_code
,
Math
.
Max
(
30
,
max_days
));
var
sales_days_1_date
=
DateTime
.
Now
.
AddDays
(
0
-
item
.
sales_days_1
).
ToDayHome
();
var
sales_days_1_val
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_1_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
);
var
sales_days_2_date
=
DateTime
.
Now
.
AddDays
(
0
-
item
.
sales_days_2
).
ToDayHome
();
var
sales_days_2_val
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_2_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
);
var
sales_days_14_date
=
DateTime
.
Now
.
AddDays
(
0
-
14
).
ToDayHome
();
var
sales_days_7_date
=
DateTime
.
Now
.
AddDays
(
0
-
7
).
ToDayHome
();
var
sales_days_30_date
=
DateTime
.
Now
.
AddDays
(
0
-
30
).
ToDayHome
();
var
temp_val
=
(
sales_days_1_val
*
item
.
sales_weight_1
)
+
(
sales_days_2_val
*
item
.
sales_weight_2
);
var
sales_days_7_val
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_7_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
);
var
sales_days_14_val
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_14_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
);
var
sales_days_30_val
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_30_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
);
if
(
temp_val
<
item
.
sales_average_upper_limit
)
{
var
new_data
=
new
dc_auto_return_goods_sku
{
approval_remarks
=
""
,
bailun_sku
=
itemSku
.
bailun_sku
,
monitor_status
=
""
,
config_id
=
item
.
id
,
config_name
=
item
.
title
,
create_date
=
DateTime
.
Now
,
no_library_sys_out_status
=
0
,
no_library_sys_push_status
=
0
,
oms_out_status
=
0
,
oms_push_status
=
0
,
retun_quantity
=
0
,
sales_average_14
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_14_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
),
sales_average_7
=
order_dates
.
Where
(
s
=>
s
.
paid_time
>=
sales_days_7_date
).
Sum
(
s
=>
s
.
bailun_sku_quantity_ordered
),
sales_average_weight
=
(
sales_days_7_val
*
0.5
M
)
+
(
sales_days_14_val
*
0.25
M
)
+
(
sales_days_30_val
*
0.25
M
),
sku_title
=
itemSku
.
sku_title
,
status
=
0
,
stock
=
itemSku
.
stock
,
stock_amount
=
itemSku
.
stock
*
itemSku
.
unit_price
,
unit_price
=
itemSku
.
unit_price
,
suppliers_id
=
itemSku
.
suppliers_id
,
suppliers_name
=
itemSku
.
suppliers_name
,
warehouse_code
=
itemSku
.
warehouse_code
,
warehouse_name
=
itemSku
.
warehouse_name
};
conn
.
Insert
(
new_data
);
}
}
}
}
}
/// <summary>
/// 查询规则命中的sku
/// </summary>
/// <param name="conn"></param>
/// <param name="config"></param>
/// <returns></returns>
public
static
List
<
sku_dto
>
GetSkus
(
MySqlConnection
conn
,
dc_auto_return_goods_config
config
)
{
var
sql
=
@" select
t1.bailun_sku,
t1.warehouse_code,
t3.warehouse_name,
t2.sku_title_cn as 'sku_title',
t2.suppliers_id,
t2.suppliers_name,
t2.unit_price,
t1.usable_stock as 'stock'
from dc_base_stock as t1
left join dc_base_sku as t2 on t1.bailun_sku = t2.bailun_sku
left join dc_base_warehouse as t3 on t1.warehouse_code = t3.warehouse_code
left join dc_base_supplier as t4 on t2.suppliers_id = t4.sup_value
where t1.usable_stock>0
"
;
DynamicParameters
parameters
=
new
DynamicParameters
();
if
(!
string
.
IsNullOrWhiteSpace
(
config
.
warehouse_code
))
{
sql
+=
" and t1.warehouse_code =@warehouse_code "
;
parameters
.
Add
(
"warehouse_code"
,
config
.
warehouse_code
);
}
if
(
config
.
has_no_library
==
1
)
{
sql
+=
" and t4.nostock =1 "
;
}
if
(
config
.
has_return
==
1
)
{
sql
+=
" and t4.isaccept_refund =1 "
;
}
if
(
config
.
suppliers_id
>
0
)
{
sql
+=
" and t2.suppliers_id =@suppliers_id "
;
parameters
.
Add
(
"suppliers_id"
,
config
.
suppliers_id
);
}
if
(
config
.
first_inbound_days_min
>
0
)
{
sql
+=
" and t1.first_inbound_date <= @first_inbound_days_min "
;
parameters
.
Add
(
"first_inbound_days_min"
,
DateTime
.
Now
.
AddDays
(
0
-
(
int
)
config
.
first_inbound_days_min
));
}
if
(
config
.
first_inbound_days_max
>
0
)
{
sql
+=
" and t1.first_inbound_date >= @first_inbound_days_max "
;
parameters
.
Add
(
"first_inbound_days_max"
,
DateTime
.
Now
.
AddDays
(
0
-
(
int
)
config
.
first_inbound_days_max
));
}
return
conn
.
Query
<
sku_dto
>(
sql
,
parameters
).
AsList
();
}
/// <summary>
/// 查询订单时间
/// </summary>
/// <param name="bailun_sku"></param>
/// <param name="warehouse_code"></param>
/// <param name="days">天数</param>
/// <returns></returns>
public
static
List
<
order_dto
>
GetOrderDateList
(
MySqlConnection
conn
,
string
bailun_sku
,
string
warehouse_code
,
int
days
)
{
var
table_name
=
"dc_base_oms_sku_30"
;
if
(
days
>
30
)
{
table_name
=
"dc_base_oms_sku"
;
}
var
sql
=
$@" select paid_time,bailun_sku_quantity_ordered from
{
table_name
}
where
has_delete = 0
and has_scalp = 0
and has_buyer_remark = 0
and has_platsku_remark = 0
and has_innersale = 0
and bailun_sku=@bailun_sku and warehouse_code=@warehouse_code "
;
DynamicParameters
parameters
=
new
DynamicParameters
();
parameters
.
Add
(
"bailun_sku"
,
bailun_sku
);
parameters
.
Add
(
"warehouse_code"
,
warehouse_code
);
if
(
days
!=
30
)
{
sql
+=
" paid_time>=@days "
;
parameters
.
Add
(
"days"
,
DateTime
.
Now
.
AddDays
(
0
-
days
).
ToString
(
"yyyy-MM-dd 00:00:00"
));
}
return
conn
.
Query
<
order_dto
>(
sql
,
parameters
).
AsList
();
}
public
class
order_dto
{
public
DateTime
paid_time
{
get
;
set
;
}
public
int
bailun_sku_quantity_ordered
{
get
;
set
;
}
}
public
class
sku_dto
{
public
string
bailun_sku
{
get
;
set
;
}
public
string
warehouse_code
{
get
;
set
;
}
public
string
warehouse_name
{
get
;
set
;
}
public
string
sku_title
{
get
;
set
;
}
public
int
suppliers_id
{
get
;
set
;
}
public
string
suppliers_name
{
get
;
set
;
}
public
decimal
unit_price
{
get
;
set
;
}
public
decimal
stock
{
get
;
set
;
}
}
}
}
AutoTurnOver.Models/dc_auto_return_goods_config.cs
View file @
4ba39c6c
...
...
@@ -20,7 +20,7 @@ namespace AutoTurnOver.Models
public
decimal
first_inbound_days_max
{
get
;
set
;
}
public
int
sales_days_1
{
get
;
set
;
}
public
decimal
sales_weight_1
{
get
;
set
;
}
public
decimal
sales_days_2
{
get
;
set
;
}
public
int
sales_days_2
{
get
;
set
;
}
public
decimal
sales_weight_2
{
get
;
set
;
}
public
decimal
sales_average_upper_limit
{
get
;
set
;
}
public
DateTime
create_date
{
get
;
set
;
}
...
...
AutoTurnOver.Models/dc_auto_return_goods_sku.cs
0 → 100644
View file @
4ba39c6c
using
System
;
using
System.Collections.Generic
;
using
System.Text
;
namespace
AutoTurnOver.Models
{
public
class
dc_auto_return_goods_sku
{
public
int
id
{
get
;
set
;
}
public
string
bailun_sku
{
get
;
set
;
}
public
string
warehouse_code
{
get
;
set
;
}
public
string
warehouse_name
{
get
;
set
;
}
public
int
config_id
{
get
;
set
;
}
public
string
config_name
{
get
;
set
;
}
public
DateTime
create_date
{
get
;
set
;
}
public
string
monitor_status
{
get
;
set
;
}
public
string
sku_title
{
get
;
set
;
}
public
int
suppliers_id
{
get
;
set
;
}
/// <summary>
/// 供应商名称
/// </summary>
public
string
suppliers_name
{
get
;
set
;
}
/// <summary>
/// 单价
/// </summary>
public
decimal
unit_price
{
get
;
set
;
}
/// <summary>
/// 可用库存
/// </summary>
public
decimal
stock
{
get
;
set
;
}
/// <summary>
/// 库存金额
/// </summary>
public
decimal
stock_amount
{
get
;
set
;
}
/// <summary>
/// 7 日日均销量
/// </summary>
public
decimal
sales_average_7
{
get
;
set
;
}
/// <summary>
/// 14 日日均销量
/// </summary>
public
decimal
sales_average_14
{
get
;
set
;
}
/// <summary>
/// 加权日均销量
/// </summary>
public
decimal
sales_average_weight
{
get
;
set
;
}
/// <summary>
/// 退货数量
/// </summary>
public
decimal
retun_quantity
{
get
;
set
;
}
/// <summary>
/// 待审核=0, 已审核=1, 驳回=-1
/// </summary>
public
decimal
status
{
get
;
set
;
}
public
string
approval_remarks
{
get
;
set
;
}
/// <summary>
/// 未推送= 0,已推送=1
/// </summary>
public
int
oms_push_status
{
get
;
set
;
}
/// <summary>
/// 未出库=0 , 已出库=1
/// </summary>
public
int
oms_out_status
{
get
;
set
;
}
/// <summary>
/// 未推送= 0,已推送=1
/// </summary>
public
int
no_library_sys_push_status
{
get
;
set
;
}
/// <summary>
/// 未出库=0 , 已出库=1
/// </summary>
public
int
no_library_sys_out_status
{
get
;
set
;
}
}
}
AutoTurnOver.Purchase.AverageTarget/AverageTargetBackgrounService.cs
View file @
4ba39c6c
...
...
@@ -46,6 +46,12 @@ namespace AutoTurnOver.Purchase.AverageTarget
{
var
now
=
DateTime
.
Now
;
// 判断是不是指定的时间
if
(
now
.
Hour
==
00
&&
now
.
Minute
==
20
)
{
Console
.
WriteLine
(
$"开始 计算退款sku,线程Id:
{
Thread
.
CurrentThread
.
ManagedThreadId
}
,
{
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)}
"
);
dc_auto_return_goods_config_dao
.
Calculation
();
Console
.
WriteLine
(
$"结束 计算退款sku,线程Id:
{
Thread
.
CurrentThread
.
ManagedThreadId
}
,
{
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)}
"
);
}
// 判断是不是指定的时间
if
(
now
.
Hour
==
23
&&
now
.
Minute
==
58
)
{
Console
.
WriteLine
(
$"开始同步sku刊登状态,线程Id:
{
Thread
.
CurrentThread
.
ManagedThreadId
}
,
{
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd HH:mm:ss"
)}
"
);
...
...
AutoTurnOver.Purchase.AverageTarget/Program.cs
View file @
4ba39c6c
...
...
@@ -21,6 +21,16 @@ namespace AutoTurnOver.Purchase.AverageTarget
static
async
Task
Main
(
string
[]
args
)
{
Console
.
WriteLine
(
"采购平均值计算任务启动..."
);
try
{
}
catch
(
Exception
ex
)
{
throw
;
}
// 创建采购计划
//Console.WriteLine($"开始同步sku刊登状态,线程Id:{Thread.CurrentThread.ManagedThreadId},{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
//report_cash_flow_forecast_dao.Calculation();
...
...
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