Commit 971fafa6 by 泽锋 李

重算供应商交期

parent d2019531
...@@ -38,9 +38,10 @@ GROUP BY t1.bailun_sku,t1.warehouse_code,t1.supplier_id ", parameters); ...@@ -38,9 +38,10 @@ GROUP BY t1.bailun_sku,t1.warehouse_code,t1.supplier_id ", parameters);
{ {
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
parameters.Add("c_time", DateTime.Now.AddDays(0 - day).ToString("yyyy-MM-dd 00:00:00")); parameters.Add("c_time", DateTime.Now.AddDays(0 - day).ToString("yyyy-MM-dd 00:00:00"));
var sql = @"select t2.hq_type,t1.bailun_sku as 'bailun_sku',t1.warehouse_code as 'warehouse_code' var sql = @"select t2.hq_type,t1.bailun_sku as 'bailun_sku',t1.warehouse_code as 'warehouse_code',t3.suppliers_id as 'supplier_id',t3.buyer_name
from dc_base_stock as t1 from dc_base_stock as t1
left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code
left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku
where t1.`update_time`>=@c_time where t1.`update_time`>=@c_time
"; ";
if (!string.IsNullOrWhiteSpace(bailun_sku)) if (!string.IsNullOrWhiteSpace(bailun_sku))
...@@ -111,13 +112,15 @@ where t1.supplier_id = t2.suppliers_id "; ...@@ -111,13 +112,15 @@ where t1.supplier_id = t2.suppliers_id ";
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
parameters.Add("bailun_sku", skuData.bailun_sku); parameters.Add("bailun_sku", skuData.bailun_sku);
parameters.Add("supplier_id", skuData.supplier_id); parameters.Add("supplier_id", skuData.supplier_id);
parameters.Add("warehouse_code", skuData.warehouse_code);
parameters.Add("seed_count", seed_count); parameters.Add("seed_count", seed_count);
return _connection.Query<dc_base_purchase_dto>(@"select t1.price,t1.bailun_sku,t1.warehouse_code,t1.purchase_id,t1.warehouse_name,t1.count,t1.sku_name,t1.supplier_id,t1.supplier_name,t1.confirm_time,t1.pay_time,t1.pay_type from dc_base_purchase as t1 return _connection.Query<dc_base_purchase_dto>(@"select t1.price,t1.bailun_sku,t1.warehouse_code,t1.purchase_id,t1.warehouse_name,t1.count,t1.sku_name,t1.supplier_id,t1.supplier_name,t1.confirm_time,t1.pay_time,t1.pay_type,t2.last_signtime
where t1.buy_status=4 and t1.bailun_sku=@bailun_sku and t1.supplier_id=@supplier_id and t1.warehouse_code=@warehouse_code from dc_base_purchase as t1
left join dc_base_purchase_details as t2 on t1.purchase_id = t2.purchase_id and t1.bailun_sku=t2.bailun_sku
where t1.buy_status=4 and t1.bailun_sku=@bailun_sku and t2.bailun_sku=@bailun_sku and t1.supplier_id=@supplier_id and t2.last_signtime > '2010-01-01'
ORDER BY t1.update_time desc LIMIT @seed_count ORDER BY t1.update_time desc LIMIT @seed_count
", parameters); ", parameters);
} }
/// <summary> /// <summary>
...@@ -166,10 +169,10 @@ ORDER BY t1.update_time desc LIMIT @seed_count ...@@ -166,10 +169,10 @@ ORDER BY t1.update_time desc LIMIT @seed_count
parameters.Add("purchase_ids", purchase_ids.ToArray()); parameters.Add("purchase_ids", purchase_ids.ToArray());
parameters.Add("bailun_sku", bailun_sku); parameters.Add("bailun_sku", bailun_sku);
return _connection.Query<dc_base_purchase_inbound_dto>(@" return _connection.Query<dc_base_purchase_inbound_dto>(@"
select t1.*,t2.update_time as 'arrival_time' from dc_base_purchase_inbound as t1 select t1.*,t2.last_signtime as 'arrival_time' from dc_base_purchase_inbound as t1
left join dc_base_purchase_arrival as t2 on t1.purchase_id = t2.purchase_id and t1.bailun_sku = t2.bailun_sku left join dc_base_purchase_details as t2 on t1.purchase_id = t2.purchase_id and t1.bailun_sku=t2.bailun_sku
where t1.purchase_id in @purchase_ids and t1.bailun_sku = @bailun_sku where t1.purchase_id in @purchase_ids and t1.bailun_sku = @bailun_sku
and t2.update_time is not null and t1.update_time>t2.update_time and t2.update_time is not null and t1.update_time>t2.last_signtime and t2.last_signtime>='2010-01-01'
", parameters); ", parameters);
} }
......
...@@ -53,6 +53,7 @@ namespace AutoTurnOver.Models.dc_base_purchase ...@@ -53,6 +53,7 @@ namespace AutoTurnOver.Models.dc_base_purchase
/// 付款时间 /// 付款时间
/// </summary> /// </summary>
public DateTime? pay_time { get; set; } public DateTime? pay_time { get; set; }
public DateTime last_signtime { get; set; }
/// <summary> /// <summary>
/// 付款类型 /// 付款类型
......
...@@ -37,7 +37,7 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -37,7 +37,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
try try
{ {
Console.WriteLine($"开始 init2 ,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); Console.WriteLine($"开始 init2 ,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
//PurchaseAverageTargetServices.Calculation(days:360); PurchaseAverageTargetServices.Calculation(days:360);
Console.WriteLine($"结束 init2,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); Console.WriteLine($"结束 init2,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
} }
catch (Exception ex) catch (Exception ex)
......
...@@ -31,8 +31,8 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -31,8 +31,8 @@ namespace AutoTurnOver.Purchase.AverageTarget
//PurchaseAverageTargetServices.CalculationTransfer(); //PurchaseAverageTargetServices.CalculationTransfer();
//report.ResetTransExpectArrivaltime(); //report.ResetTransExpectArrivaltime();
//dc_auto_return_goods_config_dao.NewCalculation(); //dc_auto_return_goods_config_dao.NewCalculation();
//PurchaseAverageTargetServices.Calculation("942517901", days: 360); //PurchaseAverageTargetServices.Calculation("945333402", days: 360);
//PurchaseAverageTargetServices.CalculationTransfer("942517901", 360); //PurchaseAverageTargetServices.CalculationTransfer("945333402", 360);
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -17,7 +17,7 @@ namespace AutoTurnOver.Services ...@@ -17,7 +17,7 @@ namespace AutoTurnOver.Services
/// <summary> /// <summary>
/// 取数基数 /// 取数基数
/// </summary> /// </summary>
public static int _seed_count = 5; public static int _seed_count = 10;
public static void Calculation(string bailun_sku = null,int days = 7) public static void Calculation(string bailun_sku = null,int days = 7)
{ {
...@@ -77,24 +77,22 @@ namespace AutoTurnOver.Services ...@@ -77,24 +77,22 @@ namespace AutoTurnOver.Services
// 计算平均到货天数 // 计算平均到货天数
// 计算总交期 // 计算总交期
int delivery_days = 0; int delivery_days = 0;
// 查询相关的到货记录
var arrivalList = AveragePurchase.GetArrivalList(purchaseList.Select(s => s.purchase_id), skuItem.bailun_sku);
var has_data = false; foreach (var itemArrivalList in purchaseList.GroupBy(s => s.purchase_id))
foreach (var itemArrivalList in arrivalList.GroupBy(s => s.purchase_id))
{ {
var tempPurchase = purchaseList.SingleOrDefault(s => s.purchase_id == itemArrivalList.Key); var tempPurchase = purchaseList.SingleOrDefault(s => s.purchase_id == itemArrivalList.Key);
var temp_s_delivery_days = 0; var temp_s_delivery_days = 0;
if (tempPurchase.pay_type == 1) if (tempPurchase.pay_type == 1)
{ {
temp_s_delivery_days = (int)Math.Ceiling((itemArrivalList.Min(s => s.update_time) - tempPurchase.pay_time).Value.TotalHours / 24); temp_s_delivery_days = (int)Math.Ceiling((itemArrivalList.Min(s => s.last_signtime) - tempPurchase.pay_time).Value.TotalHours / 24);
} }
else else
{ {
temp_s_delivery_days = (int)Math.Ceiling((itemArrivalList.Min(s => s.update_time) - tempPurchase.confirm_time).Value.TotalHours / 24); temp_s_delivery_days = (int)Math.Ceiling((itemArrivalList.Min(s => s.last_signtime) - tempPurchase.confirm_time).Value.TotalHours / 24);
} }
delivery_days += temp_s_delivery_days; delivery_days += temp_s_delivery_days;
has_data = true;
conn.Insert(new dc_base_order_data_source conn.Insert(new dc_base_order_data_source
{ {
bailun_sku = skuItem.bailun_sku, bailun_sku = skuItem.bailun_sku,
...@@ -238,7 +236,7 @@ namespace AutoTurnOver.Services ...@@ -238,7 +236,7 @@ namespace AutoTurnOver.Services
} }
var base_wa = conn.QueryFirstOrDefault<string>(" select t2.`code` from dc_base_warehouse as t1 left join dc_base_country as t2 on t1.area_name = t2.`name` where warehouse_code=@warehouse_code ", new { skuItem.warehouse_code }); var base_wa = conn.QueryFirstOrDefault<string>(" select t2.`code` from dc_base_warehouse as t1 left join dc_base_country as t2 on t1.area_name = t2.`name` where warehouse_code=@warehouse_code ", new { skuItem.warehouse_code });
var purchaseWList = AveragePurchase.GetPurchaseListByWode(skuItem, _seed_count).ToList(); var purchaseWList = AveragePurchase.GetPurchaseList(skuItem, _seed_count).ToList();
// 清空记录,重新记录数据源 // 清空记录,重新记录数据源
conn.Execute(" delete from dc_base_order_data_source where bailun_sku_warehouse_code=@bailun_sku_warehouse_code and order_type=@order_type ", new conn.Execute(" delete from dc_base_order_data_source where bailun_sku_warehouse_code=@bailun_sku_warehouse_code and order_type=@order_type ", new
...@@ -272,7 +270,7 @@ namespace AutoTurnOver.Services ...@@ -272,7 +270,7 @@ namespace AutoTurnOver.Services
logistics_name = "", logistics_name = "",
order_no = itemLms.Key, order_no = itemLms.Key,
order_type = "采购单-质检入库天数计算", order_type = "采购单-质检入库天数计算",
put_days = (decimal)Math.Ceiling((itemLms.Min(s=>s.update_time) - itemLms.Min(s=>s.arrival_time)).TotalHours / 24), put_days = (decimal)Math.Ceiling((itemLms.Max(s=>s.update_time) - itemLms.Max(s=>s.arrival_time)).TotalHours / 24),
sign_days = 0, sign_days = 0,
transport_type = "" transport_type = ""
}); });
...@@ -283,7 +281,7 @@ namespace AutoTurnOver.Services ...@@ -283,7 +281,7 @@ namespace AutoTurnOver.Services
if (inboundList != null && inboundList.Count() >= 1) if (inboundList != null && inboundList.Count() >= 1)
{ {
var inboundListGroup = inboundList.GroupBy(s => s.purchase_id).ToList(); var inboundListGroup = inboundList.GroupBy(s => s.purchase_id).ToList();
dataWarehouse.inbound_days = (int)inboundListGroup.Sum(s => Math.Ceiling((s.Min(v=>v.update_time) - s.Min(v=>v.arrival_time)).TotalHours / 24)) / inboundListGroup.Count(); dataWarehouse.inbound_days = (int)inboundListGroup.Sum(s => Math.Ceiling((s.Max(v=>v.update_time) - s.Max(v=>v.arrival_time)).TotalHours / 24)) / inboundListGroup.Count();
} }
else else
{ {
......
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