Commit 90b53348 by lizefeng

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

parent c7aca1b9
......@@ -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
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
and t2.update_time is not null
and t2.update_time is not null and t1.update_time>t2.update_time
", parameters);
}
......@@ -165,7 +165,7 @@ and t2.update_time is not null
select
t1.bailun_sku,
t1.warehouse_code,
GROUP_CONCAT(DISTINCT t1.bailun_sku),
-- GROUP_CONCAT(DISTINCT t1.bailun_sku),
t1.create_time as 'delivery_time', -- 交运时间
t2.create_time as 'bale_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'
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_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 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))
{
sql += " and t3.transport_type=@transport_type ";
......
......@@ -240,10 +240,10 @@ where 1=1
}
if (!string.IsNullOrWhiteSpace(sku))
{
sql += " and t_base.bailun_sku=@bailun_sku ";
countSql += " and t_base.bailun_sku=@bailun_sku ";
sql += " and t_base.bailun_sku in @bailun_skus ";
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))
{
......
......@@ -14,11 +14,13 @@ namespace AutoTurnOver.DB
/// <param name="sku"></param>
/// <param name="warehouse_code"></param>
/// <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 = @"
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();
if (!string.IsNullOrWhiteSpace(data.sku))
......@@ -62,13 +64,13 @@ left join dc_base_warehouse as dbw on t1.warehouse_code = dbw.warehouse_code whe
DateTime now = DateTime.Now;
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"));
}
else
{
sql += " and t1.end_time>@end_time ";
parameters.Add("end_time", now.ToString("yyyy-MM-dd 23:59:59"));
sql += " and t1.end_time>=@end_time ";
parameters.Add("end_time", now.ToString("yyyy-MM-dd 00:00:00"));
}
}
if (!string.IsNullOrWhiteSpace(data.warehousetype))
......@@ -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);
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);
return obj.AsList();
......
......@@ -72,6 +72,11 @@ namespace AutoTurnOver.Models
实际冗余 = 3,
预计冗余 = 4
}
/// <summary>
/// 最近3日销量
/// </summary>
public decimal avg_sales_three { get; set; }
}
public class dc_auto_forecast_fluctuation_search_dto
......
......@@ -10,9 +10,9 @@ namespace AutoTurnOver.Services
/// </summary>
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>
......
......@@ -117,7 +117,7 @@ namespace AutoTurnOver.Services
var transport1List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "海运", _seed_count);
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
var transport2List = AveragePurchase.GetTransportList(skuItem.bailun_sku, skuItem.warehouse_code, "空运", _seed_count);
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
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(buyputin != null ? buyputin.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.inventory_details.ToObj<List<decimal>>().Select(s => (int)s).ToJson() : "[]");
list.Add(sales != null ? sales.short_supply_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)Math.Ceiling(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);
......
......@@ -31,7 +31,7 @@ namespace AutoTurnOver.Controllers
var total = 0;
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
{
......
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