Commit 605c1cf9 by guanzhenshan

解决数据仓无法排序的问题,增加数据仓数据生成服务

parent d9385551
...@@ -22,7 +22,7 @@ namespace Bailun.DC.Models ...@@ -22,7 +22,7 @@ namespace Bailun.DC.Models
/// <summary> /// <summary>
/// 仓库所在国家id /// 仓库所在国家id
/// </summary> /// </summary>
public int area_id { get; set; } public int? area_id { get; set; }
/// <summary> /// <summary>
/// 仓库所在国家 /// 仓库所在国家
...@@ -47,7 +47,7 @@ namespace Bailun.DC.Models ...@@ -47,7 +47,7 @@ namespace Bailun.DC.Models
/// <summary> /// <summary>
/// 分类id /// 分类id
/// </summary> /// </summary>
public int category_id { get; set; } public int? category_id { get; set; }
/// <summary> /// <summary>
/// 分类名称 /// 分类名称
...@@ -62,17 +62,17 @@ namespace Bailun.DC.Models ...@@ -62,17 +62,17 @@ namespace Bailun.DC.Models
/// <summary> /// <summary>
/// 监控状态,1:正在监控,0:停止监控 /// 监控状态,1:正在监控,0:停止监控
/// </summary> /// </summary>
public int monitorstatus { get; set; } public int? monitorstatus { get; set; }
/// <summary> /// <summary>
/// 清货状态,1:正在清货,0:未清货 /// 清货状态,1:正在清货,0:未清货
/// </summary> /// </summary>
public int clearancestatus { get; set; } public int? clearancestatus { get; set; }
/// <summary> /// <summary>
/// 侵权状态:1:已侵权,0:未侵权 /// 侵权状态:1:已侵权,0:未侵权
/// </summary> /// </summary>
public int tortstatus { get; set; } public int? tortstatus { get; set; }
/// <summary> /// <summary>
/// Sku标签 /// Sku标签
...@@ -82,97 +82,106 @@ namespace Bailun.DC.Models ...@@ -82,97 +82,106 @@ namespace Bailun.DC.Models
/// <summary> /// <summary>
/// 采购价 /// 采购价
/// </summary> /// </summary>
public decimal buyprice { get; set; } public decimal? buyprice { get; set; }
/// <summary> /// <summary>
/// 库存数量 /// 库存数量
/// </summary> /// </summary>
public int usable_stock { get; set; } public int? usable_stock { get; set; }
/// <summary> /// <summary>
/// 库存金额 /// 库存金额
/// </summary> /// </summary>
public decimal amount_stock { get; set; } public decimal? amount_stock { get; set; }
/// <summary> /// <summary>
/// 采购在途数量 /// 采购在途数量
/// </summary> /// </summary>
public int quantity_purchase { get; set; } public int? quantity_purchase { get; set; }
/// <summary> /// <summary>
/// 采购在途金额 /// 采购在途金额
/// </summary> /// </summary>
public decimal purchase_amount { get; set; } public decimal? purchase_amount { get; set; }
/// <summary> /// <summary>
/// 调拨在途数量 /// 调拨在途数量
/// </summary> /// </summary>
public int quantity_transfer { get; set; } public int? quantity_transfer { get; set; }
/// <summary> /// <summary>
/// 调拨在途金额 /// 调拨在途金额
/// </summary> /// </summary>
public decimal amount_transit { get; set; } public decimal? amount_transit { get; set; }
/// <summary> /// <summary>
/// 缺货数量 /// 缺货数量
/// </summary> /// </summary>
public int quantity_out_stock { get; set; } public int? quantity_out_stock { get; set; }
/// <summary> /// <summary>
/// 昨日销量 /// 昨日销量
/// </summary> /// </summary>
public int oneday_total_sales { get; set; } public int? oneday_total_sales { get; set; }
/// <summary> /// <summary>
/// 昨日销量金额 /// 昨日销量金额
/// </summary> /// </summary>
public decimal amount_onedaysale { get; set; } public decimal? amount_onedaysale { get; set; }
/// <summary> /// <summary>
/// 7日总销量 /// 7日总销量
/// </summary> /// </summary>
public int sevenday_total_sales { get; set; } public int? sevenday_total_sales { get; set; }
/// <summary> /// <summary>
/// 7日总销售额 /// 7日总销售额
/// </summary> /// </summary>
public decimal amount_sevendaysale { get; set; } public decimal? amount_sevendaysale { get; set; }
/// <summary> /// <summary>
/// 14日总销量 /// 14日总销量
/// </summary> /// </summary>
public int fourteenday_total_sales { get; set; } public int? fourteenday_total_sales { get; set; }
/// <summary> /// <summary>
/// 30日总销量 /// 30日总销量
/// </summary> /// </summary>
public int thirtyday_total_sales { get; set; } public int? thirtyday_total_sales { get; set; }
/// <summary> /// <summary>
/// 近7日日均 /// 近7日日均
/// </summary> /// </summary>
public decimal sevenday_average_sales { get; set; } public decimal? sevenday_average_sales { get; set; }
/// <summary> /// <summary>
/// 近14日日均 /// 近14日日均
/// </summary> /// </summary>
public decimal fourteenday_average_sales { get; set; } public decimal? fourteenday_average_sales { get; set; }
/// <summary> /// <summary>
/// 近30日日均 /// 近30日日均
/// </summary> /// </summary>
public decimal thirtyday_average_sales { get; set; } public decimal? thirtyday_average_sales { get; set; }
/// <summary> /// <summary>
/// sku开发时间 /// sku开发时间
/// </summary> /// </summary>
public DateTime skucreatetime { get; set; } public DateTime? skucreatetime { get; set; }
/// <summary> /// <summary>
/// 数据更新时间 /// 数据更新时间
/// </summary> /// </summary>
public DateTime lastupdatetime { get; set; } public DateTime lastupdatetime { get; set; }
/// <summary>
/// 分组名称
/// </summary>
public string groupname { get; set; }
/// <summary>
/// 未发货数
/// </summary>
public int? quantity_unshipped { get; set; }
} }
} }
...@@ -200,8 +200,151 @@ namespace Bailun.DC.Services ...@@ -200,8 +200,151 @@ namespace Bailun.DC.Services
var obj = cn.Page<dc_sku_monitor>(request.pageIndex, request.limit, sql+ordersql, ref total, sqlparams,countsql,3*60); var obj = cn.Page<dc_sku_monitor>(request.pageIndex, request.limit, sql+ordersql, ref total, sqlparams,countsql,3*60);
return obj.AsList(); return obj.AsList();
}
}
/// <summary>
/// 获取数据仓分页数据 (新版)
/// </summary>
/// <param name="parameter"></param>
/// <param name="warehousetype"></param>
/// <param name="areaid"></param>
/// <param name="warehousecode"></param>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="monitorstatus"></param>
/// <param name="cleanstatus"></param>
/// <param name="infringestatus"></param>
/// <param name="skutip"></param>
/// <param name="storestart"></param>
/// <param name="storeend"></param>
/// <param name="skucategory"></param>
/// <param name="searchkey"></param>
/// <param name="skucategoryids"></param>
/// <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)
{
var sqlparams = new DynamicParameters();
var sql = "select t1.* from dc_datawarehouse t1 where 1=1 ";
if (!string.IsNullOrWhiteSpace(searchkey))
{
var arr = searchkey.Split(',').Where(a => !string.IsNullOrEmpty(a)).ToList();
if (arr.Count > 0)
{
sql += " and t1.bailun_sku in @searchkey";
sqlparams.Add("searchkey", arr.ToArray());
}
} }
if (areaid.HasValue)
{
sql += " and t1.area_id=" + areaid.Value;
}
if (!string.IsNullOrWhiteSpace(warehousetype))
{
sql += " and t1.hq_type=@hq_type";
sqlparams.Add("hq_type", warehousetype);
}
if (!string.IsNullOrWhiteSpace(warehousecode))
{
sql += " and t1.warehouse_code=@warehousecode";
sqlparams.Add("warehousecode", warehousecode);
}
if (start.HasValue)
{
sql += " and t1.create_time>=@start";
sqlparams.Add("start", start.Value);
}
if (end.HasValue)
{
sql += " and t1.create_time<@end";
sqlparams.Add("end", end.Value);
}
if (monitorstatus.HasValue)
{
sql += " and t1.status=@monitorstatus";
sqlparams.Add("monitorstatus", monitorstatus.Value);
}
if (cleanstatus.HasValue)
{
sql += " and t1.clearancestatus=@clearancestatus";
sqlparams.Add("clearancestatus", cleanstatus.Value);
}
if (infringestatus.HasValue)
{
sql += " and t1.tortstatus=@tortstatus";
sqlparams.Add("tortstatus", infringestatus.Value);
}
if (!string.IsNullOrWhiteSpace(skutip))
{
sql += " and t1.str_skutag like @skutip";
sqlparams.Add("skutip", "%" + skutip + "%");
}
if (storestart.HasValue && storestart.Value > 0)
{
sql += " and t1.usable_stock>=@stockstart";
sqlparams.Add("stockstart", storestart.Value);
}
if (storeend.HasValue && storeend.Value > 0)
{
sql += " and t1.usable_stock<@stockend";
sqlparams.Add("stockend", storeend.Value);
}
if (skucategory.HasValue)
{
sql += " and t1.category_id=@categoryid";
sqlparams.Add("categoryid", skucategory.Value);
}
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
var arr = skucategoryids.Split('|').Where(a => !string.IsNullOrEmpty(a)).ToList();
if (arr.Count > 0)
{
//获取选中分类下所有的分类
var AllCategory = Services.CommonServices.GetCategoryList(0);
var listcategory = new List<Models.Common.CategoryDto>();
foreach (var item in arr)
{
listcategory.AddRange(Services.CommonServices.GetCategoryListAll(AllCategory, int.Parse(item)));
}
var s = string.Join(",", listcategory.Select(a => a.C_ID));
if (!string.IsNullOrEmpty(s))
{
sql += " and t1.category_id in (" + s + ")";
}
}
}
if (!string.IsNullOrEmpty(groupname))
{
sql += " and t1.groupname=@groupname";
sqlparams.Add("groupname", groupname);
}
if (!string.IsNullOrEmpty(parameter.sort))
{
sql += " order by t1." + parameter.sort + " " + parameter.order;
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Page<dc_datawarehouse>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparams, "", 3 * 60);
return obj.AsList();
}
} }
/// <summary> /// <summary>
......
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework> <TargetFramework>netcoreapp2.1</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
......
...@@ -62,7 +62,7 @@ namespace Bailun.DC.SkuDataWareHouse ...@@ -62,7 +62,7 @@ namespace Bailun.DC.SkuDataWareHouse
while (page == 1 || (resultcount == pagesize && resultcount != 0)) while (page == 1 || (resultcount == pagesize && resultcount != 0))
{ {
var strlimit = (((page - 1) * pagesize) + "," + pagesize); 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=0 then 1 else 2 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 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_id,t02.category_name,t02.sku_title_cn from dc_base_stock t01 from (select t01.bailun_sku,t01.warehouse_code,t01.usable_stock,t02.unit_price,t02.create_time,t02.category_id,t02.category_name,t02.sku_title_cn from dc_base_stock t01
join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1 join dc_base_sku t02 on t01.bailun_sku=t02.bailun_sku and t02.company_id=1
limit {strlimit}) t1 limit {strlimit}) t1
...@@ -80,7 +80,7 @@ namespace Bailun.DC.SkuDataWareHouse ...@@ -80,7 +80,7 @@ namespace Bailun.DC.SkuDataWareHouse
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) values ";
foreach (var item in liststock) foreach (var item in liststock)
{ {
str += $@"('{item.warehousetype}','{item.area_id}','{item.area_name}','{item.warehousename}','{item.warehouse_code}','{item.sku}',{item.category_id},'{(!string.IsNullOrEmpty(item.categoryname) ? item.categoryname.Replace("'", "") : "")}','{item.skuname.Replace("'", "")}',{item.monitorstatus},{item.clearancestatus},{item.tortstatus},'{item.str_skutag}',{item.buyprice},{item.usable_stock},{item.amount_stock},{item.quantity_purchase},{item.purchase_amount},{item.quantity_transfer},{item.amount_transit},{item.quantity_out_stock},{item.oneday_total_sales},{item.amount_onedaysale},{item.sevenday_total_sales},{item.amount_sevendaysale},{item.fourteenday_total_sales},{item.thirtyday_total_sales},{item.sevenday_average_sales},{item.fourteenday_average_sales},{item.thirtyday_average_sales},'{item.skucreatetime.ToString("yyyy-MM-dd HH:mm:ss")}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),"; 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 (resultcount > 0) if (resultcount > 0)
{ {
......
...@@ -42,7 +42,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -42,7 +42,9 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
var service = new Services.SkuMonitorServices(); var service = new Services.SkuMonitorServices();
var total = 0; 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.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 countM = new Models.dc_sku_monitor();//service.ListCount(warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey,groupname); var countM = new Models.dc_sku_monitor();//service.ListCount(warehousetype, areaid, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey,groupname);
...@@ -54,11 +56,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -54,11 +56,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
p.warehouse_code, p.warehouse_code,
p.warehousename, p.warehousename,
p.sku, p.sku,
p.category_name, category_name = p.categoryname,
p.skuname, p.skuname,
status = (p.status ?? 0)==1?"正在监控":"停止监控", status = (p.monitorstatus)==1?"正在监控":"停止监控",
clearancestatus = (p.clearancestatus??0)==1?"正在清货":"否", clearancestatus = (p.clearancestatus)==1?"正在清货":"否",
tortstatus = (p.tortstatus??0)==1?"已侵权":"否", tortstatus = (p.tortstatus)==1?"已侵权":"否",
p.str_skutag, p.str_skutag,
buyprice = (p.buyprice??0).ToString("N2"), buyprice = (p.buyprice??0).ToString("N2"),
usable_stock = (p.usable_stock??0), usable_stock = (p.usable_stock??0),
......
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