Commit 5f44dcec by 泽锋 李

刷新调拨费用

parent 7771235d
......@@ -872,8 +872,9 @@ where t1.gmt_create>=@btime and t1.gmt_create<=@etime ";
{
var now = DateTime.Now;
var sql = @"select * from (
select t2.creationtime,t2.logisticscode,t2.isdeleted,t1.transfer_order_id,t1.box_id,t1.bailun_sku,t1.warehouse_code,cost_first from dc_base_cost_first as t1
select t2.creationtime,t2.logisticscode,t2.isdeleted,t1.transfer_order_id,t1.box_id,GROUP_CONCAT(t1.bailun_sku,':',t3.weight) as 'bailun_skus',t1.warehouse_code,cost_first as 'sum_cost_first' from dc_base_cost_first as t1
left join dc_base_transfer_info as t2 on t1.transfer_order_id = t2.`code`
left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku
where t2.creationtime>=@btime and t2.creationtime<=@etime
group by t1.transfer_order_id,t1.box_id
) as t1
......@@ -890,46 +891,93 @@ group by t1.transfer_order_id,t1.box_id
page++;
foreach (var order_item in order_list)
{
try
foreach (var order_item_sku in order_item.skus)
{
var occur_time = order_item.creationtime;
var platforms = GetPlatformShare(occur_time, conn, inventoryConfigs, order_item.warehouse_code, order_item.bailun_sku);
if (platforms != null && platforms.Count >= 1)
try
{
// 把原本未挂载平台的数据删除
conn.Execute(" delete from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and `no`=@transfer_order_id ", new
var occur_time = order_item.creationtime;
var platforms = GetPlatformShare(occur_time, conn, inventoryConfigs, order_item.warehouse_code, order_item_sku.bailun_sku);
if (platforms != null && platforms.Count >= 1)
{
bailun_sku = order_item.bailun_sku,
transfer_order_id = order_item.transfer_order_id,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用_首单
});
// 把原本未挂载平台的数据删除
conn.Execute(" delete from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and `no`=@transfer_order_id ", new
{
bailun_sku = order_item_sku.bailun_sku,
transfer_order_id = order_item.transfer_order_id,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用_首单
});
foreach (var platformItem in platforms)
foreach (var platformItem in platforms)
{
#region 调拨支出
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = order_item_sku.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用,
is_delete = (order_item.isdeleted == 1) ? 1 : 0,
item = order_item.transfer_order_id,
update_time = now,
no = order_item.transfer_order_id,
platform_type = platformItem.platform_type,
web_site = platformItem.web_stie,
remarks = $" 原本调拨费用 {order_item_sku.cost_first} 该平台站点 日均加权销量 {platformItem.sales_weight} 占比 {platformItem.ratio} ",
val = 0 - (Math.Abs(order_item_sku.cost_first) * platformItem.ratio),
occur_time = occur_time,
warehouse_code = order_item.warehouse_code,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付,
item_no = $"{order_item.transfer_order_id}-{platformItem.platform_type}-{platformItem.web_stie}"
};
var remarks = "";
item.pay_time = CalculationLogisticsPayTime(logisticsList, logistics_company_list, item.occur_time, order_item.logisticscode, out remarks);
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.remarks += remarks;
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
bailun_sku = item.bailun_sku,
item_no = item.item_no
}) ?? 0;
if (item.id > 0)
{
conn.Update(item);
}
else
{
conn.Insert(item);
}
#endregion
}
}
else
{
#region 调拨支出
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = order_item.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用,
bailun_sku = order_item_sku.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用_首单,
is_delete = (order_item.isdeleted == 1) ? 1 : 0,
item = order_item.transfer_order_id,
update_time = now,
no = order_item.transfer_order_id,
platform_type = platformItem.platform_type,
web_site = platformItem.web_stie,
remarks = $" 原本调拨费用 {order_item.cost_first} 该平台站点 日均加权销量 {platformItem.sales_weight} 占比 {platformItem.ratio} ",
val = 0 - (Math.Abs(order_item.cost_first) * platformItem.ratio),
occur_time = occur_time,
platform_type = "",
web_site = "",
remarks = "",
val = 0 - Math.Abs(order_item_sku.cost_first),
occur_time = order_item.creationtime,
warehouse_code = order_item.warehouse_code,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付,
item_no = $"{order_item.transfer_order_id}-{platformItem.platform_type}-{platformItem.web_stie}"
item_no = order_item.transfer_order_id
};
var remarks = "";
item.pay_time = CalculationLogisticsPayTime(logisticsList, logistics_company_list, item.occur_time, order_item.logisticscode, out remarks);
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.remarks += remarks;
item.remarks = remarks;
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
......@@ -947,58 +995,15 @@ group by t1.transfer_order_id,t1.box_id
#endregion
}
}
else
catch (Exception ex)
{
#region 调拨支出
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = order_item.bailun_sku,
data_type = (int)dc_report_cash_flow_log_data_type_enum.新增头程费用_首单,
is_delete = (order_item.isdeleted == 1) ? 1 : 0,
item = order_item.transfer_order_id,
update_time = now,
no = order_item.transfer_order_id,
platform_type = "",
web_site = "",
remarks = "",
val = 0 - Math.Abs(order_item.cost_first),
occur_time = order_item.creationtime,
warehouse_code = order_item.warehouse_code,
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.后付,
item_no = order_item.transfer_order_id
};
var remarks = "";
item.pay_time = CalculationLogisticsPayTime(logisticsList, logistics_company_list, item.occur_time, order_item.logisticscode, out remarks);
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.remarks = remarks;
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
bailun_sku = item.bailun_sku,
item_no = item.item_no
}) ?? 0;
if (item.id > 0)
{
conn.Update(item);
}
else
{
conn.Insert(item);
}
#endregion
Console.WriteLine($"现金流-调拨单-{order_item.transfer_order_id}-异常" + ex.Message);
Console.WriteLine("现金流-调拨单-异常" + ex.StackTrace);
}
}
catch (Exception ex)
{
Console.WriteLine($"现金流-调拨单-{order_item.transfer_order_id}-异常" + ex.Message);
Console.WriteLine("现金流-调拨单-异常" + ex.StackTrace);
}
}
}
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AutoTurnOver.Models.Report
......@@ -113,10 +114,54 @@ namespace AutoTurnOver.Models.Report
public string logisticscode { get; set; }
public int isdeleted { get; set; }
public string box_id { get; set; }
public string bailun_sku { get; set; }
public string bailun_skus { get; set; }
public List<sku_dto> skus { get
{
if (string.IsNullOrWhiteSpace(bailun_skus))
{
return new List<sku_dto>();
}
else
{
try
{
var temp_skus = bailun_skus.Split(',').Select(s => {
var arr = s.Split(':');
return new sku_dto()
{
bailun_sku = arr[0],
weight = decimal.Parse(arr[1])
};
}).ToList();
var sum_weight = temp_skus.Sum(s => s.weight);
foreach (var item in temp_skus)
{
item.cost_first = Math.Round(item.weight / sum_weight * sum_cost_first, 2);
}
return temp_skus;
}
catch (Exception ex)
{
throw;
}
}
} }
public class sku_dto
{
public string bailun_sku { get; set; }
public decimal weight { get; set; }
public decimal cost_first { get; set; }
}
public string transfer_order_id { get; set; }
public string warehouse_code { get; set; }
public decimal cost_first { get; set; }
public decimal sum_cost_first { get; set; }
}
......
......@@ -15,7 +15,7 @@ namespace ResetOutofstock
Console.WriteLine("刷新缺货数据任务启动...");
var now = DateTime.Now;
//report_cash_flow_dao.CalculationTransferOrder(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
report_cash_flow_dao.CalculationTransferOrder(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<ResetOutofstockBackgrounService>();
......
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