Commit f8ba9c1f by lizefeng

fix

parent 1006eb60
......@@ -11,7 +11,7 @@ namespace AutoTurnOver.DB
{
public long id { get; set; }
public string sku { get; set; }
public string warehouse_code { get; set; }
public string project { get; set; }
public string field { get; set; }
public string field_type { get; set; }
......
......@@ -69,10 +69,10 @@ namespace AutoTurnOver.DB
var dateStr = thisDate.ToString("yyyy-MM");
var sales = (salesDayConfigs.FirstOrDefault(s => s.date_str == dateStr) ?? new dc_ana_deviation_sales_day_config { }).sales;
// 写入 【销售产品产品成本】、【销售产品数量】、【剩余可用库存金额】、【剩余可用库存数量】
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "销售产品数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = sales });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "剩余可用库存数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = sales });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "销售产品成本", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = sales * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "剩余可用库存金额", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = sales * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "销售产品数量", project = skuData.project, sku = skuData.sku, val = sales });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "剩余可用库存数量", project = skuData.project, sku = skuData.sku, val = sales });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "销售产品成本", project = skuData.project, sku = skuData.sku, val = sales * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = thisBdate, edate = thisEdate, date_str = dateStr, field_type = "预测值", field = "剩余可用库存金额", project = skuData.project, sku = skuData.sku, val = sales * baseSkuData.unit_price });
thisDate = thisDate.AddMonths(1);
}
......@@ -81,17 +81,17 @@ namespace AutoTurnOver.DB
// 读取实际值 【销售产品数量】、【销售产品产品成本】、【剩余可用库存数量】、【剩余可用库存金额】、【剩余调拨库存数量】、【剩余调拨库存金额】、【采购在途库存金额】、【采购在途库存数量】
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余可用库存数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = stockDatas.Sum(s=>s.usable_stock) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余可用库存金额", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = stockDatas.Sum(s => s.usable_stock) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "采购在途库存数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = transitDatas.Sum(s=>s.quantity_purchase) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "采购在途库存金额", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = transitDatas.Sum(s => s.quantity_purchase) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余调拨库存数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = transitDatas.Sum(s=>s.quantity_transfer) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余调拨库存金额", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = transitDatas.Sum(s => s.quantity_transfer) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余可用库存数量", project = skuData.project, sku = skuData.sku, val = stockDatas.Sum(s=>s.usable_stock) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余可用库存金额", project = skuData.project, sku = skuData.sku, val = stockDatas.Sum(s => s.usable_stock) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "采购在途库存数量", project = skuData.project, sku = skuData.sku, val = transitDatas.Sum(s=>s.quantity_purchase) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "采购在途库存金额", project = skuData.project, sku = skuData.sku, val = transitDatas.Sum(s => s.quantity_purchase) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余调拨库存数量", project = skuData.project, sku = skuData.sku, val = transitDatas.Sum(s=>s.quantity_transfer) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "剩余调拨库存金额", project = skuData.project, sku = skuData.sku, val = transitDatas.Sum(s => s.quantity_transfer) * baseSkuData.unit_price });
// 查询销量
var omsSale = await GetOmsSale(now, nowEdate, skuDatas);
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "销售产品数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = omsSale });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "销售产品成本", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = omsSale * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "销售产品数量", project = skuData.project, sku = skuData.sku, val = omsSale });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "实际值", field = "销售产品成本", project = skuData.project, sku = skuData.sku, val = omsSale * baseSkuData.unit_price });
// 推测值 【销售产品数量】【销售产品产品成本】【剩余可用库存数量】【剩余可用库存金额】【采购在途库存数量】【采购在途库存金额】
// 推测值涉及实际数据,所以只能推测下个月的数据
......@@ -115,7 +115,6 @@ namespace AutoTurnOver.DB
field = "销售产品数量",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = _connection.QueryFirstOrDefault<decimal?>(" select `val` from dc_ana_deviation where sku=@sku and warehouse_code=@warehouse_code and project=@project and field=@field and date_str=@date_str and field_type=@field_type ", new
{
sku = skuData.sku,
......@@ -135,7 +134,6 @@ namespace AutoTurnOver.DB
field = "销售产品成本",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val * baseSkuData.unit_price
});
......@@ -156,7 +154,6 @@ namespace AutoTurnOver.DB
field = "剩余可用库存数量",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val + baseTransExpectarrivaltimeDatas.Sum(s => s.count) - datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
SaveDeviation(datas, new dc_ana_deviation
......@@ -168,11 +165,10 @@ namespace AutoTurnOver.DB
field = "剩余可用库存金额",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val * baseSkuData.unit_price
});
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "推测值", field = "采购在途库存数量", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = turnover_datas.Sum(s=>s.quantity_final_advise) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "推测值", field = "采购在途库存金额", project = skuData.project, sku = skuData.sku, warehouse_code = skuData.warehouse_code, val = turnover_datas.Sum(s => s.quantity_final_advise) * baseSkuData.unit_price });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "推测值", field = "采购在途库存数量", project = skuData.project, sku = skuData.sku, val = turnover_datas.Sum(s=>s.quantity_final_advise) });
SaveDeviation(datas, new dc_ana_deviation { bdate = now, edate = nowEdate, date_str = nowDateStr, field_type = "推测值", field = "采购在途库存金额", project = skuData.project, sku = skuData.sku, val = turnover_datas.Sum(s => s.quantity_final_advise) * baseSkuData.unit_price });
// 偏差分析 【产品成本预计偏差值】、【产品成本预计偏差比例】、【销售数量预计偏差值】、【销售数量预计偏差比例】、【产品成本实际偏差值】、【产品成本实际偏差比例】、【销售数量实际偏差值】、【销售数量实际偏差比例】
......@@ -185,7 +181,6 @@ namespace AutoTurnOver.DB
field = "产品成本预计偏差值",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "推测值" && s.date_str == nowDateStr).val
- datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
......@@ -198,7 +193,6 @@ namespace AutoTurnOver.DB
field = "产品成本预计偏差比例",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "产品成本预计偏差值" && s.field_type == "偏差分析" && s.date_str == nowDateStr).val
.Division( datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "预测值" && s.date_str == nowDateStr).val)
});
......@@ -211,7 +205,6 @@ namespace AutoTurnOver.DB
field = "销售数量预计偏差值",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val
- datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
......@@ -224,7 +217,6 @@ namespace AutoTurnOver.DB
field = "销售数量预计偏差比例",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售数量预计偏差值" && s.field_type == "偏差分析" && s.date_str == nowDateStr).val
.Division(datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val)
});
......@@ -237,7 +229,6 @@ namespace AutoTurnOver.DB
field = "产品成本实际偏差值",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "实际值" && s.date_str == nowDateStr).val
- datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
......@@ -250,7 +241,6 @@ namespace AutoTurnOver.DB
field = "产品成本实际偏差比例",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "产品成本实际偏差值" && s.field_type == "偏差分析" && s.date_str == nowDateStr).val
.Division(datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "预测值" && s.date_str == nowDateStr).val)
});
......@@ -263,7 +253,6 @@ namespace AutoTurnOver.DB
field = "销售数量实际偏差值",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val
- datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
......@@ -276,7 +265,6 @@ namespace AutoTurnOver.DB
field = "销售数量实际偏差比例",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售数量实际偏差值" && s.field_type == "偏差分析" && s.date_str == nowDateStr).val
.Division(datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val)
});
......@@ -291,7 +279,6 @@ namespace AutoTurnOver.DB
field = "超卖数量",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val
- datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.date_str == nowDateStr).val
});
......@@ -304,7 +291,6 @@ namespace AutoTurnOver.DB
field = "呆滞数量",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val
- datas.Where(s => s.field == "销售产品数量" && s.field_type == "预测值" && s.bdate <= endDate && s.edate >= now).Sum(s => s.val) // 未来周转期的预测销量
});
......@@ -317,7 +303,6 @@ namespace AutoTurnOver.DB
field = "呆滞库存金额",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = datas.FirstOrDefault(s => s.field == "呆滞数量" && s.field_type == "-" && s.date_str == nowDateStr).val * baseSkuData.unit_price
});
......@@ -330,7 +315,6 @@ namespace AutoTurnOver.DB
field = "是否断货",
project = skuData.project,
sku = skuData.sku,
warehouse_code = skuData.warehouse_code,
val = stockDatas.Sum(s=>s.usable_stock)
});
......@@ -372,10 +356,9 @@ namespace AutoTurnOver.DB
public static void SaveDeviation(List<dc_ana_deviation> datas, dc_ana_deviation data)
{
data._ts = DateTime.Now;
data.id = _connection.QueryFirstOrDefault<int?>(" select id from dc_ana_deviation where sku=@sku and warehouse_code=@warehouse_code and project=@project and field=@field and date_str=@date_str and field_type=@field_type ", new
data.id = _connection.QueryFirstOrDefault<int?>(" select id from dc_ana_deviation where sku=@sku and project=@project and field=@field and date_str=@date_str and field_type=@field_type ", new
{
sku = data.sku,
warehouse_code = data.warehouse_code,
project = data.project,
field = data.field,
date_str = data.date_str,
......
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