Commit 087af717 by guanzhenshan

1、更新数据仓服务和数据仓报表取数;

2、数据仓销售报表分析的库存改为实时库存+占用库存
parent cf8741cd
......@@ -183,5 +183,10 @@ namespace Bailun.DC.Models
/// 未发货数
/// </summary>
public int? quantity_unshipped { get; set; }
/// <summary>
/// sku 品牌
/// </summary>
public string skubrand { get; set; }
}
}
......@@ -62,7 +62,7 @@ namespace Bailun.DC.SaveWHSalesService
var strlimit = (((page - 1) * pagesize) + "," + pagesize);
var sql = $@"select t1.bailun_sku,t1.sku_title_cn 'bailun_sku_name',t1.warehouse_code,t3.warehouse_name,t3.hq_type 'warehouse_type',t1.usable_stock 'stock_count',t1.usable_stock*t1.unit_price 'stock_amount',t1.create_time 'sku_developtime',
t4.amount_sales 'aliexpress_saleamount',t4.sales_count 'aliexpress_salecount',t5.amount_sales 'amazon_saleamount',t5.sales_count 'amazon_salecount',t6.amount_sales 'fba_saleamount',t6.sales_count 'fba_salecount',t7.amount_sales 'ebay_saleamount',t7.sales_count 'ebay_salecount',t8.amount_sales 'amazon2B_saleamount',t8.sales_count 'amazon2B_salecount',t9.amount_sales 'jollychic_saleamount',t9.sales_count 'jollychic_salecount',t10.amount_sales 'joom_saleamount',t10.sales_count 'joom_salecount',t11.amount_sales 'marketing_saleamount',t11.sales_count 'marketing_salecount',t12.amount_sales 'mymall_saleamount',t12.sales_count 'mymall_salecount',t13.amount_sales 'opensky_saleamount',t13.sales_count 'opensky_salecount',t14.amount_sales 'priceminister_saleamount',t14.sales_count 'priceminister_salecount',t15.amount_sales 'qoo10_saleamount',t15.sales_count 'qoo10_salecount',t16.amount_sales 'shopee_saleamount',t16.sales_count 'shopee_salecount',t17.amount_sales 'shopify_saleamount',t17.sales_count 'shopify_salecount',t18.amount_sales 'walmart_saleamount',t18.sales_count 'walmart_salecount',t19.amount_sales 'wish_saleamount',t19.sales_count 'wish_salecount'
from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.sku_title_cn,t02.unit_price,t02.product_code,t02.bailun_category_id,t02.bailun_category_name,t02.create_time from dc_base_stock t01
from (select t01.bailun_sku,t01.warehouse_code,(t01.usable_stock+t01.occupy_stock) as usable_stock,t02.sku_title_cn,t02.unit_price,t02.product_code,t02.bailun_category_id,t02.bailun_category_name,t02.create_time from dc_base_stock t01
join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1
limit {strlimit}) t1
join dc_base_warehouse t3 on t1.warehouse_code=t3.warehouse_code
......
......@@ -311,5 +311,26 @@ join dc_base_sku t2 on t1.bailuncategoryid = t2.bailun_category_id and t2.bailun
}
/// <summary>
/// 获取SKU的所有品牌列表
/// </summary>
/// <returns></returns>
public List<string> ListBrand()
{
var sql = "select brand from dc_base_sku group by brand";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
return cn.Query<string>(sql).ToList();
}
}
}
}
......@@ -224,12 +224,17 @@ namespace Bailun.DC.Services
/// <param name="groupname"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<dc_datawarehouse> List2(BtTableParameter parameter, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, string skucategoryids, string groupname, ref int total)
public List<dc_datawarehouse> List2(BtTableParameter parameter, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, string skucategoryids, string groupname,string skubrand, ref int total)
{
var sqlparams = new DynamicParameters();
var sql = "select t1.* from dc_datawarehouse t1 ";
//var sql = "select t1.* from dc_datawarehouse t1 ";
sql += " where 1=1 ";
var sql = $@"select t1.id,t1.groupname,t1.warehousetype,t1.warehousename,t1.sku,t1.categoryname,t1.skuname,t1.monitorstatus,t1.clearancestatus,t1.tortstatus,t1.str_skutag,t1.buyprice,(t2.usable_stock+t2.occupy_stock) as usable_stock,(t2.usable_stock+t2.occupy_stock)*t1.buyprice as amount_stock,t1.quantity_purchase,t1.purchase_amount,t1.quantity_transfer,t1.amount_transit,t1.quantity_unshipped,t1.quantity_out_stock,t1.oneday_total_sales,t1.sevenday_average_sales,t1.fourteenday_average_sales,t1.thirtyday_average_sales,t1.amount_sevendaysale,t1.skubrand
from
dc_datawarehouse t1
join dc_base_stock t2 on t1.sku=t2.bailun_sku and t1.warehouse_code=t2.warehouse_code ";
sql += " where t1.id>0 ";
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
......@@ -302,12 +307,12 @@ namespace Bailun.DC.Services
}
if (storestart.HasValue && storestart.Value > 0)
{
sql += " and t1.usable_stock>=@stockstart";
sql += " and (t2.usable_stock+t2.occupy_stock)>=@stockstart";
sqlparams.Add("stockstart", storestart.Value);
}
if (storeend.HasValue && storeend.Value > 0)
{
sql += " and t1.usable_stock<@stockend";
sql += " and (t2.usable_stock+t2.occupy_stock)<@stockend";
sqlparams.Add("stockend", storeend.Value);
}
if (skucategory.HasValue)
......@@ -324,9 +329,28 @@ namespace Bailun.DC.Services
sqlparams.Add("groupname", groupname);
}
if (!string.IsNullOrEmpty(skubrand))
{
sql += " and t1.skubrand=@skubrand";
sqlparams.Add("skubrand", skubrand);
}
if (!string.IsNullOrEmpty(parameter.sort))
{
sql += " order by t1." + parameter.sort + " " + parameter.order;
if (parameter.sort == "usable_stock")
{
sql += " order by (t2.usable_stock+t2.occupy_stock) " + parameter.order;
}
else
{
sql += " order by t1." + parameter.sort + " " + parameter.order;
}
}
else
{
sql += " order by (t2.usable_stock+t2.occupy_stock) desc ";
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
......@@ -336,9 +360,20 @@ namespace Bailun.DC.Services
cn.Open();
}
var obj = cn.Page<dc_datawarehouse>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparams, "", 3 * 60);
if (parameter.limit == 0)
{
var obj = cn.Query<dc_datawarehouse>(sql, sqlparams,null,true,10 * 60);
return obj.AsList();
return obj.AsList();
}
else
{
var obj = cn.Page<dc_datawarehouse>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparams, "", 3 * 60);
return obj.AsList();
}
}
}
......@@ -359,13 +394,18 @@ namespace Bailun.DC.Services
/// <param name="skucategory"></param>
/// <param name="searchkey"></param>
/// <returns></returns>
public dc_sku_monitor ListCount(string warehousetype,int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory,string skucategoryids, string searchkey,string groupname)
public dc_sku_monitor ListCount(string warehousetype,int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory,string skucategoryids, string searchkey,string groupname,string skubrand)
{
var sqlparams = new DynamicParameters();
var sql = @"select sum(t1.usable_stock) usable_stock,sum(t1.amount_stock) amount_stock,sum(t1.quantity_purchase) quantity_purchase,sum(t1.purchase_amount) as purchase_amount,sum(t1.quantity_transfer) quantity_transfer,sum(t1.amount_transit) amount_transit,sum(t1.quantity_out_stock) quantity_out_stock,sum(t1.oneday_total_sales) oneday_total_sales,sum(t1.amount_onedaysale) as amount_onedaysale,sum(t1.sevenday_total_sales) sevenday_total_sales,sum(t1.amount_sevendaysale) amount_sevendaysale,sum(t1.fourteenday_total_sales) fourteenday_total_sales,sum(t1.thirtyday_total_sales) thirtyday_total_sales,sum(t1.sevenday_average_sales) sevenday_average_sales,sum(t1.fourteenday_average_sales) fourteenday_average_sales,sum(t1.thirtyday_average_sales) thirtyday_average_sales from dc_datawarehouse t1 ";
//var sql = @"select sum(t1.usable_stock) usable_stock,sum(t1.amount_stock) amount_stock,sum(t1.quantity_purchase) quantity_purchase,sum(t1.purchase_amount) as purchase_amount,sum(t1.quantity_transfer) quantity_transfer,sum(t1.amount_transit) amount_transit,sum(t1.quantity_out_stock) quantity_out_stock,sum(t1.oneday_total_sales) oneday_total_sales,sum(t1.amount_onedaysale) as amount_onedaysale,sum(t1.sevenday_total_sales) sevenday_total_sales,sum(t1.amount_sevendaysale) amount_sevendaysale,sum(t1.fourteenday_total_sales) fourteenday_total_sales,sum(t1.thirtyday_total_sales) thirtyday_total_sales,sum(t1.sevenday_average_sales) sevenday_average_sales,sum(t1.fourteenday_average_sales) fourteenday_average_sales,sum(t1.thirtyday_average_sales) thirtyday_average_sales from dc_datawarehouse t1 ";
var sql = $@"select sum(t2.usable_stock+t2.occupy_stock) as usable_stock,sum((t2.usable_stock+t2.occupy_stock)*t1.buyprice) as amount_stock,sum(t1.quantity_purchase) quantity_purchase,sum(t1.purchase_amount) as purchase_amount,sum(t1.quantity_transfer) quantity_transfer,sum(t1.amount_transit) amount_transit,sum(t1.quantity_out_stock) quantity_out_stock,sum(t1.oneday_total_sales) oneday_total_sales,sum(t1.amount_onedaysale) as amount_onedaysale,sum(t1.sevenday_total_sales) sevenday_total_sales,sum(t1.amount_sevendaysale) amount_sevendaysale,sum(t1.fourteenday_total_sales) fourteenday_total_sales,sum(t1.thirtyday_total_sales) thirtyday_total_sales,sum(t1.sevenday_average_sales) sevenday_average_sales,sum(t1.fourteenday_average_sales) fourteenday_average_sales,sum(t1.thirtyday_average_sales) thirtyday_average_sales
from
dc_datawarehouse t1
join dc_base_stock t2 on t1.sku=t2.bailun_sku and t1.warehouse_code=t2.warehouse_code ";
sql += " where 1=1 ";
sql += " where t1.id>0 ";
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
......@@ -459,6 +499,12 @@ namespace Bailun.DC.Services
sqlparams.Add("groupname", groupname);
}
if (!string.IsNullOrEmpty(skubrand))
{
sql += " and t1.skubrand=@skubrand";
sqlparams.Add("skubrand", skubrand);
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
......
......@@ -62,25 +62,32 @@ namespace Bailun.DC.SkuDataWareHouse
while (page == 1 || (resultcount == pagesize && resultcount != 0))
{
var strlimit = (((page - 1) * pagesize) + "," + pagesize);
var sql = $@"select t2.hq_type as warehousetype,t2.warehouse_name as warehousename,t2.warehouse_code,t1.bailun_sku as sku,t1.category_id,t1.category_name,t1.sku_title_cn as skuname,(case when t4.status=1 then 0 else 1 end) monitorstatus,t5.clearancestatus,t5.tortstatus,t5.str_skutag,t1.unit_price as buyprice,t1.usable_stock,(t1.usable_stock*t1.unit_price) amount_stock,t6.quantity_purchase,(t6.quantity_purchase*t1.unit_price) as purchase_amount,t6.quantity_transfer,(t6.quantity_transfer*t1.unit_price) amount_transit,t6.quantity_out_stock,t7.oneday_total_sales,(t7.oneday_total_sales*t1.unit_price) as amount_onedaysale,t7.sevenday_total_sales,(t7.sevenday_total_sales*t1.unit_price) amount_sevendaysale,t7.fourteenday_total_sales,t7.thirtyday_total_sales,t7.sevenday_average_sales,t7.fourteenday_average_sales,t7.thirtyday_average_sales,t1.create_time as skucreatetime,t2.area_id,t2.area_name
from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.unit_price,t02.create_time,t02.category_simple_id as category_id,t02.category_simple_name as category_name,t02.sku_title_cn from dc_base_stock t01
var sql = $@"select t2.hq_type as warehousetype,t2.warehouse_name as warehousename,t2.warehouse_code,t1.bailun_sku as sku,t1.category_id,t1.categoryname,t1.sku_title_cn as skuname,(case when t4.status=1 then 0 else 1 end) monitorstatus,t5.clearancestatus,(case when t8.id is not null then 1 else 0 end) as tortstatus,t5.str_skutag,t1.unit_price as buyprice,t1.usable_stock,(t1.usable_stock*t1.unit_price) amount_stock,t6.quantity_purchase,(t6.quantity_purchase*t1.unit_price) as purchase_amount,t6.quantity_transfer,(t6.quantity_transfer*t1.unit_price) amount_transit,t6.quantity_out_stock,t7.oneday_total_sales,(t7.oneday_total_sales*t1.unit_price) as amount_onedaysale,t7.sevenday_total_sales,(t7.sevenday_total_sales*t1.unit_price) amount_sevendaysale,t7.fourteenday_total_sales,t7.thirtyday_total_sales,t7.sevenday_average_sales,t7.fourteenday_average_sales,t7.thirtyday_average_sales,t1.create_time as skucreatetime,t2.area_id,t2.area_name,t1.brand as skubrand
from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.unit_price,t02.create_time,t02.bailun_category_id as category_id,t02.bailun_category_name as categoryname,t02.sku_title_cn,t02.brand from dc_base_stock t01
join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1
limit {strlimit}) t1
left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code
left join dc_auto_config_sku_warehouse t4 on t4.bailun_sku=t1.bailun_sku and t4.warehouse_code=t1.warehouse_code
left join dc_sku_monitor t5 on t5.sku=t1.bailun_sku and t5.warehousecode=t1.warehouse_code
left join dc_mid_transit t6 on t1.bailun_sku=t6.bailun_sku and t1.warehouse_code=t6.warehouse_code
left join dc_daily_sales t7 on t7.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY) and t1.bailun_sku=t7.bailun_sku and t7.warehouse_code=t1.warehouse_code";
left join dc_daily_sales t7 on t7.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY) and t1.bailun_sku=t7.bailun_sku and t7.warehouse_code=t1.warehouse_code
left join dc_base_tort t8 on t1.bailun_sku=t8.bailun_sku
";
var liststock = cn.Query<Models.dc_datawarehouse>(sql, null, null, true, 30 * 60);
resultcount = liststock.AsList().Count;
var str = @"insert dc_datawarehouse (warehousetype,area_id,area_name,warehousename,warehouse_code,sku,category_id,categoryname,skuname,monitorstatus,clearancestatus,tortstatus,str_skutag,buyprice,usable_stock,amount_stock,quantity_purchase,purchase_amount,quantity_transfer,amount_transit,quantity_out_stock,oneday_total_sales,amount_onedaysale,sevenday_total_sales,amount_sevendaysale,fourteenday_total_sales,thirtyday_total_sales,sevenday_average_sales,fourteenday_average_sales,thirtyday_average_sales,skucreatetime,lastupdatetime) values ";
var str = @"insert dc_datawarehouse (warehousetype,area_id,area_name,warehousename,warehouse_code,sku,category_id,categoryname,skuname,monitorstatus,clearancestatus,tortstatus,str_skutag,buyprice,usable_stock,amount_stock,quantity_purchase,purchase_amount,quantity_transfer,amount_transit,quantity_out_stock,oneday_total_sales,amount_onedaysale,sevenday_total_sales,amount_sevendaysale,fourteenday_total_sales,thirtyday_total_sales,sevenday_average_sales,fourteenday_average_sales,thirtyday_average_sales,skucreatetime,lastupdatetime,skubrand) values ";
foreach (var item in liststock)
{
str += $@"('{item.warehousetype}','{item.area_id??0}','{item.area_name}','{item.warehousename}','{item.warehouse_code}','{item.sku}',{item.category_id??0},'{(!string.IsNullOrEmpty(item.categoryname) ? item.categoryname.Replace("'", "") : "")}','{item.skuname.Replace("'", "")}',{item.monitorstatus??1},{item.clearancestatus??0},{item.tortstatus??0},'{item.str_skutag}',{item.buyprice??0},{item.usable_stock??0},{item.amount_stock??0},{item.quantity_purchase??0},{item.purchase_amount??0},{item.quantity_transfer??0},{item.amount_transit??0},{item.quantity_out_stock??0},{item.oneday_total_sales??0},{item.amount_onedaysale??0},{item.sevenday_total_sales??0},{item.amount_sevendaysale??0},{item.fourteenday_total_sales??0},{item.thirtyday_total_sales??0},{item.sevenday_average_sales??0},{item.fourteenday_average_sales??0},{item.thirtyday_average_sales??0},'{(item.skucreatetime.HasValue?item.skucreatetime.Value.ToString("yyyy-MM-dd HH:mm:ss"):"1970-01-01")}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),";
if (!string.IsNullOrEmpty(item.categoryname))
{
item.categoryname = item.categoryname.Replace("'", "");
}
str += $@"('{item.warehousetype}','{item.area_id??0}','{item.area_name}','{item.warehousename}','{item.warehouse_code}','{item.sku}',{item.category_id??0},'{(!string.IsNullOrEmpty(item.categoryname) ? item.categoryname : "")}','{item.skuname.Replace("'", "")}',{item.monitorstatus??1},{item.clearancestatus??0},{item.tortstatus??0},'{item.str_skutag}',{item.buyprice??0},{item.usable_stock??0},{item.amount_stock??0},{item.quantity_purchase??0},{item.purchase_amount??0},{item.quantity_transfer??0},{item.amount_transit??0},{item.quantity_out_stock??0},{item.oneday_total_sales??0},{item.amount_onedaysale??0},{item.sevenday_total_sales??0},{item.amount_sevendaysale??0},{item.fourteenday_total_sales??0},{item.thirtyday_total_sales??0},{item.sevenday_average_sales??0},{item.fourteenday_average_sales??0},{item.thirtyday_average_sales??0},'{(item.skucreatetime.HasValue?item.skucreatetime.Value.ToString("yyyy-MM-dd HH:mm:ss"):"1970-01-01")}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{item.skubrand.Replace("'","''")}'),";
}
if (resultcount > 0)
{
......
......@@ -3,14 +3,22 @@ using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace Bailun.DC.Web.Areas.Reports.Controllers
{
[Area("Reports")]
public class InventoryController : Controller
public class InventoryController : Base.BaseController
{
private readonly IHostingEnvironment _hostingEnvironment;
public InventoryController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
/// <summary>
/// 数据仓页面
/// </summary>
......@@ -37,14 +45,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="skucategory"></param>
/// <param name="searchkey"></param>
/// <returns></returns>
public string DataWareHouseJson(Models.BtTableParameter request, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey,string skucategoryids,string groupname)
public string DataWareHouseJson(Models.BtTableParameter request, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey,string skucategoryids,string groupname,string skubrand)
{
var service = new Services.SkuMonitorServices();
var total = 0;
//var obj = service.List(request, warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids,groupname, ref total);
var obj = service.List2(request, warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids, groupname, ref total);
var obj = service.List2(request, warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids, groupname, skubrand,ref total);
var countM = new Models.dc_sku_monitor();//service.ListCount(warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey,groupname);
......@@ -82,7 +90,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
skucreatetime = p.skucreatetime.HasValue?p.skucreatetime.Value.ToString("yyyy-MM-dd HH:mm"):"",
amount_sevendaysale = (p.amount_sevendaysale??0).ToString("N2"),
groupname = string.IsNullOrEmpty(p.groupname)?"":p.groupname.Trim(),
quantity_unshipped = p.quantity_unshipped??0
quantity_unshipped = p.quantity_unshipped??0,
p.skubrand
});
return JsonConvert.SerializeObject(new { total = total, rows = list,count_row = new {
......@@ -109,10 +119,10 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}
[HttpPost]
public JsonResult DataWareHouseCountJson(Models.BtTableParameter request, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, string skucategoryids, string groupname)
public JsonResult DataWareHouseCountJson(Models.BtTableParameter request, string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, string skucategoryids, string groupname,string skubrand)
{
var service = new Services.SkuMonitorServices();
var countM = service.ListCount(warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey, groupname);
var countM = service.ListCount(warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey, groupname,skubrand);
countM.skuname = "总计:";
......@@ -141,6 +151,51 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
});
}
public ActionResult ExportDataWarehouse(string warehousetype, int? areaid, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, string skucategoryids, string groupname, string skubrand)
{
var service = new Services.SkuMonitorServices();
var total = 0;
//var obj = service.List(request, warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids,groupname, ref total);
var obj = service.List2(new Models.BtTableParameter { offset = 0, limit = 0 }, warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids, groupname, skubrand, ref total);
var colNames = new List<string> { "分组名称","仓库类型", "仓库名称", "sku", "产品分类","品牌"
,"中文名称","监控状态","清货状态","侵权状态","SKU标签"
,"采购价","库存数量","库存金额","采购在途数量","采购在途金额"
,"调拨在途数量","调拨在途金额","待发货数量","缺货数量","昨日销量"
,"近七日日均销量","近十四日均销量","近三十日均销量","7天总销售额"};
var list = new List<string>();
foreach (var item in obj)
{
var str = item.groupname+"|"+item.warehousetype + "|" +item.warehousename + "|" +item.sku + "|" +item.categoryname + "|" + item.skubrand+"|"+
item.skuname + "|" +((item.monitorstatus)==1?"正在监控":"停止监控") + "|"+ ((item.clearancestatus)==1?"正在清货":"否") + "|" +((item.tortstatus)==1?"已侵权":"否") + "|" +item.str_skutag + "|" +
item.buyprice + "|" +(item.usable_stock??0) + "|" +(item.amount_stock??0) + "|" +(item.quantity_purchase??0) + "|" +(item.purchase_amount??0) + "|" +
(item.quantity_transfer??0) + "|" +(item.amount_transit??0) + "|" +(item.quantity_unshipped??0) + "|" +(item.quantity_out_stock??0) + "|" +(item.oneday_total_sales??0) + "|" +
(item.sevenday_average_sales??0) + "|" +(item.fourteenday_average_sales??0) + "|" +(item.thirtyday_average_sales??0) + "|" + (item.amount_sevendaysale??0)
;
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");
}
/// <summary>
/// Sku库存分析报表(财务)
/// </summary>
......@@ -648,4 +703,5 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
#endregion
}
}
\ No newline at end of file
}
\ No newline at end of file
......@@ -327,6 +327,33 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}
/// <summary>
/// 获取SKU的所有品牌
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuBrand()
{
try
{
var list = new Services.SkuInfoServices().ListBrand().Where(a=>!string.IsNullOrEmpty(a));
return Json(new
{
success = true,
msg = "",
list = list
});
}
catch (Exception ex)
{
return Json(new
{
success = false,
msg = ex.Message
});
}
}
}
}
\ No newline at end of file
......@@ -81,6 +81,11 @@
</select>
</div>
<div class="form-group">
<select id="skubrand" name="skubrand" class="form-control" style="width:160px">
<option value="">Sku品牌不限</option>
</select>
</div>
<div class="form-group">
<span>库存数量:</span>
<input id="storestart" name="storestart" class="form-control" type="number" placeholder="开始区间" style="width:100px" />
<span>至</span>
......@@ -88,8 +93,8 @@
</div>
<div class="form-group">
@*<select id="skucategory" name="skucategory" class="form-control" style="width:180px;">
<option value="">Sku分类不限</option>
</select>*@
<option value="">Sku分类不限</option>
</select>*@
</div>
<div class="form-group">
<input id="searchkey" name="searchkey" class="form-control" type="text" placeholder="多个sku可用英文逗号隔开" />
......@@ -99,6 +104,7 @@
<button type="button" class="btn btn-success" onclick="setGroupName();">设置分组</button>
<button id="btn_Upload" type="button" class="btn btn-upload">导入分组</button>
<a class="btn btn-info" href="~/templatefile/skugroup.xls" target="_blank">下载Sku分组模板</a>
<button type="button" class="btn btn-warning" onclick="exportxls();">导出</button>
</div>
</div>
</form>
......@@ -191,7 +197,9 @@
groupname();
//SKU品牌
listBrand();
uploadfile('btn_Upload',
'@Url.Content("~/Reports/Inventory/UploadSkuGroup")',
function(result){
......@@ -215,9 +223,9 @@
}
},
{
field: 'groupname', title: '分组名称', width: '150', formatter: function (idx, data) {
field: 'groupname', title: '分组名称', width: '100', formatter: function (idx, data) {
//var str = '<p class="mules" title="' + data.groupname + '">' + data.groupname + '</p>';
var str = '<a href="http://pro.bailuntec.com/proMgr/productMgr?groupName=' + data.groupname + '" target="_blank" >' + data.groupname + '</a>';
var str = '<a class="mules" href="http://pro.bailuntec.com/proMgr/productMgr?groupName=' + data.groupname + '" target="_blank" title="' + data.groupname+'">' + data.groupname + '</a>';
return str;
}
},
......@@ -230,13 +238,14 @@
}
},
{
field: 'category_name', title: '分类', width: '180', formatter: function (idx, data) {
field: 'category_name', title: '产品类型', width: '130', formatter: function (idx, data) {
var str = '<p class="mules" title="' + data.category_name + '">' + data.category_name + '</p>';
return str;
}
},
{ field: 'skubrand', title: '品牌', width: '100'},
{
field: 'skuname', title: '中文名称', width: '180', iscount: true, formatter: function (idx, data) {
field: 'skuname', title: '中文名称', width: '130', iscount: true, formatter: function (idx, data) {
var str = '<p class="mules" title="' + data.skuname + '">' + data.skuname + '</p>';
return str;
}
......@@ -558,6 +567,39 @@
});
}
function listBrand() {
$.submit({
url: '@Url.Content("~/Reports/Sku/ListSkuBrand")',
paramData: '',
type: 'POST',
func: function (result) {
if (result.success) {
for (var i in result.list) {
$('#skubrand').append('<option>'+result.list[i]+'</option>');
}
}
else {
alert("获取SKU品牌信息异常,"+result.msg);
}
}
})
}
function exportxls() {
if (confirm("因数据较多,需要等待时间比较长,确定要继续导出吗?")) {
var s = '';
try {
s = getChkNode();
} catch (e) {
s = '';
}
window.open('@Url.Content("~/Reports/Inventory/ExportDataWarehouse?")' + $("#toolbar").serialize() + '&skucategoryids=' + s, '_blank');
}
}
</script>
}
......@@ -77,7 +77,7 @@ namespace Bailun.DC.Web.Controllers
public ActionResult Main()
{
#if DEBUG
var cookie = "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdhZDA5MjQ5ZDk0ZDgxN2VhNmI5ZThhMTc1MzlmNmY3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTgzNDY4NTQsImV4cCI6MTU5ODM4Mjg1NCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAxIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9yZXNvdXJjZXMiLCJiYWlsdW5BcGkiXSwiY2xpZW50X2lkIjoiYmFpbHVuQ2xpZW50Iiwic3ViIjoi5YWz5oyv5bGxIiwiYXV0aF90aW1lIjoxNTk4MzQ2ODU0LCJpZHAiOiJsb2NhbCIsIlVzZXJJZCI6IjIzNDYiLCJzdWNlc3NzIjoidHJ1ZSIsIkNvbXBhbnkiOiJ7XCJJZFwiOjEsXCJDb21wYW55Q29kZVwiOlwiYmFpbHVuXCIsXCJDb21wYW55TmFtZVwiOlwi5bm_5bee55m-5Lym5L6b5bqU6ZO-5pyJ6ZmQ5YWs5Y-4XCJ9IiwiQWxsQ29tcGFueSI6IkZhbHNlIiwiVXNlckNvZGVOZXciOiJCTDExNjkiLCJVc2VyQ29kZSI6IkJMMTE3MCIsIk9hVXNlcklkIjoiMjM0NiIsIkRlcGFydG1lbnQiOiJ7XCJEZXBhcnRtZW50SWRcIjoyNTgsXCJOYW1lXCI6XCLmlbDmja7kuK3lv4NcIixcIkNvZGVcIjpcIlwifSIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJiYWlsdW5BcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.pbC6YbdlllKFQwFHOBkCQ8cxyiBU7cpcUFdr4kQvULVmrwVUZL2QNKAeysnE-kP-CyTvBFLRr3VSv4JrLCoRYgCmLu8DOf_qEJ_4RscuxWaxGUe1A6jpTOVzIxif1wlG-hGnZXx5hVQ__dBxmxU85bktdczFik3_AKhp3AEXNA_IipaFLk7VY3ZoAjMTZzFxto31pE0kIH0iZtqrZtuVtzSbOfEEAcVUlA3qt8YG7Tp1F5JDsD5_4YUumIDfsac60ZMhcSwn7sm5KmgJjg4Gm4em22Uc9tr_RFOuUr01Cx6D-UhDZGoF6Guhs6xfzv40vtCVrdSoZNV9N6LYqj7y6g";
var cookie = "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdhZDA5MjQ5ZDk0ZDgxN2VhNmI5ZThhMTc1MzlmNmY3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTg0OTQxMTEsImV4cCI6MTU5ODUzMDExMSwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo1MDAxIiwiYXVkIjpbImh0dHA6Ly9sb2NhbGhvc3Q6NTAwMS9yZXNvdXJjZXMiLCJiYWlsdW5BcGkiXSwiY2xpZW50X2lkIjoiYmFpbHVuQ2xpZW50Iiwic3ViIjoi5YWz5oyv5bGxIiwiYXV0aF90aW1lIjoxNTk4NDk0MTExLCJpZHAiOiJsb2NhbCIsIlVzZXJJZCI6IjIzNDYiLCJzdWNlc3NzIjoidHJ1ZSIsIkNvbXBhbnkiOiJ7XCJJZFwiOjEsXCJDb21wYW55Q29kZVwiOlwiYmFpbHVuXCIsXCJDb21wYW55TmFtZVwiOlwi5bm_5bee55m-5Lym5L6b5bqU6ZO-5pyJ6ZmQ5YWs5Y-4XCJ9IiwiQWxsQ29tcGFueSI6IkZhbHNlIiwiVXNlckNvZGVOZXciOiJCTDExNjkiLCJVc2VyQ29kZSI6IkJMMTE3MCIsIk9hVXNlcklkIjoiMjM0NiIsIkRlcGFydG1lbnQiOiJ7XCJEZXBhcnRtZW50SWRcIjoyNTgsXCJOYW1lXCI6XCLmlbDmja7kuK3lv4NcIixcIkNvZGVcIjpcIlwifSIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJiYWlsdW5BcGkiXSwiYW1yIjpbImN1c3RvbSJdfQ.YsuOwKgtrE4KcYYw_SHSuI02Z77kRhg4FUn79Gtk_yHoPSXTh1fN9-B9HbmOnfzwZvQw0loxOdhS1jdk4SBmX9fv_3apmpT7hmfMDbbnzd055STadrzCTFmBw_obOsd7a1Cye8VAJJ7GJLJlzUv8eXO431692oJ9ofhJM8Z8hG_B0S-pusCQqsmpZhRNAeVki3fTG0XASYR5lTF59J_R65IBo3Oi-ZJFO84wVC8b4GFyGe6iYwy0dgIQCFDK3X2MhuqBsyhBl1fLY-8XcXHtYuoQjDz2a85SOA_FZ6iq63XWlf_OicUcXOTk94mMolpDHm2SBxO87nAHmjv40OGc7Q";
#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