Commit 9c3385d0 by guanzhenshan

优化仓库冗余报告sku维度的访问速度

parent 79b937ed
......@@ -512,16 +512,16 @@ namespace Bailun.DC.Services
}
//前100冗余金额sku分析
var sql1 = "select * from dc_mid_skuwarehouse_redundancy where warehouse_code='"+warehousecode+ "' and day='"+day.ToString("yyyy-MM-dd")+ "' order by redundancy_amount desc limit 100";
var sql1 = "select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode+ "' and day='"+day.ToString("yyyy-MM-dd")+ "' order by redundancy_amount desc limit 100";
//前100冗余个数sku分析
var sql2 = "select * from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by redundancy_product_count desc limit 100";
var sql2 = "select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by redundancy_product_count desc limit 100";
//前100个数动销最快sku分析
var sql3 = "select * from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by productsale_rate desc limit 100";
var sql3 = "select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by productsale_rate desc limit 100";
//前100金额动销最快sku分析
var sql4 = "select * from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by saleamount_rate desc limit 100";
var sql4 = "select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by saleamount_rate desc limit 100";
var obj1 = cn.Query<dc_mid_skuwarehouse_redundancy>(sql1);
var obj2 = cn.Query<dc_mid_skuwarehouse_redundancy>(sql2);
......@@ -540,6 +540,58 @@ namespace Bailun.DC.Services
}
/// <summary>
/// 获取sku冗余前100的数据
/// </summary>
/// <param name="warehousecode"></param>
/// <param name="day"></param>
/// <param name="t"></param>
/// <returns></returns>
public List<dc_mid_skuwarehouse_redundancy> GetSkuRedundancyByType(string warehousecode, DateTime day, int? t)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
//前100冗余金额sku分析
var sql1 = "select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by redundancy_amount desc limit 100";
//前100冗余个数sku分析
var sql2 = "select bailun_sku,productcount,amount_total,daily_productsale_count,productsale_rate,dailysale_amount,saleamount_rate,redundancy_product_count,redundancy_product_rate,redundancy_amount,redundancy_amount_rate from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by redundancy_product_count desc limit 100";
//前100个数动销最快sku分析
var sql3 = "select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by productsale_rate desc limit 100";
//前100金额动销最快sku分析
var sql4 = "select bailun_sku,productcount,amount_total,yesterdaysale_count,yesterdaysale_amount,sale_3d_avg,sale_7d_avg,sale_14d_avg,sale_30d_avg,day_turnover_rate,week_turnover_rate,month_turnover_rate,stockout from dc_mid_skuwarehouse_redundancy where warehouse_code='" + warehousecode + "' and day='" + day.ToString("yyyy-MM-dd") + "' order by saleamount_rate desc limit 100";
var list = new List<dc_mid_skuwarehouse_redundancy>();
if (t.Value == 0)
{
list = cn.Query<dc_mid_skuwarehouse_redundancy>(sql1).AsList();
}
else if (t.Value == 1)
{
list = cn.Query<dc_mid_skuwarehouse_redundancy>(sql2).AsList();
}
else if (t.Value == 2)
{
list = cn.Query<dc_mid_skuwarehouse_redundancy>(sql3).AsList();
}
else if (t.Value == 3)
{
list = cn.Query<dc_mid_skuwarehouse_redundancy>(sql4).AsList();
}
return list;
}
}
/// <summary>
/// 获取仓库前两个月的冗余数据
/// </summary>
/// <param name="warehousecode">仓库编码</param>
......
......@@ -231,13 +231,19 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="warehousecode"></param>
/// <returns></returns>
[HttpPost]
public JsonResult SkuRedundancyJson(string warehousecode,DateTime day)
public JsonResult SkuRedundancyJson(string warehousecode,DateTime day,int? t)
{
var services = new Services.WareHouseServices();
var obj = services.GetSkuRedundancy(warehousecode,day);
return Json(obj);
if (t.HasValue)
{
var obj = services.GetSkuRedundancyByType(warehousecode, day, t);
return Json(obj);
}
else
{
var obj = services.GetSkuRedundancy(warehousecode, day);
return Json(obj);
}
}
/// <summary>
......
......@@ -7,8 +7,7 @@
<div class="row">
<div class="col-sm-12">
<div class="ibox-content m-b-sm border-bottom">
@*<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
......@@ -21,20 +20,20 @@
</div>
</div>
</form>
</div>
</div>*@
<div class="tabs-container">
<ul class="nav nav-tabs">
<li class="active">
<li class="active" onclick="list2(0)">
<a data-toggle="tab" href="#tab-1" aria-expanded="true"> 前100冗余金额sku分析</a>
</li>
<li class="">
<li class="" onclick="list2(1)">
<a data-toggle="tab" href="#tab-2" aria-expanded="false">前100冗余个数sku分析</a>
</li>
<li class="">
<li class="" onclick="list2(2)">
<a data-toggle="tab" href="#tab-3" aria-expanded="false">前100个数动销最快sku分析</a>
</li>
<li class="">
<li class="" onclick="list2(3)">
<a data-toggle="tab" href="#tab-4" aria-expanded="false">前100金额动销最快sku分析</a>
</li>
</ul>
......@@ -160,7 +159,8 @@
$(document).ready(function () {
laydate.render({ elem: '#day' });
list();
//list();
list2(0);
})
var indexload;
......@@ -176,7 +176,7 @@
$.submit({
type:'POST',
url: '@Url.Content("~/Reports/Warehouse/SkuRedundancyJson")',
paramData: 'warehousecode=@(ViewBag.warehousecode)' + '&day=' + day,
paramData: 'warehousecode=@(ViewBag.warehousecode)' + '&day=@(ViewBag.day)',
func: function (result) {
layer.close(indexload);
if (result != undefined && result != null && result.length == 4) {
......@@ -207,21 +207,6 @@
}
else if(i>1 && i<4){ //前100个数动销最快sku分析,前100金额动销最快sku分析
var shtml = '';
/*
<th>sku</th>
<th>产品个数</th>
<th>库存总金额</th>
<th>昨日销量</th>
<th>昨日销售金额</th>
<th>过去3天日均</th>
<th>过去7天日均</th>
<th>过去14天日均</th>
<th>过去30天日均</th>
<th>日周转率</th>
<th>周周转率</th>
<th>月周转率</th>
<th>缺货数</th>
*/
for (var o in obj) {
shtml += '<tr><td>' + obj[o].bailun_sku + '</td>';
shtml += '<td>' + obj[o].productcount + '</td>';
......@@ -249,6 +234,78 @@
})
}
function list2(i) {
if ($('#tb' + (parseInt(i) + 1)).html().length > 1) {
return false;
}
indexload = layer.load();
var day = $('#day').val();
if (day == '') {
layer.msg('请选择日期');
return false;
}
$.submit({
type:'POST',
url: '@Url.Content("~/Reports/Warehouse/SkuRedundancyJson")',
paramData: 'warehousecode=@(ViewBag.warehousecode)' + '&day=@(ViewBag.day)'+'&t='+i,
func: function (result) {
layer.close(indexload);
if (result != undefined && result != null) {
var obj = result;
var s = '';
if (i < 2) { //前100冗余金额sku分析,前100冗余个数sku分析模版
var shtml = '';
for (var o in obj) {
shtml += '<tr><td>' + obj[o].bailun_sku + '</td>';
shtml += '<td>' + obj[o].productcount + '</td>';
shtml += '<td>' + obj[o].amount_total + '</td>';
shtml += '<td>' + obj[o].daily_productsale_count + '</td>';
shtml += '<td>' + obj[o].productsale_rate + '</td>';
shtml += '<td>' + obj[o].dailysale_amount + '</td>';
shtml += '<td>' + obj[o].saleamount_rate + '</td>';
shtml += '<td>' + obj[o].redundancy_product_count + '</td>';
shtml += '<td>' + obj[o].redundancy_product_rate + '</td>';
shtml += '<td>' + obj[o].redundancy_amount + '</td>';
shtml += '<td>' + obj[o].redundancy_amount_rate + '</td>';
shtml += '</tr>';
}
$('#tb' + (parseInt(i) + 1)).append(shtml);
$('#t' + (parseInt(i) + 1)).trigger("destroy");
$('#t' + (parseInt(i) + 1)).tablesorter();
}
else if (i > 1 && i < 4) { //前100个数动销最快sku分析,前100金额动销最快sku分析
var shtml = '';
for (var o in obj) {
shtml += '<tr><td>' + obj[o].bailun_sku + '</td>';
shtml += '<td>' + obj[o].productcount + '</td>';
shtml += '<td>' + obj[o].amount_total + '</td>';
shtml += '<td>' + obj[o].yesterdaysale_count + '</td>';
shtml += '<td>' + obj[o].yesterdaysale_amount + '</td>';
shtml += '<td>' + obj[o].sale_3d_avg + '</td>';
shtml += '<td>' + obj[o].sale_7d_avg + '</td>';
shtml += '<td>' + obj[o].sale_14d_avg + '</td>';
shtml += '<td>' + obj[o].sale_30d_avg + '</td>';
shtml += '<td>' + obj[o].day_turnover_rate + '</td>';
shtml += '<td>' + obj[o].week_turnover_rate + '</td>';
shtml += '<td>' + obj[o].month_turnover_rate + '</td>';
shtml += '<td>' + obj[o].stockout + '</td>';
shtml += '</tr>';
}
$('#tb' + (parseInt(i) + 1)).append(shtml);
$('#t' + (parseInt(i) + 1)).trigger("destroy");
$('#t' + (parseInt(i) + 1)).tablesorter();
}
}
}
})
}
</script>
}
......@@ -206,7 +206,7 @@
function ShowSku(warehousecode,title) {
var day = $('#day').val();
layer_show(title + ' sku仓库库存分析', '@Url.Content("~/Reports/Warehouse/SkuRedundancy?warehousecode=")' + warehousecode + '&day=' + day + '&warehousename=' + title, '95%', '95%');
layer_show(day+' '+title + ' sku仓库库存分析', '@Url.Content("~/Reports/Warehouse/SkuRedundancy?warehousecode=")' + warehousecode + '&day=' + day + '&warehousename=' + title, '95%', '95%');
}
function ShowHistoryData(warehousecode, col, coltitle,warehousename) {
......
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