Commit e39c175e by zhouminghui

fix

parent c73d2a69
...@@ -2026,7 +2026,8 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina ...@@ -2026,7 +2026,8 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina
{ {
var startTime = Convert.ToDateTime("2021-08-01"); var startTime = Convert.ToDateTime("2021-08-01");
var endTime = Convert.ToDateTime("2021-09-01"); var endTime = Convert.ToDateTime("2021-09-01");
var lastMonth = startTime.AddDays(-1); //var lastMonth = startTime.AddDays(-1);
var lastMonth = startTime;
for (int i = 1; i < 100000; i++) for (int i = 1; i < 100000; i++)
{ {
var skuData = GetMonthStockWeightingSkuList(startTime, endTime, i, 20); var skuData = GetMonthStockWeightingSkuList(startTime, endTime, i, 20);
...@@ -2134,20 +2135,39 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina ...@@ -2134,20 +2135,39 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina
private List<GetMonthStockWeightingSummaryDto> GetMonthEndInventory(List<string> skus, DateTime lastMonth) private List<GetMonthStockWeightingSummaryDto> GetMonthEndInventory(List<string> skus, DateTime lastMonth)
{ {
string sqlSku = "('" + string.Join("','", skus) + "')"; string sqlSku = "('" + string.Join("','", skus) + "')";
string sql = $@" //string sql = $@"
SELECT temp.bailun_sku, // SELECT temp.bailun_sku,
// CASE WHEN stock_flow.on_hand_stock*temp.price>0 THEN stock_flow.on_hand_stock*temp.price ELSE 0 END AS total_price,
// CASE WHEN stock_flow.on_hand_stock>0 THEN stock_flow.on_hand_stock ELSE 0 END AS on_hand_stock
// FROM(SELECT t1.bailun_sku,t1.count,t2.price FROM dc_base_purchase_inbound AS t1
// INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku
// WHERE DATE(t1.create_time)='{lastMonth.ToString("yyyy-MM-dd")}' AND t1.`status` = 1 AND t1.bailun_sku IN {sqlSku}) AS temp
// LEFT JOIN (
// SELECT bailun_sku,SUM(on_hand_stock)on_hand_stock FROM(
// SELECT bailun_sku,on_hand_stock
// FROM dc_base_wms_stock_flow WHERE 1=1 AND DATE(order_creation_time) ='{lastMonth.ToString("yyyy-MM-dd")}' AND warehouse_code IN('GZBLZZG','GZBLWH')
// ORDER BY order_creation_time DESC)AS temp GROUP BY bailun_sku
// )AS stock_flow ON stock_flow.bailun_sku = temp.bailun_sku;
// ";
DateTime start = lastMonth.AddMonths(-1);
var sql = $@"SELECT temp.bailun_sku,temp.create_time,
CASE WHEN stock_flow.on_hand_stock*temp.price>0 THEN stock_flow.on_hand_stock*temp.price ELSE 0 END AS total_price, CASE WHEN stock_flow.on_hand_stock*temp.price>0 THEN stock_flow.on_hand_stock*temp.price ELSE 0 END AS total_price,
CASE WHEN stock_flow.on_hand_stock>0 THEN stock_flow.on_hand_stock ELSE 0 END AS on_hand_stock CASE WHEN stock_flow.on_hand_stock>0 THEN stock_flow.on_hand_stock ELSE 0 END AS on_hand_stock
FROM(SELECT t1.bailun_sku,t1.count,t2.price FROM dc_base_purchase_inbound AS t1 FROM(
INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku SELECT t1.bailun_sku,t1.count,t2.price,MAX(t1.create_time) create_time
WHERE DATE(t1.create_time)='{lastMonth.ToString("yyyy-MM-dd")}' AND t1.`status` = 1 AND t1.bailun_sku IN {sqlSku}) AS temp FROM dc_base_purchase_inbound AS t1
LEFT JOIN ( INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku
SELECT bailun_sku,SUM(on_hand_stock)on_hand_stock FROM( WHERE t1.create_time >= '{start}' AND t1.create_time < '{lastMonth}'
SELECT bailun_sku,on_hand_stock AND t1.`status` = 1 AND t1.bailun_sku IN {sqlSku} group by t1.bailun_sku) AS temp
FROM dc_base_wms_stock_flow WHERE 1=1 AND DATE(order_creation_time) ='{lastMonth.ToString("yyyy-MM-dd")}' AND warehouse_code IN('GZBLZZG','GZBLWH') LEFT JOIN (
ORDER BY order_creation_time DESC)AS temp GROUP BY bailun_sku SELECT bailun_sku,SUM(on_hand_stock)on_hand_stock
)AS stock_flow ON stock_flow.bailun_sku = temp.bailun_sku; FROM(
"; SELECT bailun_sku,on_hand_stock,MAX(order_creation_time)
FROM dc_base_wms_stock_flow WHERE 1=1 AND order_creation_time >= '{start}'
AND order_creation_time < '{lastMonth}'
AND warehouse_code IN('GZBLZZG','GZBLWH')
GROUP BY bailun_sku )AS temp group by bailun_sku
)AS stock_flow ON stock_flow.bailun_sku = temp.bailun_sku;";
using (var cn = new MySqlConnection(GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(GlobalConfig.ConnectionString))
{ {
if (cn.State == ConnectionState.Closed) if (cn.State == ConnectionState.Closed)
...@@ -2164,31 +2184,34 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina ...@@ -2164,31 +2184,34 @@ AND platform_type = '{item.platform_type}' AND financecategoryname = '{item.fina
INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku
WHERE t1.bailun_sku = @sku AND DATE(t1.create_time)>= @start AND DATE(t1.create_time)< @end WHERE t1.bailun_sku = @sku AND DATE(t1.create_time)>= @start AND DATE(t1.create_time)< @end
AND t1.`status` = 1"; AND t1.`status` = 1";
var sqlStock = @"SELECT temp.bailun_sku, var sqlStock = @"SELECT temp.bailun_sku,create_time,
CASE WHEN stock_flow.on_hand_stock*temp.price>0 THEN stock_flow.on_hand_stock*temp.price ELSE 0 END AS total_price, CASE WHEN stock_flow.on_hand_stock*temp.price>0 THEN stock_flow.on_hand_stock*temp.price ELSE 0 END AS total_price,
CASE WHEN stock_flow.on_hand_stock>0 THEN stock_flow.on_hand_stock ELSE 0 END AS on_hand_stock CASE WHEN stock_flow.on_hand_stock>0 THEN stock_flow.on_hand_stock ELSE 0 END AS on_hand_stock
FROM(SELECT t1.bailun_sku,t1.count,t2.price FROM dc_base_purchase_inbound AS t1 FROM(SELECT t1.bailun_sku,t1.count,t2.price,t1.create_time FROM dc_base_purchase_inbound AS t1
INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku INNER JOIN dc_base_purchase AS t2 ON t2.purchase_id = t1.purchase_id AND t2.bailun_sku = t1.bailun_sku
WHERE DATE(t1.create_time)= @purchaseTime AND t1.`status` = 1 AND t1.bailun_sku = @sku ) AS temp WHERE t1.create_time >= @purchasestart AND t1.create_time < @purchaseend and t1.`status` = 1 AND t1.bailun_sku = @sku1 ) AS temp
LEFT JOIN( LEFT JOIN(
SELECT bailun_sku, SUM(on_hand_stock) on_hand_stock FROM( SELECT bailun_sku, SUM(on_hand_stock) on_hand_stock FROM(
SELECT bailun_sku, on_hand_stock SELECT bailun_sku, on_hand_stock
FROM dc_base_wms_stock_flow WHERE 1 = 1 AND DATE(order_creation_time) = @stockTime AND warehouse_code IN('GZBLZZG', 'GZBLWH') FROM dc_base_wms_stock_flow WHERE 1 = 1 AND order_creation_time >= @stockstart and order_creation_time < @stockend AND warehouse_code IN('GZBLZZG', 'GZBLWH')
and bailun_sku = 'N-8ML-G1341' and bailun_sku = @sku2
ORDER BY order_creation_time DESC limit 1 )AS temp ORDER BY order_creation_time DESC limit 1 )AS temp
)AS stock_flow ON stock_flow.bailun_sku = temp.bailun_sku"; )AS stock_flow ON stock_flow.bailun_sku = temp.bailun_sku order by create_time desc limit 1";
var sqlPurchaseParam = new DynamicParameters(); var sqlPurchaseParam = new DynamicParameters();
var sqlStockParam = new DynamicParameters(); var sqlStockParam = new DynamicParameters();
sqlPurchaseParam.Add("sku", sku); sqlPurchaseParam.Add("sku", sku);
sqlStockParam.Add("sku", sku); sqlStockParam.Add("sku1", sku);
sqlStockParam.Add("sku2", sku);
var time = Convert.ToDateTime(month); var time = Convert.ToDateTime(month);
var timeEnd = time.AddMonths(1); var timeEnd = time.AddMonths(1);
var timeLast = time.AddDays(-1); //var timeLast = time.AddDays(-1);
sqlPurchaseParam.Add("start", time); sqlPurchaseParam.Add("start", time);
sqlPurchaseParam.Add("end", timeEnd); sqlPurchaseParam.Add("end", timeEnd);
var stockdate = time.AddMonths(-1);
sqlStockParam.Add("purchaseTime", timeLast); sqlStockParam.Add("purchasestart", stockdate);
sqlStockParam.Add("stockTime", timeLast); sqlStockParam.Add("purchaseend", time);
sqlStockParam.Add("stockstart", stockdate);
sqlStockParam.Add("stockend", time);
var purchase = SimpleCRUD.Query<dynamic>(sqlPurchase, sqlPurchaseParam, GlobalConfig.ConnectionString).ToList(); var purchase = SimpleCRUD.Query<dynamic>(sqlPurchase, sqlPurchaseParam, GlobalConfig.ConnectionString).ToList();
var stock = SimpleCRUD.Query<GetMonthStockWeightingSummaryDto>(sqlStock, sqlStockParam, GlobalConfig.ConnectionString).ToList(); var stock = SimpleCRUD.Query<GetMonthStockWeightingSummaryDto>(sqlStock, sqlStockParam, GlobalConfig.ConnectionString).ToList();
//var stock = GetMonthEndInventory(new List<string> { sku }, timeLast); //var stock = GetMonthEndInventory(new List<string> { sku }, timeLast);
......
...@@ -672,5 +672,8 @@ namespace Bailun.DC.WebApi.Controllers ...@@ -672,5 +672,8 @@ namespace Bailun.DC.WebApi.Controllers
public object GetMonthStockWeightingDetail(string sku, string month) public object GetMonthStockWeightingDetail(string sku, string month)
=> new FinanceService().GetMonthStockWeightingDetail(sku, month); => new FinanceService().GetMonthStockWeightingDetail(sku, month);
#endregion #endregion
[HttpGet("GetTest")]
public void GetTest()
=> new FinanceService().SynchMonthStockWeighting();
} }
} }
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