Commit 5325b960 by guanzhenshan

调整数据仓销量分析报表,增加SKU+仓库查询功能,增加导出明细功能

parent e8eb42c6
......@@ -883,7 +883,7 @@ namespace Bailun.DC.Services
}
var sqlparam = new DynamicParameters();
var sql = "select * from dc_mid_skuwarehouse_sales where id>0 ";
var sql = "select * from dc_mid_skuwarehouse_sales where 1=1 ";
if (!string.IsNullOrEmpty(warehousecode))
{
......@@ -928,16 +928,27 @@ namespace Bailun.DC.Services
sql += " and bailun_sku=@sku";
sqlparam.Add("sku", bailun_sku);
}
if (!string.IsNullOrEmpty(parameter.sort))
if (parameter.limit > 0)
{
sql += " order by " + parameter.sort + " " + parameter.order;
}
if (!string.IsNullOrEmpty(parameter.sort))
{
sql += " order by " + parameter.sort + " " + parameter.order;
}
else
{
sql += " order by stock_count desc";
}
var obj = cn.Page<dc_mid_skuwarehouse_sales>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam);
var obj = cn.Page<dc_mid_skuwarehouse_sales>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam);
return obj.AsList();
return obj.AsList();
}
else
{
var obj = cn.Query<dc_mid_skuwarehouse_sales>(sql, sqlparam, null, true, 10 * 60).AsList();
return obj;
}
}
}
......@@ -962,7 +973,7 @@ namespace Bailun.DC.Services
}
var sqlparam = new DynamicParameters();
var sql = "select sum(stock_count) stock_count,sum(stock_amount) stock_amount,sum(aliexpress_salecount) aliexpress_salecount,sum(aliexpress_saleamount) aliexpress_saleamount,sum(amazon_salecount) amazon_salecount, sum(amazon_saleamount) amazon_saleamount,sum(fba_salecount) fba_salecount,sum(fba_saleamount) fba_saleamount,sum(ebay_salecount) ebay_salecount,sum(ebay_saleamount) ebay_saleamount,sum(amazon2B_salecount) amazon2B_salecount,sum(amazon2B_saleamount) amazon2B_saleamount,sum(jollychic_salecount) jollychic_salecount,sum(jollychic_saleamount) jollychic_saleamount, sum(joom_salecount) joom_salecount,sum(joom_saleamount) joom_saleamount,sum(marketing_salecount) marketing_salecount,sum(marketing_saleamount) marketing_saleamount,sum(mymall_salecount) mymall_salecount,sum(mymall_saleamount) mymall_saleamount,sum(opensky_salecount) opensky_salecount,sum(opensky_saleamount) opensky_saleamount,sum(priceminister_salecount) priceminister_salecount,sum(priceminister_saleamount) priceminister_saleamount,sum(qoo10_salecount) qoo10_salecount,sum(qoo10_saleamount) qoo10_saleamount,sum(shopee_salecount) shopee_salecount,sum(shopee_saleamount) shopee_saleamount,sum(shopify_salecount) shopify_salecount,sum(shopify_saleamount) shopify_saleamount,sum(walmart_salecount) walmart_salecount,sum(walmart_saleamount) walmart_saleamount,sum(wish_salecount) wish_salecount,sum(wish_saleamount) wish_saleamount,sum(salecount) salecount from dc_mid_skuwarehouse_sales where id>0 ";
var sql = "select sum(stock_count) stock_count,sum(stock_amount) stock_amount,sum(aliexpress_salecount) aliexpress_salecount,sum(aliexpress_saleamount) aliexpress_saleamount,sum(amazon_salecount) amazon_salecount, sum(amazon_saleamount) amazon_saleamount,sum(fba_salecount) fba_salecount,sum(fba_saleamount) fba_saleamount,sum(ebay_salecount) ebay_salecount,sum(ebay_saleamount) ebay_saleamount,sum(amazon2B_salecount) amazon2B_salecount,sum(amazon2B_saleamount) amazon2B_saleamount,sum(jollychic_salecount) jollychic_salecount,sum(jollychic_saleamount) jollychic_saleamount, sum(joom_salecount) joom_salecount,sum(joom_saleamount) joom_saleamount,sum(marketing_salecount) marketing_salecount,sum(marketing_saleamount) marketing_saleamount,sum(mymall_salecount) mymall_salecount,sum(mymall_saleamount) mymall_saleamount,sum(opensky_salecount) opensky_salecount,sum(opensky_saleamount) opensky_saleamount,sum(priceminister_salecount) priceminister_salecount,sum(priceminister_saleamount) priceminister_saleamount,sum(qoo10_salecount) qoo10_salecount,sum(qoo10_saleamount) qoo10_saleamount,sum(shopee_salecount) shopee_salecount,sum(shopee_saleamount) shopee_saleamount,sum(shopify_salecount) shopify_salecount,sum(shopify_saleamount) shopify_saleamount,sum(walmart_salecount) walmart_salecount,sum(walmart_saleamount) walmart_saleamount,sum(wish_salecount) wish_salecount,sum(wish_saleamount) wish_saleamount,sum(salecount) salecount from dc_mid_skuwarehouse_sales where 1=1 ";
if (!string.IsNullOrEmpty(warehousecode))
{
......
......@@ -537,6 +537,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
ViewBag.start = start.HasValue ? start.Value.ToString("yyyy-MM-dd") : "";
ViewBag.end = end.HasValue ? end.Value.ToString("yyyy-MM-dd") : "";
ViewBag.listWarehouse = new Services.WareHouseServices().List("", null).OrderBy(a => a.warehouse_name).ToList();
return View();
}
......@@ -660,6 +663,67 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}
/// <summary>
/// 导出数据仓销量分析报表
/// </summary>
/// <param name="warehousecode"></param>
/// <param name="startcount"></param>
/// <param name="endcount"></param>
/// <param name="devstart"></param>
/// <param name="devend"></param>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="bailun_sku"></param>
/// <returns></returns>
public ActionResult ExportSkuWarehouseSale(string warehousecode, int? startcount, int? endcount, DateTime? devstart, DateTime? devend, DateTime? start, DateTime? end, string bailun_sku)
{
var total = 0;
var services = new Services.InventoryServices();
var obj = services.ListSkuWarehouseSales(new Models.BtTableParameter { offset = 0,limit=0 }, warehousecode, startcount, endcount, devstart, devend, start, end, bailun_sku, ref total);
var colNames = new List<string>() { "仓库名称","Sku","库存数量","库存金额", "速卖通销量"
,"速卖通销售额","亚马逊销量","亚马逊销售额","FBA销量","FBA销售额"
,"Ebay销量","Ebay销售额","Wish销量","Wish销售额"
,"亚马逊2B销量","亚马逊2B销售额","jollychic销量","jollychic销售额","Joom销量"
,"Joom销售额","Marketing销量","Marketing销售额","mymall销量","mymall销售额"
,"opensku销量","opensky销售额","priceminister销量","priceminister销售额"
,"qoo10销量","qoo10销售额","shopee销量","shopee销售额","shopify销量"
,"shopify销售额","walmart销量","walmart销售额","总销量"
};
var list = new List<string>();
foreach (var item in obj)
{
var str = item.warehouse_name + "|" + item.bailun_sku + "|" + item.stock_count + "|" + item.stock_amount + "|" + (item.aliexpress_salecount ?? 0) + "|" +
(item.aliexpress_saleamount ?? 0) + "|" + (item.amazon_salecount ?? 0) + "|" + (item.amazon_saleamount ?? 0) + "|" + (item.fba_salecount ?? 0) + "|" + (item.fba_saleamount ?? 0) + "|" +
(item.ebay_salecount ?? 0) + "|" + (item.ebay_saleamount ?? 0) + "|" + (item.wish_salecount ?? 0) + "|" + (item.wish_saleamount ?? 0) + "|" +
(item.amazon2B_salecount ?? 0) + "|" + (item.amazon2B_saleamount ?? 0) + "|" + (item.jollychic_salecount ?? 0) + "|" + (item.jollychic_saleamount ?? 0) + "|" + (item.joom_salecount ?? 0) + "|" +
(item.joom_saleamount ?? 0) + "|" + (item.marketing_salecount ?? 0) + "|" + (item.marketing_saleamount ?? 0) + "|" + (item.mymall_salecount ?? 0) + "|" + (item.mymall_saleamount ?? 0) + "|" +
(item.opensky_salecount ?? 0) + "|" + (item.opensky_saleamount ?? 0) + "|" + (item.priceminister_salecount ?? 0) + "|" + (item.priceminister_saleamount ?? 0) + "|" +
(item.qoo10_salecount ?? 0) + "|" + (item.qoo10_saleamount ?? 0) + "|" + (item.shopee_salecount ?? 0) + "|" + (item.shopee_saleamount ?? 0) + "|" + (item.shopify_salecount ?? 0) + "|" +
(item.shopify_saleamount ?? 0) + "|" + (item.walmart_salecount ?? 0) + "|" + (item.walmart_saleamount ?? 0) + "|" + (item.salecount);
list.Add(str);
}
var guid = Guid.NewGuid().ToString();
var filename = "数据仓销量分析报表 " + DateTime.Now.ToString("yyyyMMddHHmmss");
var filepath = _hostingEnvironment.WebRootPath + "\\Files\\Report\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
ToCSV(list, colNames, guid, filepath);
var ms = new System.IO.MemoryStream();
using (var f = new System.IO.FileStream(filepath + guid + ".csv", System.IO.FileMode.Open))
{
f.CopyTo(ms);
}
ms.Position = 0;
return File(ms, "text/csv", filename + ".csv");
}
#endregion
#region 进销存报表
......
......@@ -9,7 +9,7 @@
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<input type="hidden" id="warehousecode" name="warehousecode" value="@ViewBag.warehousecode" />
<div class="form-group">
<label>统计日期</label>
<input id="start" name="start" class="form-control" value="@(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"))" placeholder="请选择统计开始日期" style="width:110px" />-
......@@ -22,22 +22,30 @@
</div>
<div class="form-group">
<label>销量</label>
<input id="startcount" name="startcount" class="form-control" placeholder="sku销量开始" value="@ViewBag.startcount" />-
<input id="endcount" name="endcount" class="form-control" placeholder="sku销量结束" value="@ViewBag.endcount" />
<input id="startcount" name="startcount" class="form-control" placeholder="销量开始" value="@ViewBag.startcount" style="width:90px;" />-
<input id="endcount" name="endcount" class="form-control" placeholder="销量结束" value="@ViewBag.endcount" style="width:90px;" />
</div>
<div class="form-group">
<label>Sku编码</label>
<input id="bailun_sku" name="bailun_sku" class="form-control" placeholder="Sku编码" />
<input id="bailun_sku" name="bailun_sku" class="form-control" placeholder="Sku编码" style="width:110px;" />
</div>
<div class="form-group">
<label>仓库</label>
<select id="warehouse_code" name="warehouse_code" class="form-control">
<select id="warehousecode" name="warehousecode" class="form-control" style="width:160px;">
<option value="">请选择仓库</option>
@if (ViewBag.listWarehouse.Count > 0)
{
foreach (var item in ViewBag.listWarehouse)
{
<option value="@item.warehouse_code" @(ViewBag.warehousecode==item.warehouse_code?"selected":"")>@item.warehouse_name</option>
}
}
</select>
</div>
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-warning" onclick="exportxls()">导出</button>
</div>
</div>
</form>
......@@ -76,7 +84,7 @@
function list() {
var columns = [
{
field: 'bailun_sku', title: 'Sku', width: '110', sortable: false, iscount: false
field: 'bailun_sku', title: 'Sku', width: '130', sortable: false, iscount: false
},
{
field: 'bailun_sku_name', title: 'sku名称', width: '180', sortable: false, iscount: false, formatter: function (idx, data) {
......@@ -149,6 +157,12 @@
tb.bootstrapTable('refresh', { url: url });
}
}
function exportxls() {
if (confirm("确定要导出明细吗?")) {
window.open('@Url.Content("~/Reports/Inventory/ExportSkuWarehouseSale?")' + $("#toolbar").serialize())
}
}
</script>
......
......@@ -46,6 +46,7 @@
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-warning" onclick="exportxls()">导出</button>
</div>
</div>
</form>
......@@ -192,7 +193,11 @@
layer_show(day + ' ' + warehousename + ' 前两个月的库存分析', '@Url.Content("~/Reports/Warehouse/WHRedundancyChart?warehousecode=")' + warehousecode + '&day=' + day + '&warehousename=' + warehousename + '&col=' + col + '&colname=' + coltitle, '95%', '95%');
}
function exportxls() {
if (confirm("确定要导出明细吗?")) {
window.open('@Url.Content("~/Reports/Inventory/ExportSkuWarehouseSale?")' + $("#toolbar").serialize())
}
}
</script>
......
......@@ -77,7 +77,7 @@ namespace Bailun.DC.Web.Controllers
public ActionResult Main()
{
#if DEBUG
var cookie = "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdhZDA5MjQ5ZDk0ZDgxN2VhNmI5ZThhMTc1MzlmNmY3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTg0OTQxMTEsImV4cCI6MTU5ODUzMDExMSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAxIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9yZXNvdXJjZXMiLCJiYWlsdW5BcGkiXSwiY2xpZW50X2lkIjoiYmFpbHVuQ2xpZW50Iiwic3ViIjoi5YWz5oyv5bGxIiwiYXV0aF90aW1lIjoxNTk4NDk0MTExLCJpZHAiOiJsb2NhbCIsIlVzZXJJZCI6IjIzNDYiLCJzdWNlc3NzIjoidHJ1ZSIsIkNvbXBhbnkiOiJ7XCJJZFwiOjEsXCJDb21wYW55Q29kZVwiOlwiYmFpbHVuXCIsXCJDb21wYW55TmFtZVwiOlwi5bm_5bee55m-5Lym5L6b5bqU6ZO-5pyJ6ZmQ5YWs5Y-4XCJ9IiwiQWxsQ29tcGFueSI6IkZhbHNlIiwiVXNlckNvZGVOZXciOiJCTDExNjkiLCJVc2VyQ29kZSI6IkJMMTE3MCIsIk9hVXNlcklkIjoiMjM0NiIsIkRlcGFydG1lbnQiOiJ7XCJEZXBhcnRtZW50SWRcIjoyNTgsXCJOYW1lXCI6XCLmlbDmja7kuK3lv4NcIixcIkNvZGVcIjpcIlwifSIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJiYWlsdW5BcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.YsuOwKgtrE4KcYYw_SHSuI02Z77kRhg4FUn79Gtk_yHoPSXTh1fN9-B9HbmOnfzwZvQw0loxOdhS1jdk4SBmX9fv_3apmpT7hmfMDbbnzd055STadrzCTFmBw_obOsd7a1Cye8VAJJ7GJLJlzUv8eXO431692oJ9ofhJM8Z8hG_B0S-pusCQqsmpZhRNAeVki3fTG0XASYR5lTF59J_R65IBo3Oi-ZJFO84wVC8b4GFyGe6iYwy0dgIQCFDK3X2MhuqBsyhBl1fLY-8XcXHtYuoQjDz2a85SOA_FZ6iq63XWlf_OicUcXOTk94mMolpDHm2SBxO87nAHmjv40OGc7Q";
var cookie = "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdhZDA5MjQ5ZDk0ZDgxN2VhNmI5ZThhMTc1MzlmNmY3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTg1OTU0MDQsImV4cCI6MTU5ODYzMTQwNCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAxIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9yZXNvdXJjZXMiLCJiYWlsdW5BcGkiXSwiY2xpZW50X2lkIjoiYmFpbHVuQ2xpZW50Iiwic3ViIjoi5YWz5oyv5bGxIiwiYXV0aF90aW1lIjoxNTk4NTk1NDA0LCJpZHAiOiJsb2NhbCIsIlVzZXJJZCI6IjIzNDYiLCJzdWNlc3NzIjoidHJ1ZSIsIkNvbXBhbnkiOiJ7XCJJZFwiOjEsXCJDb21wYW55Q29kZVwiOlwiYmFpbHVuXCIsXCJDb21wYW55TmFtZVwiOlwi5bm_5bee55m-5Lym5L6b5bqU6ZO-5pyJ6ZmQ5YWs5Y-4XCJ9IiwiQWxsQ29tcGFueSI6IkZhbHNlIiwiVXNlckNvZGVOZXciOiJCTDExNjkiLCJVc2VyQ29kZSI6IkJMMTE3MCIsIk9hVXNlcklkIjoiMjM0NiIsIkRlcGFydG1lbnQiOiJ7XCJEZXBhcnRtZW50SWRcIjoyNTgsXCJOYW1lXCI6XCLmlbDmja7kuK3lv4NcIixcIkNvZGVcIjpcIlwifSIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJiYWlsdW5BcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.O_PgJ0pZWm-sABViFgt9gOKvjbVLs-4RUPqpICnorry2oYhtMt8eg7Z9KpVzhyKZ166Y0_ozsPChCMMNXQSQ35Mlt9za1NPfGP22htCpFfo6-B03sv5btpai63vEnv94QDdVfvjSlwdA27KIlKmlrlkiyrJr6FrLEPmkmi0y7QlCeC6bo4xq0wCpi5_5Mi3uLijnbnjIdnvqh8qQiIKD80tg8tZAy_gZTXthFR7fP16zYlLwqtNnfmyAY1iINVGYsOJhgU3ggmixAS6ywcPwC_yBcuoxC4zb4Zp4hxLdS5_niy9LRPdAqzErHTpsgtEtQaIlcoVju4Qwn9f6y8sOyg";
#else
//var user = Common.HttpHelper.NetHelper.Request("http://sso.bailuntec.com/GetUserResource");
var cookie = HttpContext.Request.Cookies["BailunToken"];
......
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