Commit ba7191a1 by lizefeng

新增备货天数

parent 36d905de
......@@ -155,9 +155,9 @@ WHERE
/// <param name="warehouse_code"></param>
/// <param name="index">dc_auto_inbound details 字段中的索引 索引</param>
/// <returns></returns>
public static List<dc_estimated_arrival_dto> EstimatedArrivalList(string sku, string warehouse_code,int index)
public static List<dc_estimated_arrival_dto> EstimatedArrivalList(string sku, string warehouse_code, int index)
{
var inbound_data = _connection.QueryFirstOrDefault<dc_auto_inbound>(" select * from dc_auto_inbound where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ",new { bailun_sku=sku, warehouse_code = warehouse_code });
var inbound_data = _connection.QueryFirstOrDefault<dc_auto_inbound>(" select * from dc_auto_inbound where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ", new { bailun_sku = sku, warehouse_code = warehouse_code });
if (inbound_data == null) return new List<dc_estimated_arrival_dto>();
else
{
......@@ -165,11 +165,11 @@ WHERE
var relation = inbound_data.relation;
if (string.IsNullOrWhiteSpace(relation))
{
return new List<dc_estimated_arrival_dto>() ;
return new List<dc_estimated_arrival_dto>();
}
else
{
var nos = relation.Replace("[","").Replace("]","").Split(',')[index];
var nos = relation.Replace("[", "").Replace("]", "").Split(',')[index];
var datas = new List<dc_estimated_arrival_dto>();
if (nos != "N/A")
{
......@@ -181,13 +181,13 @@ WHERE
data.no = no_datas[1];
data.quantity = decimal.Parse(no_datas[2]);
datas.Add(data);
}
return datas;
}
return datas;
}
}
......@@ -199,7 +199,7 @@ WHERE
/// <param name="sku">sku</param>
/// <param name="warehouse_code">仓库编码</param>
/// <returns></returns>
public static List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea,bool isSum = false)
public static List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea, bool isSum = false, string order = null, string sort = null)
{
var sql = "";
if (isSum)
......@@ -233,77 +233,44 @@ sum(t1.occupy_order) as 'occupy_order',
sum(t4.quantity_purchase) as 'purchase_daily_quantity',
sum(t4.quantity_purchase) as 'realtime_quantity_purchase',
sum(t4.quantity_transfer) as 'realtime_quantity_transfer'
sum(t4.quantity_transfer) as 'realtime_quantity_transfer',
sum(t4.quantity_out_stock) as 'quantity_out_stock'
from
(SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_mid_transit AS t1
union
SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_base_stock AS t1
) as t_base
left join dc_base_stock as t1 on t_base.bailun_sku = t1.bailun_sku and t_base.warehouse_code = t1.warehouse_code
left join dc_base_sku as t3 on t_base.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t_base.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t_base.bailun_sku = t4.bailun_sku and t_base.warehouse_code = t4.warehouse_code
dc_base_stock as t1
left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t1.bailun_sku = t4.bailun_sku and t1.warehouse_code = t4.warehouse_code
where 1=1";
}
else
{
sql = @"
sql = @"
select
(case when dbw.hq_type='fba仓' then dbw.bailun_account else dbw.warehouse_name end) as warehouse_name,
t3.sku_title_cn as 'sku_name',
t4.quantity_purchase as 'purchase_daily_quantity',
t3.buyer_name,t3.sku_title_cn,t3.sku_title_en,t3.product_inner_code,
t4.quantity_purchase as 'realtime_quantity_purchase',t4.quantity_transfer as 'realtime_quantity_transfer',
t_base.bailun_sku,t_base.warehouse_code,
t1.bailun_sku,t1.warehouse_code,t3.suppliers_name,t4.quantity_out_stock,t4.gmt_out_stock_modified,
t1.*
from
(SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_mid_transit AS t1
union
SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_base_stock AS t1
) as t_base
left join dc_base_stock as t1 on t_base.bailun_sku = t1.bailun_sku and t_base.warehouse_code = t1.warehouse_code
left join dc_base_sku as t3 on t_base.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t_base.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t_base.bailun_sku = t4.bailun_sku and t_base.warehouse_code = t4.warehouse_code
dc_base_stock as t1
left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t1.bailun_sku = t4.bailun_sku and t1.warehouse_code = t4.warehouse_code
where 1=1
";
}
var countSql = @"
select
count(1)
from
(SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_mid_transit AS t1
union
SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_base_stock AS t1
) as t_base
left join dc_base_stock as t1 on t_base.bailun_sku = t1.bailun_sku and t_base.warehouse_code = t1.warehouse_code
left join dc_base_sku as t3 on t_base.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t_base.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t_base.bailun_sku = t4.bailun_sku and t_base.warehouse_code = t4.warehouse_code
dc_base_stock as t1
left join dc_base_sku as t3 on t1.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t1.bailun_sku = t4.bailun_sku and t1.warehouse_code = t4.warehouse_code
where 1=1
";
DynamicParameters parameters = new DynamicParameters();
......@@ -316,7 +283,7 @@ where 1=1
parameters.Add("hq_type", warehousetype);
}
if (warehousearea>0)
if (warehousearea > 0)
{
sql += " and dbw.area_id = @area_id ";
countSql += " and dbw.area_id = @area_id ";
......@@ -359,11 +326,61 @@ where 1=1
else
{
total = _connection.QueryFirst<int>(countSql, parameters);
if (!string.IsNullOrEmpty(sort) && !string.IsNullOrEmpty(order))
{
sql += " order by " + sort;
if (!string.IsNullOrEmpty(order))
{
sql += " " + order;
}
else
{
sql += " asc";
}
}
sql += " limit " + offset + "," + limit;
}
var obj = _connection.Query<dc_base_stock_dto>(sql, parameters,buffered:false,commandTimeout:0);
var obj = _connection.Query<dc_base_stock_dto>(sql, parameters, buffered: false, commandTimeout: 0);
return obj.AsList();
}
public static string MapField(string sort)
{
sort = sort.Replace("-","");
switch (sort)
{
case "quantity_out_stock":return "t4.quantity_out_stock";
default:return sort;
}
}
/// <summary>
/// 查询缺货订单
/// </summary>
/// <param name="sku"></param>
/// <param name="warehouse_code"></param>
/// <returns></returns>
public static IEnumerable<dc_base_oms_sku> OutOfStockOrderList(string sku, string warehouse_code)
{
var sql = @"
SELECT
*
FROM
dc_base_oms_sku
WHERE
bailun_order_status not in ('Canceled')
and bailun_interception_status in('None','Failed')
and warehouse_code = @warehouse_code and bailun_sku=@bailun_sku
and platform_type != 'FBA'
AND paid_time >= '2019-03-01 12:00:00'
and bailun_sku_quantity_ordered > bailun_sku_quantity_picked
";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("bailun_sku", sku);
parameters.Add("warehouse_code", warehouse_code);
return _connection.Query<dc_base_oms_sku>(sql, parameters);
}
}
}
......@@ -401,6 +401,136 @@ where 1 = 1 ";
#endregion
#region 备货天数设置
/// <summary>
/// 获取备货天数设置分页列表
/// </summary>
/// <param name="m"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <param name="total"></param>
/// <returns></returns>
public static List<dc_auto_config_stock_up_days> StockUpList(Condition_ConfigPromotion m, int offset, int limit, ref int total)
{
var list = new List<dc_auto_config_stock_up_days>();
try
{
var sql = @"select dacp.* from dc_auto_config_stock_up_days as dacp
left join dc_base_warehouse as dbw on dacp.warehouse_code = dbw.warehouse_code where 1 = 1 ";
if (!string.IsNullOrWhiteSpace(m.warehousetype))
{
sql += " and dbw.hq_type=" + $"'{m.warehousetype}'";
}
if (m.warehousearea > 0)
{
sql += " and dbw.area_id=" + m.warehousearea;
}
if (m.IsEffective == true)
{
sql += $" and dacp.status=1 ";
}
if (!string.IsNullOrWhiteSpace(m.sku))
{
sql += " and dacp.variable_code like '%" + m.sku + "%'";
}
if (!string.IsNullOrWhiteSpace(m.warehousecode))
{
sql += " and dacp.warehouse_code='" + m.warehousecode + "'";
}
total = _connection.ExecuteScalar<int>("select count(0) from (" + sql + ") tb1");
var obj = _connection.Query<dc_auto_config_stock_up_days>(sql + " limit " + offset + "," + limit);
return obj.AsList();
}
catch (Exception)
{
return list;
}
}
/// <summary>
/// 保存安全库存规则
/// </summary>
/// <param name="m">销售设置model</param>
/// <param name="username">当前操作人名称</param>
/// <returns></returns>
public static string SaveStockUp(Models.dc_auto_config_stock_up_days m, string username)
{
var obj = _connection.QueryFirstOrDefault<Models.dc_auto_config_stock_up_days>("select * from dc_auto_config_stock_up_days where id=" + m.id);
if (obj == null)
{
obj = new dc_auto_config_stock_up_days
{
gmt_create = DateTime.Now,
gmt_modified = DateTime.Now
};
}
obj.id = m.id;
obj.bl_operator = username ?? "";
obj.gmt_modified = DateTime.Now;
obj.remark = "";
obj.warehouse_code = m.warehouse_code;
obj.warehouse_name = m.warehouse_name;
obj.status = 1;
obj.stock_up_days = m.stock_up_days;
// 检查该数据是否有存在
var oldData = _connection.QueryFirstOrDefault(" select * from dc_auto_config_stock_up_days where warehouse_code=@warehouse_code and id!=@id ", new { m.warehouse_code,m.id });
if (oldData != null)
{
return $" 仓库:【{m.warehouse_name}】 已经配置过了 ";
}
try
{
if (obj.id > 0)
{
var result = _connection.Update<Models.dc_auto_config_stock_up_days>(obj);
return result > 0 ? "" : "保存异常,请重试!";
}
else
{
var result = _connection.Insert<Models.dc_auto_config_stock_up_days>(obj);
return result.HasValue && result.Value > 0 ? "" : "提交异常,请重试!";
}
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 获取安全库存规则设置详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static dc_auto_config_stock_up_days GetStockUpById(int id)
{
return _connection.QueryFirstOrDefault<dc_auto_config_stock_up_days>("select * from dc_auto_config_stock_up_days where id=" + id);
}
#endregion
/// <summary>
/// 修改监控状态
/// </summary>
......
......@@ -53,7 +53,7 @@ where 1=1 ";
{
sql = @"select dat.*,t2.oneday_sales,t2.forecast_oneday_sales as 'forecast_oneday_sales2',
t4.product_inner_code,t4.product_code,t4.bailun_category_name,
( case when t5.`status`=0 or t5.`status` is null then 0 else 1 end ) as 'monitor_status'
( case when t5.`status`=0 or t5.`status` is null then 0 else 1 end ) as 'monitor_status',t4.suppliers_name
from dc_auto_turnover as dat
left join dc_auto_sales as t2 on t2.bailun_sku=dat.bailun_sku and dat.warehouse_code = t2.warehouse_code
left join dc_base_warehouse as t3 on dat.warehouse_code = t3.warehouse_code
......
......@@ -219,7 +219,6 @@ where 1=1 ";
sql = @"
select
t1.*,t2.warehouse_name,t3.sku_title_cn as 'sku_name',t4.create_time,
(t5.forecast_turnoverday_sales) as 'forecast_turnoverday_sales', -- 供应链长度日均
(t5.quantity_out_stock) as 'quantity_out_stock', -- 缺货
(t5.quantity_transfer) as 'quantity_transfer', -- 调拨在途
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
/// <summary>
/// 备货天数配置
/// </summary>
public class dc_auto_config_stock_up_days
{
public int id { get; set; }
public DateTime gmt_create { get; set; }
public DateTime gmt_modified { get; set; }
public string warehouse_code { get; set; }
public string warehouse_name { get; set; }
public string bl_operator { get; set; }
public string remark { get; set; }
public int status { get; set; }
public int stock_up_days { get; set; }
}
}
......@@ -101,6 +101,11 @@ namespace AutoTurnOver.Models
/// </summary>
public int type { get; set; }
public string type_str { get
{
return ((purchase_advise_type_enum)type).ToString();
} }
/// <summary>
/// 系统建议数量
/// </summary>
......@@ -136,9 +141,17 @@ namespace AutoTurnOver.Models
public decimal history_fourteenday_sales { get; set; }
public int suppliers_id { get; set; }
}
public enum purchase_advise_type_enum
{
预计缺货 = 1,
实际缺货 = 2,
补货 = 3
}
public class dc_auto_purchase_advise_detailed_buy_dto: dc_auto_purchase_advise_detailed
public class dc_auto_purchase_advise_detailed_buy_dto : dc_auto_purchase_advise_detailed
{
/// <summary>
/// 单价
......
......@@ -46,7 +46,7 @@ namespace AutoTurnOver.Models
/// 仓库名称
/// </summary>
public string warehouse_name { get; set; }
/// <summary>
/// 活动促销数量
/// </summary>
......@@ -76,7 +76,7 @@ namespace AutoTurnOver.Models
/// 安全库存
/// </summary>
public decimal quantity_safe_inventory { get; set; }
/// <summary>
/// 备注
......@@ -226,6 +226,32 @@ namespace AutoTurnOver.Models
/// </summary>
public int? abroad_inbound_config_delivery { get; set; }
/// <summary>
/// 初始建议数
/// </summary>
public int quantity_begin_advise { get; set; }
/// <summary>
/// 备货天数
/// </summary>
public int stock_up_days { get; set; }
public int stock_up_days_final
{
get
{
if (stock_up_days >= 1)
{
return stock_up_days - 1;
}
else
{
return 0;
}
}
}
}
public class Condition_AutoTurnOver
......@@ -292,7 +318,7 @@ namespace AutoTurnOver.Models
/// </summary>
public string categoryIds { get; set; }
public List<CategoryDto> categoryModels { get;set; }
public List<CategoryDto> categoryModels { get; set; }
}
public class dc_auto_turnover_Extend : dc_auto_turnover
......@@ -327,6 +353,8 @@ namespace AutoTurnOver.Models
/// </summary>
public int monitor_status { get; set; }
public string supplier_name { get; set; }
}
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
/// <summary>
/// 百伦OMS 订单明细
/// </summary>
public class dc_base_oms_sku
{
public int id { get; set; }
public string transaction_id { get; set; }
public string origin_order_id { get; set; }
public string platform_type { get; set; }
public DateTime pay_time { get; set; }
public string website { get; set; }
public string bailun_sku { get; set; }
public string warehouse_code { get; set; }
public string bailun_sku_title_cn { get; set; }
public string bailun_sku_quantity_ordered { get; set; }
}
}
......@@ -196,5 +196,11 @@ namespace AutoTurnOver.Models
/// 实时调拨在途
/// </summary>
public int realtime_quantity_transfer { get; set; }
public string suppliers_name { get; set; }
public decimal? quantity_out_stock { get; set; }
public DateTime? gmt_out_stock_modified { get; set; }
}
}
......@@ -346,6 +346,63 @@ namespace AutoTurnOver.Services
#endregion
#region 备货天数配置
/// <summary>
/// 获取备货天数设置分页列表
/// </summary>
/// <param name="m"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <returns></returns>
public List<dc_auto_config_stock_up_days> StockUpList(Condition_ConfigPromotion m, int offset, int limit, ref int total)
{
return DB.db_config.StockUpList(m, offset, limit, ref total);
}
/// <summary>
/// 保存备货天数
/// </summary>
/// <param name="m">销售设置model</param>
/// <param name="username">当前操作人</param>
/// <returns></returns>
public string SaveStockUp(Models.dc_auto_config_stock_up_days m, string username)
{
if (string.IsNullOrWhiteSpace(m.warehouse_code))
{
return "请选择仓库!";
}
var objWarehouse = DB.common.GetWareHouseByCode(m.warehouse_code);
if (objWarehouse == null)
{
return "系统找不到该仓库。";
}
m.warehouse_name = objWarehouse.warehouse_name;
if (m.stock_up_days < 1)
{
return "备货天数不可小于1";
}
return DB.db_config.SaveStockUp(m, username);
}
/// <summary>
/// 获取备货天数设置详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public dc_auto_config_stock_up_days GetStockUpById(int id)
{
return DB.db_config.GetStockUpById(id);
}
#endregion
/// <summary>
/// 获取安全库存规则设置详情
/// </summary>
......
......@@ -33,9 +33,9 @@ namespace AutoTurnOver.Services
}
public List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea,bool isSum = false)
public List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea,bool isSum = false,string order = null,string sort = null)
{
return DB.daily.RealtimeList(sku, warehouse_code,product_inner_code,sku_title_cn,offset, limit, ref total,warehousetype,warehousearea, isSum);
return DB.daily.RealtimeList(sku, warehouse_code,product_inner_code,sku_title_cn,offset, limit, ref total,warehousetype,warehousearea, isSum, order, sort);
}
......@@ -51,5 +51,17 @@ namespace AutoTurnOver.Services
return DB.daily.EstimatedArrivalList(sku, warehouse_code, index);
}
/// <summary>
/// 缺货订单
/// </summary>
/// <param name="sku"></param>
/// <param name="warehouse_code"></param>
/// <param name="index"></param>
/// <returns></returns>
public IEnumerable<dc_base_oms_sku> OutOfStockOrderList(string sku, string warehouse_code)
{
return DB.daily.OutOfStockOrderList(sku, warehouse_code);
}
}
}
......@@ -201,6 +201,69 @@ namespace AutoTurnOver.Controllers
#endregion
#region 备货天数
/// <summary>
/// 获取备货天数列表
/// </summary>
/// <param name="limit">每页记录数</param>
/// <param name="offset">偏移量</param>
/// <param name="order">排序字段</param>
/// <param name="sort">升序还是降序</param>
/// <param name="sku">sku编码</param>
/// <param name="warehousecode">仓库编码</param>
/// <param name="IsEffective">是否有效数据</param>
/// <returns></returns>
[HttpGet]
public JsonResult StockUpList(int limit, int offset, string order, string sort, string sku, string warehousecode, string warehousetype, int? warehousearea, bool? IsEffective = null)
{
var m = new Condition_ConfigPromotion
{
sku = sku,
warehousecode = warehousecode,
IsEffective = IsEffective,
warehousetype = warehousetype,
warehousearea = warehousearea
};
var total = 0;
var service = new Services.ConfigServices();
var list = service.StockUpList(m, offset, limit, ref total);
return new JsonResult(new
{
rows = list,
total = total,
});
}
/// <summary>
/// 保存备货天数设置
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult SaveStockUp([FromBody]dc_auto_config_stock_up_days m)
{
var result = new Services.ConfigServices().SaveStockUp(m, "");
return new JsonResult(result);
}
/// <summary>
/// 获取备货天数详情
/// </summary>
/// <param name="id">销售设置id</param>
/// <returns></returns>
[HttpGet]
public JsonResult GetStockUpById(int id)
{
var m = new Services.ConfigServices().GetStockUpById(id);
return new JsonResult(m);
}
#endregion
/// <summary>
/// 监控状态修改
/// </summary>
......
......@@ -66,7 +66,7 @@ namespace AutoTurnOver.Controllers
var services = new DailyServices();
var total = 0;
var list = services.RealtimeList(sku, warehousecode,product_inner_code, sku_title_cn, offset, limit, ref total,warehousetype,warehousearea);
var list = services.RealtimeList(sku, warehousecode,product_inner_code, sku_title_cn, offset, limit, ref total,warehousetype,warehousearea,order: order, sort: sort);
return new JsonResult(new
{
......@@ -125,7 +125,7 @@ namespace AutoTurnOver.Controllers
string[] cols = new string[] { "Sku", "采购名称", "中文名", "英文名称","内部编码", "仓库编码", "仓库名称", "货主编码","实时采购在途","实时调拨在途"
,"订货数量","运输在途","中转仓库存","冻结库存","供应商库存","预售库存","不良品库存","在途库存","收货待检"
,"待上架","可配库存","销售可用库存(聚合)","销售可用库存(私有)","销售可用库存(共享)","在仓库存(共享)","在仓库存(私有)","在仓库存(聚合)","仓库占用(共享)"
,"仓库占用(私有)","仓库占用(聚合)","活动占用","单占用(私有)","订单占用(共享)","订单占用(聚合)","环球更新时间"
,"仓库占用(私有)","仓库占用(聚合)","活动占用","单占用(私有)","订单占用(共享)","订单占用(聚合)","环球更新时间","供应商"
};
foreach (var item in cols)
{
......@@ -172,6 +172,8 @@ namespace AutoTurnOver.Controllers
row["实时采购在途"] = itemData.realtime_quantity_purchase;
row["实时调拨在途"] = itemData.realtime_quantity_transfer;
row["供应商"] = itemData.suppliers_name;
table.Rows.Add(row);
}
......@@ -188,5 +190,25 @@ namespace AutoTurnOver.Controllers
memory.Position = 0;
return File(memory, "text/csv", "实时库存.csv");
}
/// <summary>
/// 缺货订单
/// </summary>
/// <param name="sku"></param>
/// <param name="warehousecode"></param>
/// <returns></returns>
public JsonResult OutOfStockOrderList(string sku, string warehousecode)
{
var services = new DailyServices();
var total = 0;
var list = services.OutOfStockOrderList(sku, warehousecode);
return new JsonResult(new
{
rows = list,
total = total,
});
}
}
}
\ No newline at end of file
......@@ -152,7 +152,10 @@ namespace AutoTurnOver.Controllers
var list = PurchaseAdviseServices.DetailList(m, 0, int.MaxValue, ref total);
DataTable table = new DataTable();
string[] cols = new string[] { "时间", "sku", "产品名称", "仓库编码", "仓库名称", "初始建议数", "建议采购数量", "实际下单数量" };
string[] cols = new string[] { "初始建议数", "系统建议数", "采购数量", "是否已推送", "时间", "sku", "产品名称", "产品14日日均", "仓库编码","仓库名称",
"内部商品编码", "商品建议采购", "商品14日日均", "商品moq", "供应链日均销量", "缺货", "调拨在途", "采购在途", "库存数",
"采购金额", "供应链长度", "供应商名称", "采购类型"
};
foreach (var item in cols)
{
table.Columns.Add(item);
......@@ -162,14 +165,29 @@ namespace AutoTurnOver.Controllers
{
DataRow row = table.NewRow();
row["初始建议数"] = itemData.quantity_init_advise;
row["系统建议数"] = itemData.quantity_final_advise;
row["采购数量"] = itemData.quantity_actual;
row["是否已推送"] = itemData.ispush == 1?"是":"否";
row["时间"] = itemData.create_time_str;
row["sku"] = itemData.bailun_sku;
row["产品名称"] = itemData.sku_name;
row["产品14日日均"] = itemData.history_fourteenday_sales;
row["仓库编码"] = itemData.warehouse_code;
row["仓库名称"] = itemData.warehouse_name;
row["初始建议数"] = itemData.quantity_init_advise;
row["建议采购数量"] = itemData.quantity_final_advise;
row["实际下单数量"] = itemData.quantity_actual;
row["内部商品编码"] = itemData.product_inner_code;
row["商品建议采购"] = itemData.goods_quantity_init_advise;
row["商品14日日均"] = itemData.goods_history_fourteenday_sales;
row["商品moq"] = itemData.goods_moq;
row["供应链日均销量"] = itemData.forecast_turnoverday_sales;
row["缺货"] = itemData.quantity_out_stock;
row["调拨在途"] = itemData.quantity_transfer;
row["采购在途"] = itemData.quantity_purchase;
row["库存数"] = itemData.quantity_inventory;
row["采购金额"] = itemData.quantity_final_advise_price;
row["供应链长度"] = itemData.turnover_days;
row["供应商名称"] = itemData.suppliers_name;
row["采购类型"] = itemData.type_str;
table.Rows.Add(row);
}
......
......@@ -170,13 +170,14 @@ namespace AutoTurnOver.Controllers
p.product_inner_code,
p.product_code,
p.bailun_category_name,
p.monitor_status
p.monitor_status,
p.supplier_name
});
DataTable table = new DataTable();
string[] cols = new string[] { "Sku","商品编码", "内部编码", "sku标题", "仓库编码", "仓库名称", "MOQ",
"采购在途", "调拨在途", "昨日销量", "明日销量", "未来7天日均", "未来14天日均", "建议采购数", "活动促销数量",
"实际库存", "安全库存", "周转天数", "供应商交期", "质检入库天数", "调拨头程天数", "预测是否断货", "缺货数量","监控状态"
"实际库存", "安全库存", "周转天数", "供应商交期", "质检入库天数", "调拨头程天数", "预测是否断货", "缺货数量","监控状态","供应商"
};
foreach (var item in cols)
{
......@@ -211,6 +212,7 @@ namespace AutoTurnOver.Controllers
row["预测是否断货"] = itemData.status == 1 ? "是" : "否";
row["缺货数量"] = itemData.quantity_out_stock;
row["监控状态"] = itemData.monitor_status == 1 ? "停止监控" : "监控中";
row["供应商"] = itemData.supplier_name;
table.Rows.Add(row);
}
......
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