Commit dd931f19 by lizefeng

新增商品分类汇总

parent 4333bca0
...@@ -1112,6 +1112,137 @@ alter table dc_auto_config_sku_label rename dc_auto_config_sku_labelTemp; ...@@ -1112,6 +1112,137 @@ alter table dc_auto_config_sku_label rename dc_auto_config_sku_labelTemp;
alter table dc_auto_config_sku_label_temp rename dc_auto_config_sku_label; alter table dc_auto_config_sku_label_temp rename dc_auto_config_sku_label;
alter table dc_auto_config_sku_labelTemp rename dc_auto_config_sku_label_temp; alter table dc_auto_config_sku_labelTemp rename dc_auto_config_sku_label_temp;
truncate table dc_auto_config_sku_label_temp; ", commandTimeout: 0); truncate table dc_auto_config_sku_label_temp; ", commandTimeout: 0);
_connection.Execute(@"-- 刷新缺货明细表
set session transaction isolation level read uncommitted;
start transaction;
-- 清空视图表的数据
Truncate table dc_base_oms_sku_7_temp;
INSERT into dc_base_oms_sku_7_temp (
select
t1.`id`,
t1.`origin_order_id`,
t1.`platform_type`,
t1.`transaction_id`,
t1.`pay_time`,
t1.`pay_method`,
t1.`pay_account`,
t1.`pay_status`,
t1.`collection_account`,
t1.`platform_order_type`,
t1.`website`,
t1.`create_time`,
t1.`paid_time`,
t1.`refund_time`,
t1.`seller_id`,
t1.`bailun_account_id`,
t1.`hq_account`,
t1.`seller_account`,
t1.`seller_order_id`,
t1.`seller_email`,
t1.`order_update_time`,
t1.`seller_order_exchange_rate`,
t1.`seller_other_exchange_rate`,
t1.`finance_order_exchange_rate`,
t1.`finance_other_exchange_rate`,
t1.`cny_to_usd_exchange_rate`,
t1.`order_to_usd_exchange_rate`,
t1.`other_to_usd_exchange_rate` ,
t1.`order_currency`,
t1.`other_currency`,
t1.`seller_name`,
t1.`bailun_order_id`,
t1.`platform_order_status`,
t1.`bailun_order_status`,
t1.`bailun_payment_status`,
t1.`bailun_interception_status`,
t1.`shipping_status`,
t1.`bailun_sku`,
t1.`bailun_sku_title_en`,
t1.`bailun_sku_title_cn`,
t1.`bailun_sku_quantity_ordered`,
t1.`bailun_sku_quantity_shipped`,
t1.`bailun_sku_quantity_refund`,
t1.`bailun_sku_quantity_picked`,
t1.`warehouse_name`,
t1.`warehouse_code_fba`,
t1.`warehouse_code`,
t1.`bailun_sku_unit_price`,
t1.`bailun_sku_weight`,
t1.`bailun_sku_size`,
t1.`amount_sales`,
t1.`amount_total`,
t1.`amount_shipping`,
t1.`amount_product`,
t1.`amount_tax`,
t1.`amount_adjustment`,
t1.`amount_gift_wrap`,
t1.`amount_refund`,
t1.`amount_prepaid`,
t1.`cost_total`,
t1.`cost_promotion`,
t1.`cost_platform_fee`,
t1.`cost_product`,
t1.`cost_shipping`,
t1.`cost_package`,
t1.`cost_fba_fee`,
t1.`cost_paypal_fee`,
t1.`cost_refund_commisson`,
t1.`cost_handle_bailun`,
t1.`cost_handle_platform`,
t1.`cost_tail`,
t1.`cost_first`,
t1.`cost_logistics`,
t1.`profit_total`,
t1.`profit_rate`,
t1.`receipt_country`,
t1.`receipt_city`,
t1.`receipt_area`,
t1.`receipt_address`,
t1.`receipt_address_2`,
t1.`receipt_postal_code`,
t1.`receiver`,
t1.`receiver_phone`,
t1.`buyer_id`,
t1.`buyer_name`,
t1.`buyer_email`,
t1.`has_fba_exception`,
t1.`has_platform_exception`,
t1.`has_cancle`,
t1.`area_id`,
t1.`bailun_category_id`,
t1.`bailun_category_name`,
t1.`gmt_create`,
t1.`gmt_modified`,
t1.`ratio_weight`,
t1.`ratio_price`,
t1.`bailun_picking_status`,
t1.`bailun_require_logistics`,
t1.`has_delete`,
t1.`has_scalp`,
t1.`logistics_method_code`,
t1.`logistics_method_name`,
t1.`has_innersale`,
t1.`company_id`,
t1.`bailun_refund_status`,
t1.`refund_obj`,
t1.`refund_type`,
t1.`refund_reference_id`,
t1.`has_fba_s`,
t1.`bailun_sku_quantity_pushed`,
( CASE WHEN ( `t1`.`warehouse_code` IN ( 'QYBLZZ', 'GZBLWH' ) ) THEN 'QYBLZZ-GZBLWH' ELSE `t1`.`warehouse_code` END ) as 'warehouse_code_extend'
from dc_base_oms_sku as t1
left join dc_base_warehouse as t_db on t1.warehouse_code = t_db.warehouse_code
left join dc_base_sku as t6 on t1.bailun_sku = t6.bailun_sku
where t1.company_id=1 and t1.has_innersale=0 and t1.create_time>@time and t1.bailun_picking_status!='TotalPicked' and t1.bailun_order_status = 'Handling' and t1.has_delete=0 and t1.has_scalp=0 and t1.bailun_interception_status not in ('Success','Part')
);
alter table dc_base_oms_sku_7 rename dc_base_oms_sku_7Temp;
alter table dc_base_oms_sku_7_temp rename dc_base_oms_sku_7;
alter table dc_base_oms_sku_7Temp rename dc_base_oms_sku_7_temp;
truncate table dc_base_oms_sku_7_temp; ",new { time = DateTime.Now.AddDays(-8) },commandTimeout:0);
} }
catch (Exception ex) catch (Exception ex)
{ {
...@@ -1144,7 +1275,134 @@ truncate table dc_auto_config_sku_label_temp; ", commandTimeout: 0); ...@@ -1144,7 +1275,134 @@ truncate table dc_auto_config_sku_label_temp; ", commandTimeout: 0);
}).ToList(); ; }).ToList(); ;
} }
public static List<bailun_sku_website_sales_dto> GetSkuWebsiteSales(bailun_sku_website_sales_search_dto search_data)
{
var sql = @" select t1.*,t2.label from dc_base_oms_sku_7 as t1 left join dc_auto_config_sku_label as t2 on t1.bailun_sku = t2.bailun_sku where 1=1 ";
DynamicParameters parameters = new DynamicParameters();
if (search_data != null)
{
if (!string.IsNullOrWhiteSpace(search_data.platform_type))
{
sql += " and t1.platform_type = @platform_type ";
parameters.Add("platform_type",search_data.platform_type);
}
}
var oms_sku_list = _connection.Query<dc_base_oms_sku_label>(sql, parameters);
List<bailun_sku_website_sales_dto> datas = new List<bailun_sku_website_sales_dto>();
var website_list = oms_sku_list.GroupBy(s=>new { s.platform_type,s.website}).OrderBy(s=>s.Key.platform_type);
foreach (var item in website_list)
{
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装精准开发",
labels = new List<string> { "服装精准开发" },
website = item.Key.website,
website_show = item.Key.platform_type +"-"+ item.Key.website,
platform_type = item.Key.platform_type,
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
}
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装精准开发",
labels = new List<string> { "服装精准开发" },
website = "小计",
website_show = "小计",
platform_type = "",
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
foreach (var item in website_list)
{
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装供应商推荐",
labels = new List<string> { "服装供应商推荐" },
website = item.Key.website,
website_show = item.Key.platform_type + "-" + item.Key.website,
platform_type = item.Key.platform_type,
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
}
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装供应商推荐",
labels = new List<string> { "服装供应商推荐" },
website = "小计",
website_show = "小计",
platform_type = "",
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
foreach (var item in website_list)
{
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装汇总",
labels = new List<string> { "服装供应商推荐", "服装精准开发" },
website = item.Key.website,
website_show = item.Key.platform_type + "-" + item.Key.website,
platform_type = item.Key.platform_type,
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
}
datas.Add(new bailun_sku_website_sales_dto
{
label = "服装汇总",
labels = new List<string> { "服装供应商推荐", "服装精准开发" },
website = "小计",
website_show = "小计",
platform_type = "",
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
foreach (var item in website_list)
{
datas.Add(new bailun_sku_website_sales_dto
{
label = "非服装精准开发",
labels = new List<string> { "非服装精准开发" },
website = item.Key.website,
website_show = item.Key.platform_type + "-" + item.Key.website,
platform_type = item.Key.platform_type,
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
}
datas.Add(new bailun_sku_website_sales_dto
{
label = "非服装精准开发",
labels = new List<string> { "非服装精准开发" },
website = "小计",
website_show = "小计",
platform_type = "",
days = new List<bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto>()
});
var b_time = DateTime.Now.AddDays(-1);
var e_time = b_time.AddDays(-7);
var this_time = b_time;
while (this_time>= e_time)
{
foreach (var item in datas)
{
var temp_datas = oms_sku_list.Where(s=> item.labels.Contains(s.label) && s.create_time.Year== this_time.Year && s.create_time.Month == this_time.Month && s.create_time.Day== this_time.Day);
if (!"小计".Equals(item.website))
{
temp_datas = temp_datas.Where(s => s.platform_type == item.platform_type && s.website == item.website);
}
item.days.Add(new bailun_sku_website_sales_dto.bailun_sku_website_sales_date_dto {
year = this_time.Year,
month = this_time.Month,
day = this_time.Day,
count = temp_datas.Sum(s=>s.bailun_sku_quantity_ordered),
sum = temp_datas.Sum(s => s.bailun_sku_quantity_ordered * s.amount_sales * s.order_to_usd_exchange_rate)
});
}
this_time = this_time.AddDays(-1);
}
return datas;
}
} }
} }
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.Report
{
public class bailun_sku_website_sales_search_dto
{
public string platform_type { get; set; }
}
public class bailun_sku_website_sales_dto
{
public string label { get; set; }
public string platform_type { get; set; }
public string website { get; set; }
public string website_show { get; set; }
public List<string> labels { get; set; }
public List<bailun_sku_website_sales_date_dto> days { get; set; }
public class bailun_sku_website_sales_date_dto
{
public int year { get; set; }
public int month { get; set; }
public int day { get; set; }
public decimal count { get; set; }
public decimal sum { get; set; }
}
}
}
...@@ -18,6 +18,7 @@ namespace AutoTurnOver.Models ...@@ -18,6 +18,7 @@ namespace AutoTurnOver.Models
public string platform_type { get; set; } public string platform_type { get; set; }
public DateTime pay_time { get; set; } public DateTime pay_time { get; set; }
public DateTime create_time { get; set; }
public string website { get; set; } public string website { get; set; }
...@@ -28,6 +29,21 @@ namespace AutoTurnOver.Models ...@@ -28,6 +29,21 @@ namespace AutoTurnOver.Models
public string bailun_sku_title_cn { get; set; } public string bailun_sku_title_cn { get; set; }
public string bailun_sku_quantity_ordered { get; set; } public decimal bailun_sku_quantity_ordered { get; set; }
/// <summary>
/// 原币种转 - 美金汇率
/// </summary>
public decimal order_to_usd_exchange_rate { get; set; }
/// <summary>
/// 销售额
/// </summary>
public decimal amount_sales { get; set; }
}
public class dc_base_oms_sku_label : dc_base_oms_sku
{
public string label { get; set; }
} }
} }
...@@ -8,6 +8,7 @@ using AutoTurnOver.Utility; ...@@ -8,6 +8,7 @@ using AutoTurnOver.Utility;
using AutoTurnOver.Models.Report; using AutoTurnOver.Models.Report;
using System.Data; using System.Data;
using AutoTurnOver.Models.ApiDto; using AutoTurnOver.Models.ApiDto;
using System.Dynamic;
namespace AutoTurnOver.Services namespace AutoTurnOver.Services
{ {
...@@ -466,6 +467,31 @@ namespace AutoTurnOver.Services ...@@ -466,6 +467,31 @@ namespace AutoTurnOver.Services
report.removeShortagePush(datas.Where(s => !err_datas.Any(e => e.warehouseCode == s.warehouse_code && s.bailun_sku == e.sku)).Select(s=>s.shortage_push_id)); report.removeShortagePush(datas.Where(s => !err_datas.Any(e => e.warehouseCode == s.warehouse_code && s.bailun_sku == e.sku)).Select(s=>s.shortage_push_id));
} }
public List<dynamic> GetSkuWebsiteSales(bailun_sku_website_sales_search_dto search_data)
{
var order_list = report.GetSkuWebsiteSales(search_data);
List<dynamic> datas = new List<dynamic>();
foreach (var item in order_list)
{
dynamic o = new ExpandoObject();
o.label = item.label;
o.platform_type = item.platform_type;
o.website = item.website_show;
foreach (var dat_item in item.days)
{
var dic = (IDictionary<string, object>)o;
dic["count_" + (dat_item.month + "-" + dat_item.day)] = Math.Round( dat_item.count,2);
dic["sum_" + (dat_item.month + "-" + dat_item.day)] = Math.Round(dat_item.sum,2);
}
datas.Add(o);
}
return datas;
}
} }
} }
...@@ -620,5 +620,24 @@ namespace AutoTurnOver.Controllers ...@@ -620,5 +620,24 @@ namespace AutoTurnOver.Controllers
memory.Position = 0; memory.Position = 0;
return File(memory, "text/csv", "出信结果.csv"); return File(memory, "text/csv", "出信结果.csv");
} }
/// <summary>
/// sku 标签报表
/// </summary>
/// <param name="platform_type"></param>
/// <returns></returns>
public JsonResult GetSkuWebsiteSales(string platform_type)
{
bailun_sku_website_sales_search_dto search_data = new bailun_sku_website_sales_search_dto {
platform_type = platform_type
};
var list = new ReportServices().GetSkuWebsiteSales(search_data);
return new JsonResult(new
{
rows = list,
total = 0,
});
}
} }
} }
\ 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