Commit 65817a06 by guanzhenshan

修改逻辑仓库逻辑方法,保存快照信息增加日期

parent c6271fbb
......@@ -26,7 +26,7 @@ namespace Bailun.DC.LogicWareHouse
// //半成品销量
// new Services().UpdateSemiSale();
// //new Services().UpdateSemiSale();
// // 更新缺货数和待发货数据
// //new Services().UpdateOutStockAndNoShipping();
......@@ -35,7 +35,9 @@ namespace Bailun.DC.LogicWareHouse
// //new Services().UpdateCash30Days();
// new Services().UpdateLogicWareHouseSemiSale();
// //new Services().UpdateLogicWareHouseSemiSale();
// //new Services().SaleWHDailySnaps();
//}
}
}
......@@ -310,7 +310,8 @@ namespace Bailun.DC.LogicWareHouse
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " 启动更新半成品销量和现金流任务");
var sql = @"update dc_skuwarehouse_stock_sales t1
join dc_semi_stock_sales_shipping t2 on t2.warehouse_name=t1.warehouse_name and t1.bailun_sku=t2.sku
set t1.quantity_purchase=t2.on_the_way_count,t1.purchase_amount=t2.on_the_way_amount,t1.oneday_total_sales=t2.sales_1,t1.amount_onedaysale=t2.stock_amount_1,t1.sevenday_total_sales=t2.sales_7,t1.fourteenday_total_sales=t2.sales_14,t1.thirtyday_total_sales=t2.sales_30,t1.nostockcount=t2.out_of_stock,t1.noshippingcount=t2.need_quantity,t1.quantity_tuneout_30days=t2.out_stock_30,t1.quantity_tunein_30days=t2.put_stock_30;";
set t1.quantity_purchase=t2.on_the_way_count,t1.purchase_amount=t2.on_the_way_amount,t1.oneday_total_sales=t2.sales_1,t1.amount_onedaysale=t2.stock_amount_1,t1.sevenday_total_sales=t2.sales_7,t1.fourteenday_total_sales=t2.sales_14,t1.thirtyday_total_sales=t2.sales_30,t1.nostockcount=t2.out_of_stock,t1.noshippingcount=t2.need_quantity,t1.quantity_tuneout_30days=t2.out_stock_30,t1.quantity_tunein_30days=t2.put_stock_30;
";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
......@@ -414,136 +415,39 @@ namespace Bailun.DC.LogicWareHouse
/// </summary>
public void SaleWHDailySnaps()
{
Console.WriteLine("开始执行保存逻辑仓库的每日快照信息 "+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var sql = @"select t1.hq_type,t1.warehouse_code,t1.warehouse_name,sum(t1.usable_stock) usable_stock,sum(t1.amount_stock) amount_stock,sum(t1.quantity_purchase) quantity_purchase,sum(t1.purchase_amount) purchase_amount,sum(t1.quantity_transfer) quantity_transfer,sum(t1.amount_transit) amount_transit,sum(t1.oneday_total_sales) oneday_total_sales,sum(t1.amount_onedaysale) amount_onedaysale,sum(t1.sevenday_total_sales) sevenday_total_sales,sum(t1.fourteenday_total_sales) fourteenday_total_sales,sum(t1.thirtyday_total_sales) thirtyday_total_sales,sum(quantity_tuneout_onway) quantity_tuneout_onway,sum(t1.quantity_tuneout_30days) quantity_tuneout_30days,sum(t1.quantity_tunein_30days) quantity_tunein_30days from dc_skuwarehouse_stock_sales t1 group by warehouse_code";
try
{
Console.WriteLine("开始执行保存逻辑仓库的每日快照信息 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var list = new List<mLogicWarehouse>();
var sql = @"insert into dc_daily_logic_wh_statistic (day,hq_type,warehouse_code,warehouse_name,usable_stock,amount_stock,quantity_purchase,purchase_amount,quantity_transfer,amount_transit,oneday_total_sales,amount_onedaysale,sevenday_total_sales,fourteenday_total_sales,thirtyday_total_sales,quantity_tuneout_onway,quantity_tuneout_30days,quantity_tunein_30days,nostockcount,noshippingcount,cash_in_30days,cash_out_30days,cash_net,pin_rate_stock)
select DATE_SUB(curdate(),INTERVAL 1 DAY) as day,t1.* from (select t1.hq_type,t1.warehouse_code,t1.warehouse_name,sum(t1.usable_stock) usable_stock,sum(t1.amount_stock) amount_stock,sum(t1.quantity_purchase) quantity_purchase,sum(t1.purchase_amount) purchase_amount,sum(t1.quantity_transfer) quantity_transfer,sum(t1.amount_transit) amount_transit,sum(t1.oneday_total_sales) oneday_total_sales,sum(t1.amount_onedaysale) amount_onedaysale,sum(t1.sevenday_total_sales) sevenday_total_sales,sum(t1.fourteenday_total_sales) fourteenday_total_sales,sum(t1.thirtyday_total_sales) thirtyday_total_sales,sum(quantity_tuneout_onway) quantity_tuneout_onway,sum(t1.quantity_tuneout_30days) quantity_tuneout_30days,sum(t1.quantity_tunein_30days) quantity_tunein_30days,sum(nostockcount) as nostockcount,sum(noshippingcount) as noshippingcount,sum(cash_in_30days) as cash_in_30days,sum(cash_out_30days) as cash_out_30days,sum(cash_net) as cash_net,(sum(thirtyday_total_sales)/sum(usable_stock)) as pin_rate_stock from dc_skuwarehouse_stock_sales t1 group by warehouse_code) t1";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;"))
{
if (cn.State == System.Data.ConnectionState.Closed)
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString + "Allow User Variables=True;"))
{
cn.Open();
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.Execute(sql, null, null, 6 * 60);
}
list = cn.Query<mLogicWarehouse>(sql).AsList();
if (list.Count > 0)
Console.WriteLine("结束 保存逻辑仓库的每日快照信息 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
catch (Exception ex)
{
Console.WriteLine("保存逻辑仓库的每日快照信息失败,异常信息:" + ex.Message);
if (ex.Message.IndexOf("Duplicate entr") >= 0)
{
//增加汇总记录
list.Add(new mLogicWarehouse
{
amount_onedaysale = list.Sum(a => a.amount_onedaysale),
amount_stock = list.Sum(a => a.amount_stock),
amount_transit = list.Sum(a => a.amount_transit),
fourteenday_total_sales = list.Sum(a => a.fourteenday_total_sales),
noshippingcount = list.Sum(a => a.noshippingcount),
nostockcount = list.Sum(a=>a.nostockcount),
oneday_total_sales = list.Sum(a=>a.oneday_total_sales),
purchase_amount = list.Sum(a=>a.purchase_amount),
quantity_purchase = list.Sum(a=>a.quantity_purchase),
quantity_transfer = list.Sum(a=>a.quantity_transfer),
quantity_tunein_30days = list.Sum(a=>a.quantity_tunein_30days),
quantity_tuneout_30days = list.Sum(a=>a.quantity_tuneout_30days),
quantity_tuneout_onway = list.Sum(a=>a.quantity_tuneout_onway),
sevenday_total_sales = list.Sum(a=>a.sevenday_total_sales),
thirtyday_total_sales = list.Sum(a=>a.thirtyday_total_sales),
usable_stock = list.Sum(a=>a.usable_stock),
warehouse_code = "",
warehouse_name = "汇总",
});
Console.WriteLine("保存逻辑仓库的每日快照信息失败,异常信息:" + ex.Message);
}
foreach (var item in list)
else
{
var obj = cn.QueryFirstOrDefault<dc_mid_logic_wh_statistic>("select * from dc_mid_logic_wh_statistic where warehouse_code='"+item.warehouse_code+"'");
if (obj != null)
{
if (obj.days > 30)
{
//先进先出的规则
obj.amount_onedaysale= obj.amount_onedaysale.Substring(obj.amount_onedaysale.IndexOf(",")+1);
obj.amount_stock = obj.amount_stock.Substring(obj.amount_stock.IndexOf(",") + 1);
obj.amount_transit = obj.amount_transit.Substring(obj.amount_transit.IndexOf(",") + 1);
obj.fourteenday_total_sales = obj.fourteenday_total_sales.Substring(obj.fourteenday_total_sales.IndexOf(",") + 1);
obj.noshippingcount = obj.noshippingcount.Substring(obj.noshippingcount.IndexOf(",") + 1);
obj.nostockcount = obj.nostockcount.Substring(obj.nostockcount.IndexOf(",") + 1);
obj.oneday_total_sales = obj.oneday_total_sales.Substring(obj.oneday_total_sales.IndexOf(",") + 1);
obj.purchase_amount = obj.purchase_amount.Substring(obj.purchase_amount.IndexOf(",") + 1);
obj.quantity_purchase = obj.quantity_purchase.Substring(obj.quantity_purchase.IndexOf(",") + 1);
obj.quantity_transfer = obj.quantity_transfer.Substring(obj.quantity_transfer.IndexOf(",") + 1);
obj.quantity_tunein_30days = obj.quantity_tunein_30days.Substring(obj.quantity_tunein_30days.IndexOf(",") + 1);
obj.quantity_tuneout_30days = obj.quantity_tuneout_30days.Substring(obj.quantity_tuneout_30days.IndexOf(",") + 1);
obj.quantity_tuneout_onway = obj.quantity_tuneout_onway.Substring(obj.quantity_tuneout_onway.IndexOf(",") + 1);
obj.sevenday_total_sales = obj.sevenday_total_sales.Substring(obj.sevenday_total_sales.IndexOf(",") + 1);
obj.thirtyday_total_sales = obj.thirtyday_total_sales.Substring(obj.thirtyday_total_sales.IndexOf(",") + 1);
obj.usable_stock = obj.usable_stock.Substring(obj.usable_stock.IndexOf(",") + 1);
}
obj.days += 1;
obj.amount_onedaysale += ","+(item.amount_onedaysale??0);
obj.amount_stock += "," + (item.amount_stock);
obj.amount_transit += "," + (item.amount_transit??0);
obj.fourteenday_total_sales += "," + (item.fourteenday_total_sales ?? 0);
obj.lastupdatetime = DateTime.Now;
obj.noshippingcount += "," + (item.noshippingcount ?? 0);
obj.nostockcount += "," + (item.nostockcount ?? 0);
obj.oneday_total_sales += "," + (item.oneday_total_sales ?? 0);
obj.purchase_amount += "," + (item.purchase_amount ?? 0);
obj.quantity_purchase += "," + (item.quantity_purchase ?? 0);
obj.quantity_transfer += "," + (item.quantity_transfer ?? 0);
obj.quantity_tunein_30days += "," + (item.quantity_tunein_30days ?? 0);
obj.quantity_tuneout_30days += "," + (item.quantity_tuneout_30days ?? 0);
obj.quantity_tuneout_onway += "," + (item.quantity_tuneout_onway ?? 0);
obj.sevenday_total_sales += "," + (item.sevenday_total_sales ?? 0);
obj.thirtyday_total_sales += "," + (item.thirtyday_total_sales ?? 0);
obj.usable_stock += "," + (item.usable_stock);
cn.Update<dc_mid_logic_wh_statistic>(obj);
}
else
{
obj = new dc_mid_logic_wh_statistic
{
amount_onedaysale = (item.amount_onedaysale ?? 0).ToString(),
amount_stock = item.amount_stock.ToString(),
amount_transit = (item.amount_transit??0).ToString(),
days = 1,
fourteenday_total_sales = (item.fourteenday_total_sales??0).ToString(),
hq_type = "",
lastupdatetime = DateTime.Now,
noshippingcount = (item.noshippingcount??0).ToString(),
nostockcount = (item.nostockcount??0).ToString(),
oneday_total_sales = (item.oneday_total_sales??0).ToString(),
purchase_amount = (item.purchase_amount??0).ToString(),
quantity_purchase = (item.quantity_purchase??0).ToString(),
quantity_transfer = (item.quantity_transfer??0).ToString(),
quantity_tunein_30days = (item.quantity_tunein_30days ?? 0).ToString(),
quantity_tuneout_30days = (item.quantity_tuneout_30days??0).ToString(),
quantity_tuneout_onway = (item.quantity_tuneout_onway??0).ToString(),
sevenday_total_sales = (item.sevenday_total_sales??0).ToString(),
thirtyday_total_sales = (item.thirtyday_total_sales??0).ToString(),
usable_stock = item.usable_stock.ToString(),
warehouse_code = item.warehouse_code,
warehouse_name = item.warehouse_name
};
cn.Insert<dc_mid_logic_wh_statistic>(obj);
}
SaleWHDailySnaps();
}
}
Console.WriteLine("结束 保存逻辑仓库的每日快照信息 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
......
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