Commit 90b53348 by lizefeng

aima 实时库存查询,支持空格分隔查询多个

parent c7aca1b9
...@@ -142,7 +142,7 @@ ORDER BY t1.update_time desc LIMIT @seed_count ...@@ -142,7 +142,7 @@ ORDER BY t1.update_time desc LIMIT @seed_count
select t1.*,t2.update_time as 'arrival_time' from dc_base_purchase_inbound as t1 select t1.*,t2.update_time as 'arrival_time' from dc_base_purchase_inbound as t1
left join dc_base_purchase_arrival as t2 on t1.purchase_id = t2.purchase_id and t1.bailun_sku = t2.bailun_sku left join dc_base_purchase_arrival as t2 on t1.purchase_id = t2.purchase_id and t1.bailun_sku = t2.bailun_sku
where t1.purchase_id in @purchase_ids and t1.bailun_sku = @bailun_sku where t1.purchase_id in @purchase_ids and t1.bailun_sku = @bailun_sku
and t2.update_time is not null and t2.update_time is not null and t1.update_time>t2.update_time
", parameters); ", parameters);
} }
...@@ -165,7 +165,7 @@ and t2.update_time is not null ...@@ -165,7 +165,7 @@ and t2.update_time is not null
select select
t1.bailun_sku, t1.bailun_sku,
t1.warehouse_code, t1.warehouse_code,
GROUP_CONCAT(DISTINCT t1.bailun_sku), -- GROUP_CONCAT(DISTINCT t1.bailun_sku),
t1.create_time as 'delivery_time', -- 交运时间 t1.create_time as 'delivery_time', -- 交运时间
t2.create_time as 'bale_time', -- 打包时间 t2.create_time as 'bale_time', -- 打包时间
t5.create_time as 'verify_time', -- 确认时间 t5.create_time as 'verify_time', -- 确认时间
...@@ -179,13 +179,13 @@ left join (select t2_1.transfer_order_id,max(t2_1.arrival_time) as 'create_time' ...@@ -179,13 +179,13 @@ left join (select t2_1.transfer_order_id,max(t2_1.arrival_time) as 'create_time'
left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_inbound as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t4 on t1.transfer_order_id = t4.transfer_order_id left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_inbound as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t4 on t1.transfer_order_id = t4.transfer_order_id
left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_verify as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t5 on t1.transfer_order_id = t5.transfer_order_id left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_verify as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t5 on t1.transfer_order_id = t5.transfer_order_id
left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_complete as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t6 on t1.transfer_order_id = t6.transfer_order_id left join (select t2_1.transfer_order_id,max(t2_1.create_time) as 'create_time' from dc_base_transfer_complete as t2_1 where deleted =0 GROUP BY t2_1.transfer_order_id) as t6 on t1.transfer_order_id = t6.transfer_order_id
where t1.bailun_sku=@bailun_sku and t1.warehouse_code=@warehouse_code and deleted=0 where t1.bailun_sku=@bailun_sku and t1.warehouse_code=@warehouse_code and t1.deleted=0
and t1.create_time is not null and t2.create_time is not null and t4.create_time is not null and t5.create_time is not null and t6.create_time is not null and t1.create_time is not null and t2.create_time is not null and t4.create_time is not null and t5.create_time is not null and t6.create_time is not null
and t4.create_time>='2018-01-01' and t3.create_time>='2018-01-01' and t4.create_time>='2018-01-01' and t3.create_time>='2018-01-01'
and t2.create_time < t1.create_time -- 调拨天数不为负数
and t5.create_time < t3.create_time -- 头程天数不为负数
and t3.create_time < t4.create_time -- 入库天数不为负数
"; ";
if (!string.IsNullOrWhiteSpace(type)) if (!string.IsNullOrWhiteSpace(type))
{ {
sql += " and t3.transport_type=@transport_type "; sql += " and t3.transport_type=@transport_type ";
......
...@@ -240,10 +240,10 @@ where 1=1 ...@@ -240,10 +240,10 @@ where 1=1
} }
if (!string.IsNullOrWhiteSpace(sku)) if (!string.IsNullOrWhiteSpace(sku))
{ {
sql += " and t_base.bailun_sku=@bailun_sku "; sql += " and t_base.bailun_sku in @bailun_skus ";
countSql += " and t_base.bailun_sku=@bailun_sku "; countSql += " and t_base.bailun_sku in @bailun_skus ";
parameters.Add("bailun_sku", sku); parameters.Add("bailun_skus", sku.Split(','));
} }
if (!string.IsNullOrWhiteSpace(warehouse_code)) if (!string.IsNullOrWhiteSpace(warehouse_code))
{ {
......
...@@ -14,11 +14,13 @@ namespace AutoTurnOver.DB ...@@ -14,11 +14,13 @@ namespace AutoTurnOver.DB
/// <param name="sku"></param> /// <param name="sku"></param>
/// <param name="warehouse_code"></param> /// <param name="warehouse_code"></param>
/// <returns></returns> /// <returns></returns>
public static IEnumerable<AutoTurnOver.Models.dc_auto_forecast_fluctuation> List(dc_auto_forecast_fluctuation_search_dto data, int offset, int limit, ref int total) public static IEnumerable<AutoTurnOver.Models.dc_auto_forecast_fluctuation> List(dc_auto_forecast_fluctuation_search_dto data, int offset, int limit, ref int total,string order = "", string sort = "")
{ {
var sql = @" var sql = @"
select t1.* from dc_auto_forecast_fluctuation as t1 select t1.* from dc_auto_forecast_fluctuation as t1
left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code where 1 = 1 inner JOIN dc_auto_turnover as t2 on t1.bailun_sku = t2.bailun_sku and t1.warehouse_code = t2.warehouse_code
left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code
where 1 = 1
"; ";
DynamicParameters parameters = new DynamicParameters(); DynamicParameters parameters = new DynamicParameters();
if (!string.IsNullOrWhiteSpace(data.sku)) if (!string.IsNullOrWhiteSpace(data.sku))
...@@ -62,13 +64,13 @@ left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code whe ...@@ -62,13 +64,13 @@ left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code whe
DateTime now = DateTime.Now; DateTime now = DateTime.Now;
if (data.has_overdue == true) if (data.has_overdue == true)
{ {
sql += " and t1.end_time<@end_time "; sql += " and t1.end_time<=@end_time ";
parameters.Add("end_time", now.ToString("yyyy-MM-dd 23:59:59")); parameters.Add("end_time", now.ToString("yyyy-MM-dd 23:59:59"));
} }
else else
{ {
sql += " and t1.end_time>@end_time "; sql += " and t1.end_time>=@end_time ";
parameters.Add("end_time", now.ToString("yyyy-MM-dd 23:59:59")); parameters.Add("end_time", now.ToString("yyyy-MM-dd 00:00:00"));
} }
} }
if (!string.IsNullOrWhiteSpace(data.warehousetype)) if (!string.IsNullOrWhiteSpace(data.warehousetype))
...@@ -81,7 +83,22 @@ left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code whe ...@@ -81,7 +83,22 @@ left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code whe
} }
total = _connection.ExecuteScalar<int>("select count(0) from (" + sql + ") tb1", parameters); total = _connection.ExecuteScalar<int>("select count(0) from (" + sql + ") tb1", parameters);
sql += " order by t1.start_time asc "; //设置默认排序字段
if (string.IsNullOrWhiteSpace(sort)) sort = "avg_sales_three";
if (!string.IsNullOrEmpty(sort))
{
sql += " order by " + sort;
if (!string.IsNullOrEmpty(order))
{
sql += " " + order;
}
else
{
sql += " asc";
}
}
var obj = _connection.Query<Models.dc_auto_forecast_fluctuation>(sql + " limit " + offset + "," + limit, parameters); var obj = _connection.Query<Models.dc_auto_forecast_fluctuation>(sql + " limit " + offset + "," + limit, parameters);
return obj.AsList(); return obj.AsList();
......
...@@ -72,6 +72,11 @@ namespace AutoTurnOver.Models ...@@ -72,6 +72,11 @@ namespace AutoTurnOver.Models
实际冗余 = 3, 实际冗余 = 3,
预计冗余 = 4 预计冗余 = 4
} }
/// <summary>
/// 最近3日销量
/// </summary>
public decimal avg_sales_three { get; set; }
} }
public class dc_auto_forecast_fluctuation_search_dto public class dc_auto_forecast_fluctuation_search_dto
......
...@@ -10,9 +10,9 @@ namespace AutoTurnOver.Services ...@@ -10,9 +10,9 @@ namespace AutoTurnOver.Services
/// </summary> /// </summary>
public class ExceptionReminderServices public class ExceptionReminderServices
{ {
public IEnumerable<dc_auto_forecast_fluctuation> List(dc_auto_forecast_fluctuation_search_dto data, int offset, int limit, ref int total) public IEnumerable<dc_auto_forecast_fluctuation> List(dc_auto_forecast_fluctuation_search_dto data, int offset, int limit, ref int total, string order = "", string sort = "")
{ {
return DB.dc_auto_forecast_fluctuation.List(data, offset, limit, ref total); return DB.dc_auto_forecast_fluctuation.List(data, offset, limit, ref total, order, sort);
} }
/// <summary> /// <summary>
......
...@@ -117,7 +117,7 @@ namespace AutoTurnOver.Services ...@@ -117,7 +117,7 @@ namespace AutoTurnOver.Services
var transport1List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "海运", _seed_count); var transport1List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "海运", _seed_count);
if (transport1List != null && transport1List.Count() >= 1) if (transport1List != null && transport1List.Count() >= 1)
{ {
dataWarehouse.transfer_type_1_days = (decimal)transport1List.Sum(s => (s.complete_time - s.bale_time).TotalDays) / transport1List.Count(); dataWarehouse.transfer_type_1_days = (decimal)transport1List.Sum(s => (s.inbound_time - s.bale_time).TotalDays) / transport1List.Count();
} }
...@@ -126,7 +126,7 @@ namespace AutoTurnOver.Services ...@@ -126,7 +126,7 @@ namespace AutoTurnOver.Services
var transport2List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "空运", _seed_count); var transport2List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "空运", _seed_count);
if (transport2List != null && transport2List.Count() >= 1) if (transport2List != null && transport2List.Count() >= 1)
{ {
dataWarehouse.transfer_type_2_days = (decimal)transport2List.Sum(s => (s.complete_time - s.bale_time).TotalDays) / transport2List.Count(); dataWarehouse.transfer_type_2_days = (decimal)transport2List.Sum(s => (s.inbound_time - s.bale_time).TotalDays) / transport2List.Count();
} }
//头程天数 //头程天数
......
...@@ -41,13 +41,13 @@ namespace AutoTurnOver.Services ...@@ -41,13 +41,13 @@ namespace AutoTurnOver.Services
var shortsupply = DB.dc_auto_turnover.GetAutoShortSupplyBySkuWH(sku, warehousecode); var shortsupply = DB.dc_auto_turnover.GetAutoShortSupplyBySkuWH(sku, warehousecode);
list.Add(sales != null ? sales.sales_details.ToObj<List<decimal>>().Select(s => (int)s).ToJson() : "[]"); list.Add(sales != null ? sales.sales_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]");
list.Add(sales != null ? sales.sales_explain_details.Replace("[","").Replace("]","").Split(',').ToJson() : "[]"); list.Add(sales != null ? sales.sales_explain_details.Replace("[","").Replace("]","").Split(',').ToJson() : "[]");
//list.Add(buyputin != null ? buyputin.details : "[]"); //list.Add(buyputin != null ? buyputin.details : "[]");
//list.Add(allotputin != null ? allotputin.details : "[]"); //list.Add(allotputin != null ? allotputin.details : "[]");
list.Add(sales != null ? sales.inbound_details.ToObj<List<decimal>>().Select(s => (int)s).ToJson() : "[]"); list.Add(sales != null ? sales.inbound_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]");
list.Add(sales != null ? sales.inventory_details.ToObj<List<decimal>>().Select(s => (int)s).ToJson() : "[]"); list.Add(sales != null ? sales.inventory_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]");
list.Add(sales != null ? sales.short_supply_details.ToObj<List<decimal>>().Select(s => (int)s).ToJson() : "[]"); list.Add(sales != null ? sales.short_supply_details.ToObj<List<decimal>>().Select(s => (int)Math.Ceiling(s)).ToJson() : "[]");
// 计算涉及的总天数 // 计算涉及的总天数
int count = list.Max(s => s.Split(',').Length); int count = list.Max(s => s.Split(',').Length);
......
...@@ -31,7 +31,7 @@ namespace AutoTurnOver.Controllers ...@@ -31,7 +31,7 @@ namespace AutoTurnOver.Controllers
var total = 0; var total = 0;
var service = new Services.ExceptionReminderServices(); var service = new Services.ExceptionReminderServices();
var list = service.List(m, offset, limit, ref total); var list = service.List(m, offset, limit, ref total, order, sort);
return new JsonResult(new return new JsonResult(new
{ {
......
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