Commit b07eca62 by 泽锋 李

新增退货汇总算法

parent 530da39c
...@@ -39,6 +39,7 @@ namespace AutoGeneratePurchaseAdvise ...@@ -39,6 +39,7 @@ namespace AutoGeneratePurchaseAdvise
//PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"))); //PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")));
//report.PurchaseWeekBackUp(); //report.PurchaseWeekBackUp();
//PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"))); //PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")));
//PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")));
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -8,6 +8,7 @@ using System.Linq; ...@@ -8,6 +8,7 @@ using System.Linq;
using System.Text; using System.Text;
using AutoTurnOver.Utility; using AutoTurnOver.Utility;
using System.Transactions; using System.Transactions;
using AutoTurnOver.Models.Report;
namespace AutoTurnOver.DB namespace AutoTurnOver.DB
{ {
...@@ -144,7 +145,7 @@ where t1.usable_stock>0 ...@@ -144,7 +145,7 @@ where t1.usable_stock>0
public static List<order_dto> GetOrderDateList(MySqlConnection conn, string bailun_sku, string warehouse_code, int days) public static List<order_dto> GetOrderDateList(MySqlConnection conn, string bailun_sku, string warehouse_code, int days)
{ {
var table_name = "dc_base_oms_sku_30"; var table_name = "dc_base_oms_sku_30";
if (days > 30) if (days > 90)
{ {
table_name = "dc_base_oms_sku"; table_name = "dc_base_oms_sku";
} }
...@@ -434,6 +435,7 @@ where 1 = 1 "; ...@@ -434,6 +435,7 @@ where 1 = 1 ";
/// </summary> /// </summary>
public static void NewCalculation() public static void NewCalculation()
{ {
var nowHome = DateTime.Now.ToDayHome();
var conn = _connection; var conn = _connection;
var configs = conn.Query<dc_auto_return_goods_config>(" select * from dc_auto_return_goods_config where status=0 "); var configs = conn.Query<dc_auto_return_goods_config>(" select * from dc_auto_return_goods_config where status=0 ");
foreach (var item in configs) foreach (var item in configs)
...@@ -441,7 +443,7 @@ where 1 = 1 "; ...@@ -441,7 +443,7 @@ where 1 = 1 ";
var skus = NewGetSkus(MyMySqlConnection._connection_read_only, item); var skus = NewGetSkus(MyMySqlConnection._connection_read_only, item);
if (skus != null && skus.Count >= 1) if (skus != null && skus.Count >= 1)
{ {
var max_days = Math.Max(item.sales_days_1, item.sales_days_2); var max_days = Math.Max((int)item.sum_sales_days, Math.Max(item.sales_days_1, item.sales_days_2));
// 销量过滤 // 销量过滤
foreach (var itemSku in skus) foreach (var itemSku in skus)
{ {
...@@ -458,37 +460,94 @@ where 1 = 1 "; ...@@ -458,37 +460,94 @@ where 1 = 1 ";
var sales_days_7_val = order_dates.Where(s => s.paid_time >= sales_days_7_date).Sum(s => s.bailun_sku_quantity_ordered); var sales_days_7_val = order_dates.Where(s => s.paid_time >= sales_days_7_date).Sum(s => s.bailun_sku_quantity_ordered);
var sales_days_14_val = order_dates.Where(s => s.paid_time >= sales_days_14_date).Sum(s => s.bailun_sku_quantity_ordered); var sales_days_14_val = order_dates.Where(s => s.paid_time >= sales_days_14_date).Sum(s => s.bailun_sku_quantity_ordered);
var sales_days_30_val = order_dates.Where(s => s.paid_time >= sales_days_30_date).Sum(s => s.bailun_sku_quantity_ordered); var sales_days_30_val = order_dates.Where(s => s.paid_time >= sales_days_30_date).Sum(s => s.bailun_sku_quantity_ordered);
if (temp_val < item.sales_average_upper_limit)
//指定天数的销量汇总
var sum_sales_days_date = DateTime.Now.AddDays(0 - (int)(item.sum_sales_days)).ToDayHome();
var sum_sales_days_sum = order_dates.Where(s => s.paid_time >= sum_sales_days_date).Sum(s => s.bailun_sku_quantity_ordered);
// 判断销量是否达标
if (item.sales_average_upper_limit > 0)
{ {
var new_data = new dc_auto_return_goods_sku if (item.sales_average_upper_limit > temp_val)
{
//日均加权销量不合格
continue;
}
}
if (item.sum_sales_min > 0)
{
if (sum_sales_days_sum < item.sum_sales_min)
{
//累积销量不合格
continue;
}
}
if (item.sum_sales_max > 0)
{
if (sum_sales_days_sum > item.sum_sales_max)
{
//累积销量不合格
continue;
}
}
// 查询这个sku所有的采购单
var purchase_list = _connection.Query<dc_base_purchase_details>(@" select * from dc_base_purchase_details as t1
where t1.bailun_sku=@bailun_sku and t1.warehouse_from_code=@warehouse_code and `status`!=-1 and t1.can_7day_refund=1 ", new
{ {
approval_remarks = "",
bailun_sku = itemSku.bailun_sku, bailun_sku = itemSku.bailun_sku,
monitor_status = "", warehouse_code = itemSku.warehouse_code
config_id = item.id, }).ToList();
config_name = item.title, foreach (var itemPurchase in purchase_list)
create_date = DateTime.Now, {
no_library_sys_out_status = 0, // 看看是否过了退货期
no_library_sys_push_status = 0, if (itemPurchase.last_signtime != null)
oms_out_status = 0, {
oms_push_status = 0, var latest_return_date = itemPurchase.last_signtime.Value.AddDays(6).ToDayEnd();
retun_quantity = 0, if (latest_return_date > nowHome)
sales_average_14 = order_dates.Where(s => s.paid_time >= sales_days_14_date).Sum(s => s.bailun_sku_quantity_ordered), {
sales_average_7 = order_dates.Where(s => s.paid_time >= sales_days_7_date).Sum(s => s.bailun_sku_quantity_ordered), var db_data = new dc_aims_return_goods
sales_average_weight = (sales_days_7_val * 0.5M) + (sales_days_14_val * 0.25M) + (sales_days_30_val * 0.25M), {
sku_title = itemSku.sku_title, bailun_sku = itemPurchase.bailun_sku,
status = 0, suppliers_name = itemPurchase.deliver_name ?? "",
confirm_return_count = 0,
date = DateTime.Now,
date_str = DateTime.Now.ToString("yyyy-MM-dd"),
purchase_count = itemPurchase.quantity_purchase,
buy_name = itemPurchase.buyer_name ?? "",
latest_return_date = latest_return_date,
order_1688_no = itemPurchase.alibaba_order_id ?? "",
purchase_id = itemPurchase.purchase_id ?? "",
retuen_goods_count = 0,
return_addrs = "",
rule_title = item.title,
sign_date = itemPurchase.last_signtime.Value,
stock = itemSku.stock, stock = itemSku.stock,
stock_amount = itemSku.stock * itemSku.unit_price,
unit_price = itemSku.unit_price, unit_price = itemSku.unit_price,
suppliers_id = itemSku.suppliers_id,
suppliers_name = itemSku.suppliers_name,
warehouse_code = itemSku.warehouse_code, warehouse_code = itemSku.warehouse_code,
warehouse_name = itemSku.warehouse_name, warehouse_name = itemSku.warehouse_name
approval_date = new DateTime(1991, 1, 1)
}; };
conn.Insert(new_data);
db_data.id = _connection.QueryFirstOrDefault<int?>(" select * from dc_aims_return_goods where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code and purchase_id=@purchase_id and date_str=@date_str ",new {
bailun_sku = db_data.bailun_sku,
warehouse_code = db_data.warehouse_code,
purchase_id = db_data.purchase_id,
date_str= db_data.date_str
}) ??0;
if (db_data.id <= 0)
{
_connection.Insert(db_data);
} }
}
}
}
} }
} }
} }
...@@ -526,22 +585,22 @@ where t1.usable_stock>0 ...@@ -526,22 +585,22 @@ where t1.usable_stock>0
} }
if (!string.IsNullOrWhiteSpace(config.bailun_skus)) if (!string.IsNullOrWhiteSpace(config.bailun_skus))
{ {
sql += " and t1.bailun_skus in @bailun_skus "; sql += " and t1.bailun_sku in @bailun_skus ";
parameters.Add("bailun_skus", config.bailun_skus.Split(',').ToList()); parameters.Add("bailun_skus", config.bailun_skus.Split(',').ToList());
} }
if (!string.IsNullOrWhiteSpace(config.goods_codes)) if (!string.IsNullOrWhiteSpace(config.goods_codes))
{ {
sql += " and t1.product_code in @goods_codes "; sql += " and t2.product_code in @goods_codes ";
parameters.Add("goods_codes", config.goods_codes.Split(',').ToList()); parameters.Add("goods_codes", config.goods_codes.Split(',').ToList());
} }
if (config.has_no_library == 1) //if (config.has_no_library == 1)
{ //{
sql += " and t4.nostock =1 "; // sql += " and t4.nostock =1 ";
} //}
if (config.has_return == 1) //if (config.has_return == 1)
{ //{
sql += " and t4.isaccept_refund =1 "; // sql += " and t4.isaccept_refund =1 ";
} //}
if (config.suppliers_id > 0) if (config.suppliers_id > 0)
{ {
sql += " and t2.suppliers_id =@suppliers_id "; sql += " and t2.suppliers_id =@suppliers_id ";
......
...@@ -255,6 +255,11 @@ namespace AutoTurnOver.Models.Report ...@@ -255,6 +255,11 @@ namespace AutoTurnOver.Models.Report
/// 创建人 /// 创建人
/// </summary> /// </summary>
public string createusername { get; set; } public string createusername { get; set; }
/// <summary>
/// 是否支持7天退款
/// </summary>
public int can_7day_refund { get; set; }
} }
public class dc_base_purchase_details_dto: dc_base_purchase_details public class dc_base_purchase_details_dto: dc_base_purchase_details
......
...@@ -11,6 +11,7 @@ namespace AutoTurnOver.Models ...@@ -11,6 +11,7 @@ namespace AutoTurnOver.Models
{ {
public int id { get; set; } public int id { get; set; }
public DateTime date { get; set; } public DateTime date { get; set; }
public string date_str { get; set; }
public string rule_title { get; set; } public string rule_title { get; set; }
public string bailun_sku { get; set; } public string bailun_sku { get; set; }
public string warehouse_code { get; set; } public string warehouse_code { get; set; }
......
...@@ -120,6 +120,13 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -120,6 +120,13 @@ namespace AutoTurnOver.Purchase.AverageTarget
dc_auto_return_goods_config_dao.Calculation(); dc_auto_return_goods_config_dao.Calculation();
Console.WriteLine($"结束 计算退款sku,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); Console.WriteLine($"结束 计算退款sku,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
} }
// 判断是不是指定的时间
if (now.Hour == 00 && now.Minute == 21)
{
Console.WriteLine($"开始 计算退款数据汇总,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
dc_auto_return_goods_config_dao.NewCalculation();
Console.WriteLine($"结束 计算退款数据汇总,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -31,6 +31,7 @@ namespace AutoTurnOver.Purchase.AverageTarget ...@@ -31,6 +31,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
//PurchaseAverageTargetServices.CalculationTransfer(); //PurchaseAverageTargetServices.CalculationTransfer();
//report.ResetTransExpectArrivaltime(); //report.ResetTransExpectArrivaltime();
} }
catch (Exception ex) catch (Exception ex)
{ {
......
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