Commit 971fafa6 by 泽锋 李

重算供应商交期

parent d2019531
......@@ -38,9 +38,10 @@ GROUP BY t1.bailun_sku,t1.warehouse_code,t1.supplier_id ", parameters);
{
DynamicParameters parameters = new DynamicParameters();
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
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
";
if (!string.IsNullOrWhiteSpace(bailun_sku))
......@@ -111,13 +112,15 @@ where t1.supplier_id = t2.suppliers_id ";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("bailun_sku", skuData.bailun_sku);
parameters.Add("supplier_id", skuData.supplier_id);
parameters.Add("warehouse_code", skuData.warehouse_code);
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
where t1.buy_status=4 and t1.bailun_sku=@bailun_sku and t1.supplier_id=@supplier_id and t1.warehouse_code=@warehouse_code
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
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
", parameters);
}
/// <summary>
......@@ -166,10 +169,10 @@ ORDER BY t1.update_time desc LIMIT @seed_count
parameters.Add("purchase_ids", purchase_ids.ToArray());
parameters.Add("bailun_sku", bailun_sku);
return _connection.Query<dc_base_purchase_inbound_dto>(@"
select t1.*,t2.update_time 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
select t1.*,t2.last_signtime as 'arrival_time' from dc_base_purchase_inbound 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.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);
}
......
......@@ -53,6 +53,7 @@ namespace AutoTurnOver.Models.dc_base_purchase
/// 付款时间
/// </summary>
public DateTime? pay_time { get; set; }
public DateTime last_signtime { get; set; }
/// <summary>
/// 付款类型
......
......@@ -37,7 +37,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
try
{
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")}");
}
catch (Exception ex)
......
......@@ -31,8 +31,8 @@ namespace AutoTurnOver.Purchase.AverageTarget
//PurchaseAverageTargetServices.CalculationTransfer();
//report.ResetTransExpectArrivaltime();
//dc_auto_return_goods_config_dao.NewCalculation();
//PurchaseAverageTargetServices.Calculation("942517901", days: 360);
//PurchaseAverageTargetServices.CalculationTransfer("942517901", 360);
//PurchaseAverageTargetServices.Calculation("945333402", days: 360);
//PurchaseAverageTargetServices.CalculationTransfer("945333402", 360);
}
catch (Exception ex)
{
......
......@@ -17,7 +17,7 @@ namespace AutoTurnOver.Services
/// <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)
{
......@@ -77,24 +77,22 @@ namespace AutoTurnOver.Services
// 计算平均到货天数
// 计算总交期
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 arrivalList.GroupBy(s => s.purchase_id))
foreach (var itemArrivalList in purchaseList.GroupBy(s => s.purchase_id))
{
var tempPurchase = purchaseList.SingleOrDefault(s => s.purchase_id == itemArrivalList.Key);
var temp_s_delivery_days = 0;
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
{
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;
has_data = true;
conn.Insert(new dc_base_order_data_source
{
bailun_sku = skuItem.bailun_sku,
......@@ -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 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
......@@ -272,7 +270,7 @@ namespace AutoTurnOver.Services
logistics_name = "",
order_no = itemLms.Key,
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,
transport_type = ""
});
......@@ -283,7 +281,7 @@ namespace AutoTurnOver.Services
if (inboundList != null && inboundList.Count() >= 1)
{
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
{
......
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