Commit 3b860edd by guanzhenshan

增加api接口给冯荣

parent 157a8fe9
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Api
{
public class mSkuStock
{
/// <summary>
/// 仓库编码
/// </summary>
public string warehouse_code { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string warehouse_name { get; set; }
/// <summary>
/// 仓库类型
/// </summary>
public string hq_type { get; set; }
/// <summary>
/// sku
/// </summary>
public string bailun_sku { get; set; }
/// <summary>
/// 可用库存
/// </summary>
public int usable_stock { get; set; }
/// <summary>
/// 可用库存金额
/// </summary>
public decimal amount { get; set; }
/// <summary>
/// 在途数
/// </summary>
public int? count_transfer { get; set; }
/// <summary>
/// 缺货数
/// </summary>
public int? quantity_out_stock { get; set; }
/// <summary>
/// 昨日日均
/// </summary>
public int? oneday_total_sales { get; set; }
/// <summary>
/// 过去7天日均
/// </summary>
public int? sevenday_average_sales { get; set; }
/// <summary>
/// 过去30天日均
/// </summary>
public int? thirtyday_average_sales { get; set; }
}
}
...@@ -6,6 +6,7 @@ using Dapper; ...@@ -6,6 +6,7 @@ using Dapper;
using MySql.Data.MySqlClient; using MySql.Data.MySqlClient;
using System.Linq; using System.Linq;
using Bailun.DC.Models.Warehouse; using Bailun.DC.Models.Warehouse;
using Bailun.DC.Models.Api;
namespace Bailun.DC.Services namespace Bailun.DC.Services
{ {
...@@ -1092,5 +1093,38 @@ namespace Bailun.DC.Services ...@@ -1092,5 +1093,38 @@ namespace Bailun.DC.Services
return obj.Select(a => new Tuple<string, string>(a.warehouse_code, a.warehouse_name)).ToList(); return obj.Select(a => new Tuple<string, string>(a.warehouse_code, a.warehouse_name)).ToList();
} }
} }
#region Api
/// <summary>
/// 获取SKU+仓库的库存和销量信息
/// </summary>
/// <param name="skus"></param>
/// <returns></returns>
public List<Models.Api.mSkuStock> ListSkuStock(List<string> skus)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var sql = $@"select t1.warehouse_code,t2.warehouse_name,t2.hq_type,t1.bailun_sku,t1.usable_stock,(t1.usable_stock*t3.unit_price) amount,(t4.quantity_purchase+t4.quantity_transfer+t4.quantity_transfer_plan) as count_transfer,t4.quantity_out_stock,t5.oneday_total_sales,t5.sevenday_average_sales,t5.thirtyday_average_sales from dc_base_stock t1
join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku
left join dc_mid_transit t4 on t1.bailun_sku=t4.bailun_sku and t1.warehouse_code=t4.warehouse_code
left join dc_daily_sales t5 on t1.bailun_sku=t5.bailun_sku and t1.warehouse_code=t5.warehouse_code and t5.record_date=DATE_SUB(curdate(),INTERVAL 1 DAY)
where t1.bailun_sku in ('{string.Join("','",skus)}')";
var obj = cn.Query<mSkuStock>(sql).ToList();
return obj;
}
}
#endregion
} }
} }
...@@ -769,5 +769,69 @@ namespace Bailun.DC.Web.Controllers ...@@ -769,5 +769,69 @@ namespace Bailun.DC.Web.Controllers
}); });
} }
} }
/// <summary>
/// 获取SKU+仓库的库存和销量信息
/// </summary>
/// <param name="skus"></param>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuStock(string skus)
{
Services.ApiServices.SaveApiLog("Api/ListSkuStock", _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString());
var listsku = skus.Split(",").Where(a => !string.IsNullOrEmpty(a)).ToList();
if (listsku.Count == 0)
{
return Json(new {
success = false,
msg = "必须最少要有一个sku",
});
}
if (listsku.Count > 2000)
{
return Json(new
{
success = false,
msg = "每次请求不能大于2000个sku",
});
}
try
{
var obj = new Services.WareHouseServices().ListSkuStock(listsku.ToList());
return Json(new
{
success = true,
msg = "",
data = obj.Select(a => new {
a.bailun_sku,
a.warehouse_code,
a.warehouse_name,
warehousetype = a.hq_type,
a.usable_stock,
a.amount,
count_transfer = a.count_transfer??0,
quantity_out_stock = a.quantity_out_stock??0,
oneday_total_sales = a.oneday_total_sales??0,
sevenday_average_sales = a.sevenday_average_sales??0,
thirtyday_average_sales = a.thirtyday_average_sales??0,
})
});
}
catch (Exception ex)
{
return Json(new
{
success = false,
msg = ex.Message
});
}
}
} }
} }
\ No newline at end of file
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