Commit fb7cb462 by 泽锋 李

新增fba调拨在途计算

parent 900dbbf4
......@@ -4018,5 +4018,73 @@ where t2.hq_type='fba仓'").ToList();
public int payment_before_delivery { get; set; }
public int inspection_delivery { get; set; }
}
/// <summary>
/// 刷新调拨预计到货
/// </summary>
public static void ResetTransExpectArrivaltime()
{
// 查询真实的调拨在途
var datas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(@"select
t2.expectarrivaltime as 'expectarrivaltime',
t1.sku as 'bailun_sku',
t2.targetwareno as 'warehouse_code',
t1.deliverycount - t1.storagecount as 'count',
ifnull(t2.`code`,'') as 'transfer_order_id',
ifnull(t2.purchasecode,'') as 'purchase_id'
from dc_base_transfer_info_skus as t1
left join dc_base_transfer_info as t2 on t1.dataid =t2.dataid
left join dc_base_warehouse as t3 on t2.targetwareno = t3.warehouse_code
where t2.isdeleted=0 and t2.stateid not in (5,11,12) and t1.deliverycount > t1.storagecount
and t3.hq_type='fba仓' and t2.expectarrivaltime >='1991-01-01'").ToList();
// 计算国内入库,还没有调拨单的数据
var temp_p_datas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(@"select
t1.purchase_id,
t1.bailun_sku,
t1.warehouse_into_code as 'warehouse_code' ,
t1.quantity_inbound as 'count',
'' as 'transfer_order_id',
'1991-01-01' as 'expectarrivaltime'
from dc_base_purchase_details as t1
left join dc_base_warehouse as t2 on t1.warehouse_into_code = t2.warehouse_code
where t1.quantity_purchase<=t1.quantity_inbound and t1.`status` not in (-1) and t2.hq_type='fba仓'
and t1.create_time>=@btime ",new { btime = DateTime.Now.AddMonths(-3)}).ToList();
// 查询已经有调拨的采购单
foreach (var item in temp_p_datas.GroupBy(s=>s.purchase_id))
{
// 查询是否已经调拨
var exists_trans = _connection.QueryFirstOrDefault<int>(" select count(1) from dc_base_transfer_info as t_tran where t_tran.purchasecode like @purchasecode ",new { purchasecode = $"%{item.Key}%"});
if (exists_trans <= 0)
{
foreach (var itemSku in item.AsEnumerable())
{
itemSku.transfer_order_id = "中转仓入库,带调拨。 aims 虚拟在途";
// 查询历史调拨天数
var tran_days = _connection.QueryFirstOrDefault<int?>(" select transfer_delivery+transfer_bale_delivery+abroad_inbound_delivery from dc_auto_turnover where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ", new { bailun_sku = itemSku.bailun_sku , warehouse_code = itemSku.warehouse_code })??0;
itemSku.expectarrivaltime = DateTime.Now.AddDays(tran_days);
datas.Add(itemSku);
}
}
}
_connection.Execute(" TRUNCATE table dc_base_trans_expectarrivaltime_temp; ");
foreach (var item in datas)
{
_connection.Insert(item);
}
_connection.Execute(@"
alter table dc_base_trans_expectarrivaltime rename dc_base_trans_expectarrivaltimeTemp;
alter table dc_base_trans_expectarrivaltime_temp rename dc_base_trans_expectarrivaltime;
alter table dc_base_trans_expectarrivaltimeTemp rename dc_base_trans_expectarrivaltime_temp;
truncate table dc_base_trans_expectarrivaltime_temp;
");
}
}
}
......
......@@ -8,12 +8,22 @@ namespace AutoTurnOver.Models
/// <summary>
/// fba 预计调拨入库表
/// </summary>
public class dc_base_trans_expectarrivaltime
public class dc_base_trans_expectarrivaltime_temp
{
public int id { get; set; }
public string bailun_sku { get; set; }
public string warehouse_code { get; set; }
public int count { get; set; }
/// <summary>
/// 调拨单号
/// </summary>
public string transfer_order_id { get; set; }
/// <summary>
/// 对应采购单号
/// </summary>
public string purchase_id { get; set; }
public DateTime expectarrivaltime { get; set; }
}
}
......@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace AutoTurnOver.Purchase.AverageTarget
{
public class AverageTargetBackgrounService: BackgroundService
public class AverageTargetBackgrounService : BackgroundService
{
private Timer _timer;
......@@ -24,7 +24,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
try
{
Console.WriteLine($"开始 init ,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.ResetFastestStorage();
report.ResetFastestStorage();
Console.WriteLine($"结束 init,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
catch (Exception ex)
......@@ -34,8 +34,8 @@ namespace AutoTurnOver.Purchase.AverageTarget
}
}
});
});
Task.Factory.StartNew(() =>
{
while (true)
......@@ -48,7 +48,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
}
catch (Exception ex)
{
Console.WriteLine("计算预测现金流"+ ex.Message);
Console.WriteLine("计算预测现金流" + ex.Message);
}
......@@ -64,6 +64,20 @@ namespace AutoTurnOver.Purchase.AverageTarget
try
{
var now = DateTime.Now;
// 计算周转前半小时,计算fba调拨在途
if (now.Hour == 23 && now.Minute == 29)
{
Console.WriteLine($"开始 fba调拨在途,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.ResetTransExpectArrivaltime();
Console.WriteLine($"开始 fba调拨在途,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
if (now.Hour == 13 && now.Minute == 30)
{
Console.WriteLine($"开始 fba调拨在途,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report.ResetTransExpectArrivaltime();
Console.WriteLine($"开始 fba调拨在途,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
if (now.Hour == 23 && now.Minute == 01)
{
Console.WriteLine($"开始 设置默认头程方式,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
......@@ -76,7 +90,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
Console.WriteLine($"开始 计算周销售系数,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
dc_base_week_coefficient_dao.ResetData();
Console.WriteLine($"结束 计算周销售系数,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
// 判断是不是指定的时间
if (now.Hour == 00 && now.Minute == 20)
{
......@@ -99,7 +113,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
if (now.Hour == 23 && now.Minute == 57)
{
Console.WriteLine($"开始调拨平均值统计任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
PurchaseAverageTargetServices.CalculationTransfer();
PurchaseAverageTargetServices.CalculationTransfer();
Console.WriteLine($"结束调拨平均值统计任务,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
......
......@@ -24,7 +24,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
try
{
//PurchaseAverageTargetServices.CalculationTransfer("942517901");
report.ResetFastestStorage();
//report.ResetTransExpectArrivaltime();
}
......
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