Commit d1355545 by lizefeng

调整库存建议公式

parent 7791e139
......@@ -6,81 +6,20 @@ namespace AutoTurnOver.Models.ApiDto
{
public class mPlanToPurchaseDto
{
/// <summary>
///
/// </summary>
public int bp_id { get; set; }
///<summary>
///创建人
///</summary>
public int bp_userid { get; set; }
///<summary>
///相关部门
///</summary>
public int bp_department { get; set; }
///<summary>
///计划类别
///</summary>
public int bp_type { get; set; }
///<summary>
///是否调拨 0:否 1:是
///</summary>
public int bp_send { get; set; }
///<summary>
///从哪个仓库发出(仓库编码)
///</summary>
public string bp_sendfromCode { get; set; }
///<summary>
///要发到哪个仓库(仓库编码)
///</summary>
public string bp_sendtoCode { get; set; }
///<summary>
///运输方式
///</summary>
public int bp_sendtype { get; set; }
///<summary>
///采购员名称
///</summary>
public string bp_buyuserName { get; set; }
///<summary>
///审核人
///</summary>
public int bp_roleuser { get; set; }
///<summary>
///备注
///</summary>
public string bp_remark { get; set; }
///<summary>
///计划单发起时间
///</summary>
public DateTime bp_savetime { get; set; }
///<summary>
///创建时间
///</summary>
public DateTime bp_createtime { get; set; }
///<summary>
///创建人
///</summary>
public string bp_createuser { get; set; }
/// <summary>
/// 是否紧急(0常规,1紧急)
/// </summary>
public int bp_imporstate { get; set; }
/// <summary>
/// 付款主体
/// </summary>
public int bp_paycompany { get; set; }
/// <summary>
/// 采购计划单sku
/// </summary>
public List<bi_buyplandetail> bi_buyplandetail { get; set; }
/// <summary>
/// 子分类
/// </summary>
public int bp_type2 { get; set; }
}
/// <summary>
......@@ -89,27 +28,7 @@ namespace AutoTurnOver.Models.ApiDto
public class bi_buyplandetail
{
///<summary>
///
///</summary>
public int bd_id { get; set; }
///<summary>
///对应计划单的ID
///</summary>
public int bd_bpid { get; set; }
///<summary>
///yt_product对应的ID 主要是兼容老数据
///</summary>
public int bd_productid { get; set; }
///<summary>
///对应的SKUID,新数据中的yt_stock
///</summary>
public int bd_skuid { get; set; }
///<summary>
///SKU别名
///SKU
///</summary>
public string bd_sku { get; set; }
......@@ -119,12 +38,12 @@ namespace AutoTurnOver.Models.ApiDto
public decimal bd_count { get; set; }
///<summary>
///SKU标题
///采购价格
///</summary>
public string bd_title { get; set; }
public decimal bd_price { get; set; }
///<summary>
///对应的供应商ID
///对应的供应商ID, 这个是skums那边的供应商id
///</summary>
public int bd_supid { get; set; }
......@@ -132,55 +51,5 @@ namespace AutoTurnOver.Models.ApiDto
///供应商名称
///</summary>
public string bd_supplier { get; set; }
///<summary>
///对应的采购
///</summary>
public int bd_buyuser { get; set; }
///<summary>
///当前采购价格
///</summary>
public decimal bd_price { get; set; }
///<summary>
///合计金额
///</summary>
public decimal bd_totalprice { get; set; }
///<summary>
///币种英文名
///</summary>
public string bd_unitename { get; set; }
///<summary>
///货币单位名称
///</summary>
public string bd_unitname { get; set; }
///<summary>
///标记状态:0常规,1紧急
///</summary>
public int bd_imporstate { get; set; }
///<summary>
///标记人
///</summary>
public int? bd_imporuserid { get; set; }
///<summary>
///标记人名称
///</summary>
public string bd_imporuser { get; set; }
///<summary>
///标记时间
///</summary>
public DateTime? bd_importime { get; set; }
///<summary>
///手工导入的sku品牌
///</summary>
public string bd_brandname { get; set; }
}
}
......@@ -74,7 +74,7 @@ namespace AutoTurnOver.Models
/// <summary>
/// 安全库存
/// </summary>
public int quantity_safe_inventory { get; set; }
public decimal quantity_safe_inventory { get; set; }
/// <summary>
......@@ -182,6 +182,11 @@ namespace AutoTurnOver.Models
/// </summary>
public decimal abroad_inbound_delivery { get; set; }
/// <summary>
/// 补充销量
/// </summary>
public decimal supplementary_sales { get; set; }
}
public class Condition_AutoTurnOver
......
......@@ -44,7 +44,7 @@ namespace AutoTurnOver.Services
/// <summary>
/// 推送采购计划
/// </summary>
public static BuyOutputResult PushBuyPlan(mPlanToPurchaseDto data)
public static BuyOutputResult PushBuyPlan(List<mPlanToPurchaseDto> data)
{
//查询采购建议明细
string url = ConfigHelper.GetValue("PushBuyPlan");
......
......@@ -121,31 +121,33 @@ namespace AutoTurnOver.Services
}
DateTime now = DateTime.Now;
List<mPlanToPurchaseDto> datas = new List<mPlanToPurchaseDto>();
// 查询采购建议的明细
var detailList = purchase_advise.BuyDetailList(lastPurchaseAdvise.id);
mPlanToPurchaseDto data = new mPlanToPurchaseDto
{
bi_buyplandetail = new List<bi_buyplandetail>(),
bp_createtime = now,
bp_imporstate = 0,
bp_remark = "数据中心推送",
bp_savetime = now
};
data.bi_buyplandetail = detailList.Select(s => new bi_buyplandetail
foreach (var item in detailList.GroupBy(s => s.warehouse_code))
{
bd_count = s.quantity_actual > 0 ? s.quantity_actual : s.quantity_init_advise,
bd_imporstate = 0,
bd_price = s.unit_price,
bd_sku = s.bailun_sku
}).ToList();
//把采购数量没有填的都补上 建议采购数
conn.Execute(" update dc_auto_purchase_advise_detailed set quantity_actual=quantity_init_advise where quantity_actual<=0 and main_id=@mainID ", new { mainID = lastPurchaseAdvise.id }, transaction);
var result = ApiServices.PushBuyPlan(data);
conn.Execute(" update dc_auto_purchase_advise set buy_sys_plan_no=@buy_sys_plan_no,push_time=@push_time ", new { buy_sys_plan_no = result.planNo, push_time = now }, transaction);
mPlanToPurchaseDto data = new mPlanToPurchaseDto
{
bp_sendtype = 1,
bp_sendfromCode = item.Key,
bi_buyplandetail = new List<bi_buyplandetail>()
};
data.bi_buyplandetail = detailList.Select(s => new bi_buyplandetail
{
bd_count = s.quantity_actual > 0 ? s.quantity_actual : s.quantity_init_advise,
bd_price = s.unit_price,
bd_sku = s.bailun_sku
}).ToList();
datas.Add(data);
//把采购数量没有填的都补上 建议采购数
conn.Execute(" update dc_auto_purchase_advise_detailed set quantity_actual=quantity_init_advise where quantity_actual<=0 and main_id=@mainID ", new { mainID = lastPurchaseAdvise.id }, transaction);
var result = ApiServices.PushBuyPlan(datas);
conn.Execute(" update dc_auto_purchase_advise set buy_sys_plan_no=@buy_sys_plan_no,push_time=@push_time ", new { buy_sys_plan_no = result.planNo, push_time = now }, transaction);
}
transaction.Commit();
}
......
......@@ -5,6 +5,7 @@ using System.Threading.Tasks;
using AutoTurnOver.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using AutoTurnOver.Utility;
namespace AutoTurnOver.Controllers
{
......@@ -49,19 +50,29 @@ namespace AutoTurnOver.Controllers
var averageTargets = PurchaseAverageTargetServices.GetList(sku);
var averageTargetWarehouse = PurchaseAverageTargetServices.GetWarehouse(sku, warehousecode);
DateTime turnoverDate = DateTime.Now.AddDays(turnoverData.turnover_days);
// 计算到周转期前一天的累计销量
decimal turnoverDatecumulativeSales = 0;
var salesList = result[0].ToObj<List<decimal>>();
for (int i = 7; i < turnoverData.turnover_days+7; i++)
{
turnoverDatecumulativeSales += salesList[i];
}
var turnoverDateSales = (int)result[0].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1];
var buyFormula = new
{
turnoverDateStr = turnoverDate.ToString("yyyy-MM-dd"), // 取值日期
turnoverDateSales = int.Parse(result[0].Split(',')[turnoverData.turnover_days + 7]), // 当日预测销量
turnoverDateStock = int.Parse(result[2].Split(',')[turnoverData.turnover_days + 7]), // 当日预测库存
turnoverDateSales = turnoverDateSales, // 当日预测销量
turnoverDateStock = (int)result[2].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 -1], // 当日预测库存,
turnoverDatecumulativeSales = (int)turnoverDatecumulativeSales, // 累计销量
nowStr = DateTime.Now.ToString("yyyy-MM-dd"), // 今天的日期
nowShortage = int.Parse(result[3].Split(',')[7]), // 今天的实际缺货
nowShortage = (int)result[3].ToObj<List<decimal>>()[7], // 今天的实际缺货
cumulativeShortageDate = turnoverDate.AddDays(-1).ToString("yyyy-MM-dd"),// 一直到周转期前一天的日期
cumulativeShortage = int.Parse(result[3].Split(',')[turnoverData.turnover_days + 7 - 1]), // 一直到周转期前一天的累计缺货
cumulativeShortage = (int)result[3].ToObj<List<decimal>>()[turnoverData.turnover_days + 7 - 1], // 一直到周转期前一天的累计缺货
average_overdue = Math.Max(0, turnoverData.average_overdue),
nowDateStock = int.Parse(result[2].Split(',')[7]) // 今天的预测库存
nowDateStock = (int)result[2].ToObj<List<decimal>>()[7] // 今天的预测库存
};
turnoverData.quantity_purchase = turnoverDateSales;
return new JsonResult(new
{
data = result,
......
......@@ -24,7 +24,7 @@ namespace AutoTurnOver.Controllers
/// <param name="pagesize">每页记录数</param>
/// <returns></returns>
[HttpGet]
public JsonResult List(int limit, int offset, string order,string sort,string sku,int? IsRedundant,int? IsStockOut,string warehousecode,string warehousetype,int? warehousearea)
public JsonResult List(int limit, int offset, string order,string sort,string sku,int? IsRedundant,int? IsStockOut,string warehousecode,string warehousetype,int? warehousearea,bool? hasDefectConfig)
{
var m = new Condition_AutoTurnOver {
......@@ -33,7 +33,8 @@ namespace AutoTurnOver.Controllers
redundancy = IsRedundant,
warehouse_code = warehousecode,
warehousetype = warehousetype,
warehousearea = warehousearea
warehousearea = warehousearea,
hasDefectConfig = hasDefectConfig
};
var total = 0;
......
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