Commit aa01dca4 by lizefeng

fix

parent 7e98e6cd
...@@ -100,67 +100,33 @@ namespace AutoTurnOver.DB ...@@ -100,67 +100,33 @@ namespace AutoTurnOver.DB
var lastMonthE = lastMonthB.LastDayOfMonth().ToDayEnd(); var lastMonthE = lastMonthB.LastDayOfMonth().ToDayEnd();
var lastMonthDateStr = lastMonthB.ToString("yyyy-MM"); var lastMonthDateStr = lastMonthB.ToString("yyyy-MM");
//今日的推测值等于昨日的实际剩余 var nextMonthB = now.AddMonths(1).GetMonthFirstDay().ToDayHome();
var nextMonthE = nextMonthB.LastDayOfMonth().ToDayEnd();
var nextMonthDateStr = nextMonthB.ToString("yyyy-MM");
//推测值要推测下个月的
SaveDeviation(datas, new dc_ana_deviation SaveDeviation(datas, new dc_ana_deviation
{ {
bdate = now, bdate = nextMonthB,
edate = nowEdate, edate = nextMonthE,
date_str = nowDateStr, date_str = nextMonthDateStr,
field_type = "推测值", field_type = "推测值",
field = "销售产品数量", field = "销售产品数量",
project = skuData.project, project = skuData.project,
sku = skuData.sku, sku = skuData.sku,
val = _connection.QueryFirstOrDefault<decimal?>(" select `val` from dc_ana_deviation where sku=@sku and project=@project and field=@field and date_str=@date_str and field_type=@field_type ", new val = datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val
{
sku = skuData.sku,
project = skuData.project,
field = "剩余可用库存数量",
date_str = lastMonthDateStr,
field_type = "实际值"
}, commandTimeout: 0) ?? 0
});
SaveDeviation(datas, new dc_ana_deviation
{
bdate = now,
edate = nowEdate,
date_str = nowDateStr,
field_type = "推测值",
field = "销售产品成本",
project = skuData.project,
sku = skuData.sku,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val * baseSkuData.unit_price
}); });
SaveDeviation(datas, new dc_ana_deviation { bdate = nextMonthB, edate = nextMonthE, date_str = nextMonthDateStr, field_type = "推测值", field = "销售产品成本", project = skuData.project, sku = skuData.sku, val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nextMonthDateStr).val * baseSkuData.unit_price });
// 查询今日的预计到货数据 // 查询今日的预计到货数据
var baseTransExpectarrivaltimeDatas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(" select * from dc_base_trans_expectarrivaltime where bailun_sku=@bailun_sku and warehouse_code in @warehouse_codes and expectarrivaltime>=@btime and expectarrivaltime<=@etime ", new var baseTransExpectarrivaltimeDatas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(" select * from dc_base_trans_expectarrivaltime where bailun_sku=@bailun_sku and warehouse_code in @warehouse_codes and expectarrivaltime<=@etime ", new
{ {
warehouse_codes = warehouse_codes, warehouse_codes = warehouse_codes,
bailun_sku = baseSkuData.bailun_sku, bailun_sku = baseSkuData.bailun_sku,
btime = now, etime = nextMonthE
etime = nowEdate
});
SaveDeviation(datas, new dc_ana_deviation
{
bdate = now,
edate = nowEdate,
date_str = nowDateStr,
field_type = "推测值",
field = "剩余可用库存数量",
project = skuData.project,
sku = skuData.sku,
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
{
bdate = now,
edate = nowEdate,
date_str = nowDateStr,
field_type = "推测值",
field = "剩余可用库存金额",
project = skuData.project,
sku = skuData.sku,
val = datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val * baseSkuData.unit_price
}); });
SaveDeviation(datas, new dc_ana_deviation { bdate = nextMonthB, edate = nextMonthE, date_str = nextMonthDateStr, field_type = "推测值", field = "剩余可用库存数量", project = skuData.project, sku = skuData.sku, 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 == nextMonthDateStr).val });
SaveDeviation(datas, new dc_ana_deviation { bdate = nextMonthB, edate = nextMonthE, date_str = nextMonthDateStr, field_type = "推测值", field = "剩余可用库存金额", project = skuData.project, sku = skuData.sku, val = datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "推测值" && s.date_str == nextMonthDateStr).val * baseSkuData.unit_price });
// 周转算法 周转期预测销量-实际可以用库存-周转期预测到货 // 周转算法 周转期预测销量-实际可以用库存-周转期预测到货
var turnoverDaysTransExpectarrivaltimeDatas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(" select * from dc_base_trans_expectarrivaltime where bailun_sku=@bailun_sku and warehouse_code in @warehouse_codes and expectarrivaltime<=@etime ", new var turnoverDaysTransExpectarrivaltimeDatas = _connection.Query<dc_base_trans_expectarrivaltime_temp>(" select * from dc_base_trans_expectarrivaltime where bailun_sku=@bailun_sku and warehouse_code in @warehouse_codes and expectarrivaltime<=@etime ", new
...@@ -169,35 +135,10 @@ namespace AutoTurnOver.DB ...@@ -169,35 +135,10 @@ namespace AutoTurnOver.DB
bailun_sku = baseSkuData.bailun_sku, bailun_sku = baseSkuData.bailun_sku,
etime = turnoverDaysEndDate etime = turnoverDaysEndDate
}); });
SaveDeviation(datas, new dc_ana_deviation SaveDeviation(datas, new dc_ana_deviation { bdate = nextMonthB, edate = nextMonthE, date_str = nextMonthDateStr, field_type = "推测值", field = "采购在途库存数量", project = skuData.project, sku = skuData.sku, val = salesDayConfigs.Where(s => s.bdate <= turnoverDaysEndDate).Sum(s => s.sales) - datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val - turnoverDaysTransExpectarrivaltimeDatas.Sum(s => s.count) });
{ SaveDeviation(datas, new dc_ana_deviation { bdate = nextMonthB, edate = nextMonthE, date_str = nextMonthDateStr, field_type = "推测值", field = "采购在途库存金额", project = skuData.project, sku = skuData.sku, val = datas.FirstOrDefault(s => s.field == "采购在途库存数量" && s.field_type == "推测值" && s.date_str == nextMonthDateStr).val * baseSkuData.unit_price });
bdate = now,
edate = nowEdate,
date_str = nowDateStr,
field_type = "推测值",
field = "采购在途库存数量",
project = skuData.project,
sku = skuData.sku,
val =
salesDayConfigs.Where(s => s.bdate <= turnoverDaysEndDate).Sum(s => s.sales)
- datas.FirstOrDefault(s => s.field == "剩余可用库存数量" && s.field_type == "实际值" && s.date_str == nowDateStr).val
- turnoverDaysTransExpectarrivaltimeDatas.Sum(s => s.count)
});
SaveDeviation(datas, new dc_ana_deviation
{
bdate = now,
edate = nowEdate,
date_str = nowDateStr,
field_type = "推测值",
field = "采购在途库存金额",
project = skuData.project,
sku = skuData.sku,
val =
datas.FirstOrDefault(s => s.field == "采购在途库存数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val * baseSkuData.unit_price
});
// 偏差分析
SaveDeviation(datas, new dc_ana_deviation SaveDeviation(datas, new dc_ana_deviation
{ {
bdate = now, bdate = now,
...@@ -207,7 +148,15 @@ namespace AutoTurnOver.DB ...@@ -207,7 +148,15 @@ namespace AutoTurnOver.DB
field = "产品成本预计偏差值", field = "产品成本预计偏差值",
project = skuData.project, project = skuData.project,
sku = skuData.sku, sku = skuData.sku,
val = datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "推测值" && s.date_str == nowDateStr).val val = //datas.FirstOrDefault(s => s.field == "销售产品成本" && s.field_type == "推测值" && s.date_str == nowDateStr).val
( _connection.QueryFirstOrDefault<decimal?>(" select `val` 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 = skuData.sku,
project = skuData.project,
field = "销售产品成本",
date_str = nowDateStr,
field_type = "推测值"
}, commandTimeout: 0) ?? 0)
- 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
}); });
SaveDeviation(datas, new dc_ana_deviation SaveDeviation(datas, new dc_ana_deviation
...@@ -231,7 +180,15 @@ namespace AutoTurnOver.DB ...@@ -231,7 +180,15 @@ namespace AutoTurnOver.DB
field = "销售数量预计偏差值", field = "销售数量预计偏差值",
project = skuData.project, project = skuData.project,
sku = skuData.sku, sku = skuData.sku,
val = datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val val = //datas.FirstOrDefault(s => s.field == "销售产品数量" && s.field_type == "推测值" && s.date_str == nowDateStr).val
(_connection.QueryFirstOrDefault<decimal?>(" select `val` 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 = skuData.sku,
project = skuData.project,
field = "销售产品数量",
date_str = nowDateStr,
field_type = "推测值"
}, commandTimeout: 0) ?? 0)
- 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
}); });
SaveDeviation(datas, new dc_ana_deviation SaveDeviation(datas, new dc_ana_deviation
......
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