Commit 8ba92607 by 泽锋 李

新增 Shopify 自动备货服务

parent 5b5c8c50
......@@ -526,7 +526,7 @@ and not exists ( select * from dc_auto_shortage_push_not_config where dc_auto_sh
// 全量推送只能推送有开启监控的
sql += " and t_full_push.status=1";
}
shortage_list.AddRange(_connection.Query<dc_auto_shortage_push>(sql, new { platform = platform }, commandTimeout: 0));
// 0库存推送
......@@ -793,7 +793,7 @@ and not exists ( select * from dc_auto_shortage_push_not_config where dc_auto_sh
else
{
// 全量推送只能推送有开启监控的
no_library_sql += " and t_full_push.status=1";
no_library_sql += " and t_full_push.status=1";
}
shortage_list.AddRange(conn.Query<dc_auto_shortage_push>(no_library_sql, new { warehouse_codes = warehouse_codes, platform = platform }, commandTimeout: 0));
......@@ -1252,7 +1252,7 @@ ifnull(tc2.sum_unshipped_quantity,0) < ifnull(tc1.sum_usable_stock,0)
)
";
shortage_list.AddRange(_connection.Query<dc_return_goods_push>(sql, new { platform = platform, ch_rule1 = ch_rule1 }, commandTimeout: 0));
return shortage_list;
......@@ -2174,7 +2174,7 @@ truncate table dc_base_oms_sku_7_temp; ", new { time = DateTime.Now.AddDays(-8)
_connection.Execute(@"update dc_auto_jit_inventory as t1,
dc_auto_turnover as t2
set t1.safe_stock = t2.history_fourteenday_sales * 2,date = now()
where t1.bailun_sku =t2.bailun_sku and t1.warehouse_code =t2.warehouse_code", commandTimeout: 0);
where t1.bailun_sku =t2.bailun_sku and t1.warehouse_code =t2.warehouse_code and t1.`type`=1 ", commandTimeout: 0);
}
//刷新上周的数据
public static void ResetLastweekData()
......@@ -3788,7 +3788,7 @@ where t1.bailun_sku = t2.bailun_sku and t1.bailun_sku = t3.bailun_sku and t1.wee
return r_datas;
}
public static List<report_stock_week_view_dto> ReportPurchaseWeekView2(report_stock_week_view_search_dto search)
{
var btime = DateTime.Now.AddDays(-(7 * 4)).GetWeekFirstDayMon().ToDayHome();
......@@ -3813,7 +3813,7 @@ where t1.bailun_sku = t2.bailun_sku and t1.bailun_sku = t3.bailun_sku and t1.wee
r_datas.Add(new report_stock_week_view_dto { web_site = websiteGroupItem.Key, tag = "可用库存金额", weeks = new List<report_stock_week_view_dto.week>() { } });
r_datas.Add(new report_stock_week_view_dto { web_site = websiteGroupItem.Key, tag = "周总消耗成本", weeks = new List<report_stock_week_view_dto.week>() { } });
r_datas.Add(new report_stock_week_view_dto { web_site = websiteGroupItem.Key, tag = "周库存周转率(销售产品成本/库存金额比率)", weeks = new List<report_stock_week_view_dto.week>() { } });
var this_date = btime.GetWeekFirstDayMon().ToDayHome();
while (this_date <= etime)
......@@ -3826,25 +3826,25 @@ where t1.bailun_sku = t2.bailun_sku and t1.bailun_sku = t3.bailun_sku and t1.wee
r_datas.SingleOrDefault(s => s.web_site == websiteGroupItem.Key && s.tag == "可用库存数").weeks.Add(new report_stock_week_view_dto.week
{
tag = $"{b_thie_date.ToString("MM-dd")} ~ {e_thie_date.ToString("MM-dd")}",
val = (this_datas.FirstOrDefault(s=>s.field== "可用库存数")??new dc_report_tag_stock_week() { }).val
});
val = (this_datas.FirstOrDefault(s => s.field == "可用库存数") ?? new dc_report_tag_stock_week() { }).val
});
r_datas.SingleOrDefault(s => s.web_site == websiteGroupItem.Key && s.tag == "可用库存金额").weeks.Add(new report_stock_week_view_dto.week
{
tag = $"{b_thie_date.ToString("MM-dd")} ~ {e_thie_date.ToString("MM-dd")}",
val = (this_datas.FirstOrDefault(s=>s.field== "可用库存金额")??new dc_report_tag_stock_week() { }).val
});
val = (this_datas.FirstOrDefault(s => s.field == "可用库存金额") ?? new dc_report_tag_stock_week() { }).val
});
r_datas.SingleOrDefault(s => s.web_site == websiteGroupItem.Key && s.tag == "周总消耗成本").weeks.Add(new report_stock_week_view_dto.week
{
tag = $"{b_thie_date.ToString("MM-dd")} ~ {e_thie_date.ToString("MM-dd")}",
val = (this_datas.FirstOrDefault(s=>s.field== "周总消耗成本")??new dc_report_tag_stock_week() { }).val
});
val = (this_datas.FirstOrDefault(s => s.field == "周总消耗成本") ?? new dc_report_tag_stock_week() { }).val
});
r_datas.SingleOrDefault(s => s.web_site == websiteGroupItem.Key && s.tag == "周库存周转率(销售产品成本/库存金额比率)").weeks.Add(new report_stock_week_view_dto.week
{
tag = $"{b_thie_date.ToString("MM-dd")} ~ {e_thie_date.ToString("MM-dd")}",
val = (this_datas.FirstOrDefault(s=>s.field== "周库存周转率(销售产品成本/库存金额比率)")??new dc_report_tag_stock_week (){ }).val
});
val = (this_datas.FirstOrDefault(s => s.field == "周库存周转率(销售产品成本/库存金额比率)") ?? new dc_report_tag_stock_week() { }).val
});
this_date = this_date.AddDays(7);
}
}
......@@ -4718,7 +4718,7 @@ truncate table dc_report_goods_platform_temp;
var btime = DateTime.Now.AddDays(-7).GetWeekFirstDayMon().ToDayHome();
var etime = btime.GetWeekLastDaySun().ToDayEnd();
var week_tag = $"{btime.ToString("MM-dd")} ~ {etime.ToString("MM-dd")}";
List<dc_report_tag_stock_week_search_dto> searchs = new List<dc_report_tag_stock_week_search_dto>() {
List<dc_report_tag_stock_week_search_dto> searchs = new List<dc_report_tag_stock_week_search_dto>() {
new dc_report_tag_stock_week_search_dto{ tag="fba仓",hq_type="fba仓"},
new dc_report_tag_stock_week_search_dto{ tag="fba仓 au",hq_type="fba仓",area_name ="澳大利亚"},
new dc_report_tag_stock_week_search_dto{ tag="fba仓 ca",hq_type="fba仓",area_name ="加拿大"},
......@@ -4743,14 +4743,14 @@ truncate table dc_report_goods_platform_temp;
foreach (var item in searchs)
{
var val1 = GetWeekTagField1Val(item);
var val2= GetWeekTagField2Val(item, btime,etime);
datas.Add( new dc_report_tag_stock_week
var val2 = GetWeekTagField2Val(item, btime, etime);
datas.Add(new dc_report_tag_stock_week
{
week_str = week_tag,
date = btime,
field = "可用库存数",
tag = item.tag,
val = val1.v1??0
val = val1.v1 ?? 0
});
datas.Add(new dc_report_tag_stock_week
{
......@@ -4774,18 +4774,19 @@ truncate table dc_report_goods_platform_temp;
date = btime,
field = "周库存周转率(销售产品成本/库存金额比率)",
tag = item.tag,
val = val1.v1 > 0 ?Math.Round((val2.v1 ?? 0)/(val1.v2 ?? 0),4): 0
val = val1.v1 > 0 ? Math.Round((val2.v1 ?? 0) / (val1.v2 ?? 0), 4) : 0
}); ;
}
foreach (var item in datas)
{
item.id = _connection.QueryFirstOrDefault<int?>(" select * from dc_report_tag_stock_week where week_str=@week_str and tag=@tag and field=@field ",new {
week_str=item.week_str,
item.id = _connection.QueryFirstOrDefault<int?>(" select * from dc_report_tag_stock_week where week_str=@week_str and tag=@tag and field=@field ", new
{
week_str = item.week_str,
tag = item.tag,
field = item.field
}) ?? 0;
if (item.id<=0)
if (item.id <= 0)
{
_connection.Insert(item);
}
......@@ -4827,7 +4828,7 @@ where 1=1 ";
sql += " and t1.warehouse_code=@warehouse_code ";
parameters.Add("warehouse_code", search.warehouse_code);
}
return _connection.QueryFirstOrDefault<dc_report_tag_stock_week_temp_dto>(sql, parameters,commandTimeout:0);
return _connection.QueryFirstOrDefault<dc_report_tag_stock_week_temp_dto>(sql, parameters, commandTimeout: 0);
}
/// <summary>
/// 取销售额
......@@ -4863,7 +4864,7 @@ where t1.paid_time>=@btime and t1.paid_time<=@etime ";
sql += " and t3.area_name=@area_name ";
parameters.Add("area_name", search.area_name);
}
return _connection.QueryFirstOrDefault<dc_report_tag_stock_week_temp_dto>(sql,parameters,commandTimeout:0);
return _connection.QueryFirstOrDefault<dc_report_tag_stock_week_temp_dto>(sql, parameters, commandTimeout: 0);
}
......@@ -4873,5 +4874,96 @@ where t1.paid_time>=@btime and t1.paid_time<=@etime ";
public decimal? v2 { get; set; }
}
/// <summary>
/// 计算shopify 的安全库存
/// </summary>
public static void ShopifyJitInventory()
{
var task_name = "ShopifyJitInventory_01";
var start_time = new DateTime(2021, 07, 12);
var end_time = DateTime.Now;
// 查看之前抓到哪了
var task_data = _connection.QuerySingleOrDefault<dc_t_task>(" select * from dc_t_task where task_name=@task_name limit 1 ", new { task_name = task_name });
if (task_data == null)
{
task_data = new dc_t_task { task_name = task_name };
}
else
{
start_time = task_data.end_time.AddMinutes(-1);
}
task_data.start_time = start_time;
task_data.end_time = end_time;
var page = 1;
var rows = 1000;
while (true)
{
var order_datas = _connection.Query<dc_base_oms_sku>($@" select paid_time,bailun_sku,warehouse_code,warehouse_name from dc_base_oms_sku_30 where platform_type='shopify' and warehouse_code='GZBLWH' and paid_time>=@btime and paid_time<=@etime limit {(page - 1) * rows},{rows} ", new
{
btime = task_data.start_time,
etime = task_data.end_time
}).ToList();
if (order_datas == null || order_datas.Count <= 0)
{
break;
}
page++;
foreach (var item in order_datas)
{
if (item.paid_time != null)
{
var invalid_date = item.paid_time.Value.AddMonths(3);
var db_data = new dc_auto_jit_inventory
{
bailun_sku = item.bailun_sku,
warehouse_code = item.warehouse_code,
bailun_sku_title = "",
date = DateTime.Now,
invalid_date = invalid_date,
safe_stock = 3,
status = 1,
type = 1,
warehouse_name = item.warehouse_name
};
var oldData = _connection.QueryFirstOrDefault<dc_auto_jit_inventory>(" select * from dc_auto_jit_inventory where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ", new
{
bailun_sku = item.bailun_sku,
warehouse_code = item.warehouse_code,
});
if (oldData != null)
{
db_data.id = oldData.id;
if(oldData.invalid_date> db_data.invalid_date)
{
db_data.invalid_date = oldData.invalid_date;
}
_connection.Update(db_data);
}
else
{
_connection.Insert(db_data);
}
}
}
}
if (task_data.id > 0)
{
_connection.Update(task_data);
}
else
{
_connection.Insert(task_data);
}
}
public static void ClearShopifyJitInventory()
{
_connection.Execute(" delete from dc_auto_jit_inventory where type=1 and invalid_date<=@now_date ",new { now_date = DateTime.Now.ToDayEnd()}, commandTimeout:0);
}
}
}
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
public class dc_auto_jit_inventory
{
public int id { get; set; }
public string bailun_sku { get; set; }
public string bailun_sku_title { get; set; }
public int safe_stock { get; set; }
public string warehouse_code { get; set; }
public string warehouse_name { get; set; }
public int status { get; set; }
public DateTime? date { get; set; }
public DateTime? invalid_date { get; set; }
/// <summary>
/// 默认 =0, 独立站订单=1
/// </summary>
public int type { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
public class dc_t_task
{
public int id { get; set; }
public string task_name { get; set; }
public DateTime start_time { get; set; }
public DateTime end_time { get; set; }
}
}
......@@ -38,7 +38,9 @@ namespace ResetOutofstock
//daily.ResetGmvExtendSales(now);
//report.ResetTransExpectArrivaltime();
//base_sku_dao.SynchroSkuCharacter();
//report.ClearShopifyJitInventory();
}
catch (Exception ex)
{
......
......@@ -426,6 +426,30 @@ namespace ResetOutofstock
}
});
Task.Factory.StartNew(() =>
{
while (true)
{
try
{
Console.WriteLine($"开始 计算Shopify的备货数量,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.ClearShopifyJitInventory();
report.ShopifyJitInventory();
Console.WriteLine($"结束 计算Shopify的备货数量,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
Thread.Sleep(60 * 60 * 1000);
}
catch (Exception ex)
{
Console.WriteLine("计算Shopify的备货数量:" + ex.Message);
Console.WriteLine("计算Shopify的备货数量:" + 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