Commit b07eca62 by 泽锋 李

新增退货汇总算法

parent 530da39c
......@@ -39,6 +39,7 @@ namespace AutoGeneratePurchaseAdvise
//PurchaseAdviseServices.Generate(DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")));
//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")));
}
catch (Exception ex)
{
......
......@@ -8,6 +8,7 @@ using System.Linq;
using System.Text;
using AutoTurnOver.Utility;
using System.Transactions;
using AutoTurnOver.Models.Report;
namespace AutoTurnOver.DB
{
......@@ -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)
{
var table_name = "dc_base_oms_sku_30";
if (days > 30)
if (days > 90)
{
table_name = "dc_base_oms_sku";
}
......@@ -434,6 +435,7 @@ where 1 = 1 ";
/// </summary>
public static void NewCalculation()
{
var nowHome = DateTime.Now.ToDayHome();
var conn = _connection;
var configs = conn.Query<dc_auto_return_goods_config>(" select * from dc_auto_return_goods_config where status=0 ");
foreach (var item in configs)
......@@ -441,7 +443,7 @@ where 1 = 1 ";
var skus = NewGetSkus(MyMySqlConnection._connection_read_only, item);
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)
{
......@@ -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_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);
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,
monitor_status = "",
config_id = item.id,
config_name = item.title,
create_date = DateTime.Now,
no_library_sys_out_status = 0,
no_library_sys_push_status = 0,
oms_out_status = 0,
oms_push_status = 0,
retun_quantity = 0,
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),
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,
status = 0,
warehouse_code = itemSku.warehouse_code
}).ToList();
foreach (var itemPurchase in purchase_list)
{
// 看看是否过了退货期
if (itemPurchase.last_signtime != null)
{
var latest_return_date = itemPurchase.last_signtime.Value.AddDays(6).ToDayEnd();
if (latest_return_date > nowHome)
{
var db_data = new dc_aims_return_goods
{
bailun_sku = itemPurchase.bailun_sku,
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_amount = itemSku.stock * itemSku.unit_price,
unit_price = itemSku.unit_price,
suppliers_id = itemSku.suppliers_id,
suppliers_name = itemSku.suppliers_name,
warehouse_code = itemSku.warehouse_code,
warehouse_name = itemSku.warehouse_name,
approval_date = new DateTime(1991, 1, 1)
warehouse_name = itemSku.warehouse_name
};
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
}
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());
}
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());
}
if (config.has_no_library == 1)
{
sql += " and t4.nostock =1 ";
}
if (config.has_return == 1)
{
sql += " and t4.isaccept_refund =1 ";
}
//if (config.has_no_library == 1)
//{
// sql += " and t4.nostock =1 ";
//}
//if (config.has_return == 1)
//{
// sql += " and t4.isaccept_refund =1 ";
//}
if (config.suppliers_id > 0)
{
sql += " and t2.suppliers_id =@suppliers_id ";
......
......@@ -255,6 +255,11 @@ namespace AutoTurnOver.Models.Report
/// 创建人
/// </summary>
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
......
......@@ -11,6 +11,7 @@ namespace AutoTurnOver.Models
{
public int id { get; set; }
public DateTime date { get; set; }
public string date_str { get; set; }
public string rule_title { get; set; }
public string bailun_sku { get; set; }
public string warehouse_code { get; set; }
......
......@@ -120,6 +120,13 @@ namespace AutoTurnOver.Purchase.AverageTarget
dc_auto_return_goods_config_dao.Calculation();
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)
{
......
......@@ -31,6 +31,7 @@ namespace AutoTurnOver.Purchase.AverageTarget
//PurchaseAverageTargetServices.CalculationTransfer();
//report.ResetTransExpectArrivaltime();
}
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