Commit 8ba92607 by 泽锋 李

新增 Shopify 自动备货服务

parent 5b5c8c50
...@@ -2174,7 +2174,7 @@ truncate table dc_base_oms_sku_7_temp; ", new { time = DateTime.Now.AddDays(-8) ...@@ -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, _connection.Execute(@"update dc_auto_jit_inventory as t1,
dc_auto_turnover as t2 dc_auto_turnover as t2
set t1.safe_stock = t2.history_fourteenday_sales * 2,date = now() 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() public static void ResetLastweekData()
...@@ -3826,22 +3826,22 @@ where t1.bailun_sku = t2.bailun_sku and t1.bailun_sku = t3.bailun_sku and t1.wee ...@@ -3826,22 +3826,22 @@ 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 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")}", 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 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")}", 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 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")}", 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 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")}", 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
}); });
...@@ -4743,14 +4743,14 @@ truncate table dc_report_goods_platform_temp; ...@@ -4743,14 +4743,14 @@ truncate table dc_report_goods_platform_temp;
foreach (var item in searchs) foreach (var item in searchs)
{ {
var val1 = GetWeekTagField1Val(item); var val1 = GetWeekTagField1Val(item);
var val2= GetWeekTagField2Val(item, btime,etime); var val2 = GetWeekTagField2Val(item, btime, etime);
datas.Add( new dc_report_tag_stock_week datas.Add(new dc_report_tag_stock_week
{ {
week_str = week_tag, week_str = week_tag,
date = btime, date = btime,
field = "可用库存数", field = "可用库存数",
tag = item.tag, tag = item.tag,
val = val1.v1??0 val = val1.v1 ?? 0
}); });
datas.Add(new dc_report_tag_stock_week datas.Add(new dc_report_tag_stock_week
{ {
...@@ -4774,18 +4774,19 @@ truncate table dc_report_goods_platform_temp; ...@@ -4774,18 +4774,19 @@ truncate table dc_report_goods_platform_temp;
date = btime, date = btime,
field = "周库存周转率(销售产品成本/库存金额比率)", field = "周库存周转率(销售产品成本/库存金额比率)",
tag = item.tag, 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) 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 { 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, {
week_str = item.week_str,
tag = item.tag, tag = item.tag,
field = item.field field = item.field
}) ?? 0; }) ?? 0;
if (item.id<=0) if (item.id <= 0)
{ {
_connection.Insert(item); _connection.Insert(item);
} }
...@@ -4827,7 +4828,7 @@ where 1=1 "; ...@@ -4827,7 +4828,7 @@ where 1=1 ";
sql += " and t1.warehouse_code=@warehouse_code "; sql += " and t1.warehouse_code=@warehouse_code ";
parameters.Add("warehouse_code", search.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> /// <summary>
/// 取销售额 /// 取销售额
...@@ -4863,7 +4864,7 @@ where t1.paid_time>=@btime and t1.paid_time<=@etime "; ...@@ -4863,7 +4864,7 @@ where t1.paid_time>=@btime and t1.paid_time<=@etime ";
sql += " and t3.area_name=@area_name "; sql += " and t3.area_name=@area_name ";
parameters.Add("area_name", search.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 "; ...@@ -4873,5 +4874,96 @@ where t1.paid_time>=@btime and t1.paid_time<=@etime ";
public decimal? v2 { get; set; } 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,6 +38,8 @@ namespace ResetOutofstock ...@@ -38,6 +38,8 @@ namespace ResetOutofstock
//daily.ResetGmvExtendSales(now); //daily.ResetGmvExtendSales(now);
//report.ResetTransExpectArrivaltime(); //report.ResetTransExpectArrivaltime();
//base_sku_dao.SynchroSkuCharacter(); //base_sku_dao.SynchroSkuCharacter();
//report.ClearShopifyJitInventory();
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -428,6 +428,30 @@ namespace ResetOutofstock ...@@ -428,6 +428,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);
}
}
});
return Task.CompletedTask; return Task.CompletedTask;
......
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