Commit c4b9b8b2 by lizefeng

5YG11370AC769070C 这个仓库在CRM建不了售后

5HG99016FE6513116 通途没有抓取到订单,crm是不是也建不了售后,但是这个单又在百伦oms搜索到
crm 在获取到百伦oms的订单(目前已切换的仓库)没有发货,需要判断一下环球是否发货了
201902100014 套装发托盘异常
P1812260306  P1901050148 发货异常
parent 90b53348
......@@ -50,7 +50,7 @@ namespace AutoTurnOver.DB
/// <returns></returns>
public static List<mwarehousetype> ListWareHouseType()
{
var sql = "select hq_type as name from dc_base_warehouse GROUP BY hq_type";
var sql = "select hq_type as name from dc_base_warehouse where hq_type!='' and hq_type is not null GROUP BY hq_type";
return _connection.Query<mwarehousetype>(sql).AsList();
}
......
......@@ -148,6 +148,50 @@ WHERE
return _connection.Query<dc_transfer_daily_dto>(sql, parameters);
}
/// <summary>
/// 指定日期到货的在途数据
/// </summary>
/// <param name="sku"></param>
/// <param name="warehouse_code"></param>
/// <param name="index">dc_auto_inbound details 字段中的索引 索引</param>
/// <returns></returns>
public static List<dc_estimated_arrival_dto> EstimatedArrivalList(string sku, string warehouse_code,int index)
{
var inbound_data = _connection.QueryFirstOrDefault<dc_auto_inbound>(" select * from dc_auto_inbound where bailun_sku=@bailun_sku and warehouse_code=@warehouse_code ",new { bailun_sku=sku, warehouse_code = warehouse_code });
if (inbound_data == null) return new List<dc_estimated_arrival_dto>();
else
{
// 解析 relation 字段
var relation = inbound_data.relation;
if (string.IsNullOrWhiteSpace(relation))
{
return new List<dc_estimated_arrival_dto>() ;
}
else
{
var nos = relation.Replace("[","").Replace("]","").Split(',')[index];
var datas = new List<dc_estimated_arrival_dto>();
if (nos != "N/A")
{
foreach (var no_str in nos.Split('*'))
{
var no_datas = no_str.Split('_');
dc_estimated_arrival_dto data = new dc_estimated_arrival_dto();
data.type = no_datas[0].Contains("p") ? 1 : no_datas[0].Contains("t") ? 2 : 0;
data.no = no_datas[1];
data.quantity = decimal.Parse(no_datas[2]);
datas.Add(data);
}
return datas;
}
return datas;
}
}
}
/// <summary>
/// 查询时实库存数据
......@@ -155,9 +199,63 @@ WHERE
/// <param name="sku">sku</param>
/// <param name="warehouse_code">仓库编码</param>
/// <returns></returns>
public static IEnumerable<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea)
public static List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea,bool isSum = false)
{
var sql = @"
var sql = "";
if (isSum)
{
sql = @"
select
sum(t1.quantity_reservation) as 'quantity_reservation',
sum(t1.quantity_transport) as 'quantity_transport',
sum(t1.quantity_transfer) as 'quantity_transfer',
sum(t1.quantity_freeze) as 'quantity_freeze',
sum(t1.quantity_supplier) as 'quantity_supplier',
sum(t1.quantity_presell) as 'quantity_presell',
sum(t1.quantity_defective) as 'quantity_defective',
sum(t1.quantity_transit) as 'quantity_transit',
sum(t1.wait_check) as 'wait_check',
sum(t1.wait_putaway) as 'wait_putaway',
sum(t1.usable_stock) as 'usable_stock',
sum(t1.usable_sales) as 'usable_sales',
sum(t1.usable_sales_private) as 'usable_sales_private',
sum(t1.usable_sales_share) as 'usable_sales_share',
sum(t1.in_warehouse_share) as 'in_warehouse_share',
sum(t1.in_warehouse_private) as 'in_warehouse_private',
sum(t1.in_warehouse) as 'in_warehouse',
sum(t1.occupy_stock_share) as 'occupy_stock_share',
sum(t1.occupy_stock_private) as 'occupy_stock_private',
sum(t1.occupy_stock) as 'occupy_stock',
sum(t1.occupy_activity) as 'occupy_activity',
sum(t1.occupy_order_private) as 'occupy_order_private',
sum(t1.occupy_order_share) as 'occupy_order_share',
sum(t1.occupy_order) as 'occupy_order',
sum(t4.quantity_purchase) as 'purchase_daily_quantity',
sum(t4.quantity_purchase) as 'realtime_quantity_purchase',
sum(t4.quantity_transfer) as 'realtime_quantity_transfer'
from
(SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_mid_transit AS t1
union
SELECT
t1.warehouse_code,t1.bailun_sku
FROM
dc_base_stock AS t1
) as t_base
left join dc_base_stock as t1 on t_base.bailun_sku = t1.bailun_sku and t_base.warehouse_code = t1.warehouse_code
left join dc_base_sku as t3 on t_base.bailun_sku = t3.bailun_sku
left join dc_base_warehouse as dbw on t_base.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t_base.bailun_sku = t4.bailun_sku and t_base.warehouse_code = t4.warehouse_code
where 1=1";
}
else
{
sql = @"
select
(case when dbw.hq_type='fba仓' then dbw.bailun_account else dbw.warehouse_name end) as warehouse_name,
t3.sku_title_cn as 'sku_name',
......@@ -185,6 +283,8 @@ left join dc_base_warehouse as dbw on t_base.warehouse_code = dbw.warehouse_code
left join dc_mid_transit as t4 on t_base.bailun_sku = t4.bailun_sku and t_base.warehouse_code = t4.warehouse_code
where 1=1
";
}
var countSql = @"
select
......@@ -252,9 +352,16 @@ where 1=1
parameters.Add("warehouse_code", warehouse_code);
}
var obj = _connection.Query<dc_base_stock_dto>(sql + " limit " + offset + "," + limit, parameters,buffered:false,commandTimeout:0);
total = _connection.QueryFirst<int>(countSql, parameters);
if (isSum)
{
total = 0;
}
else
{
total = _connection.QueryFirst<int>(countSql, parameters);
sql += " limit " + offset + "," + limit;
}
var obj = _connection.Query<dc_base_stock_dto>(sql, parameters,buffered:false,commandTimeout:0);
return obj.AsList();
}
......
......@@ -36,7 +36,7 @@ namespace AutoTurnOver.DB
{
_connection.Execute(@"
INSERT into dc_auto_purchase_advise_detailed(`bailun_sku`,`warehouse_code`,`quantity_init_advise`,`quantity_actual`,`main_id`,
`forecast_formula`,`fit_forecast_formula`,`turnover_days`,`supplier_delivery`,`inspection_delivery`,`transfer_delivery`,`sales_upper_limit`,`ispush`)
`forecast_formula`,`fit_forecast_formula`,`turnover_days`,`supplier_delivery`,`inspection_delivery`,`transfer_delivery`,`sales_upper_limit`,`ispush`,`is_outofstock`)
(
select
t1.bailun_sku,
......@@ -51,11 +51,12 @@ INSERT into dc_auto_purchase_advise_detailed(`bailun_sku`,`warehouse_code`,`quan
t1.inspection_delivery,
t1.transfer_delivery,
t1.sales_upper_limit,
0 as 'ispush'
0 as 'ispush',
t1.status as 'is_outofstock'
from dc_auto_turnover as t1
left join dc_auto_sales as t2 on t1.bailun_sku = t2.bailun_sku and t1.warehouse_code = t2.warehouse_code
left join dc_auto_config_sku_warehouse as t5 on t1.bailun_sku = t5.bailun_sku and t1.warehouse_code = t5.warehouse_code
where t1.quantity_final_advise>0 and ( t5.`status`=0 or t5.`status` is null )
where (t1.history_fourteenday_sales>0 or t1.quantity_out_stock>0 ) and t1.quantity_final_advise>0 and ( t5.`status`=0 or t5.`status` is null )
)
", new { main_id = mainID });
}
......@@ -86,6 +87,14 @@ INSERT into dc_auto_purchase_advise_detailed(`bailun_sku`,`warehouse_code`,`quan
{
sql += $" and t1.push_time is null ";
}
if (m.is_outofstock != null)
{
sql += $" and t1.is_outofstock = " + (m.is_outofstock == true ? 1 : 0);
}
if (m.start_date != null)
{
sql += " and t1.create_time >= @start_date ";
......
......@@ -17,6 +17,11 @@ namespace AutoTurnOver.Models.ApiDto
public int bp_sendtype { get; set; }
/// <summary>
/// 是否预计缺货 1 = 预计缺货
/// </summary>
public int sys_source { get; set; }
/// <summary>
/// 采购计划单sku
/// </summary>
public List<bi_buyplandetail> bi_buyplandetail { get; set; }
......
......@@ -95,6 +95,11 @@ namespace AutoTurnOver.Models
/// 是否推送
/// </summary>
public int ispush { get; set; }
/// <summary>
/// 是否预计缺货
/// </summary>
public int is_outofstock { get; set; }
}
public class dc_auto_purchase_advise_detailed_buy_dto: dc_auto_purchase_advise_detailed
......@@ -133,6 +138,11 @@ namespace AutoTurnOver.Models
/// 是否推送
/// </summary>
public bool? has_push { get; set; }
/// <summary>
/// 预计是否断货
/// </summary>
public bool? is_outofstock { get; set; }
}
public class dc_auto_purchase_advise_detailed_search_dto
{
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models
{
/// <summary>
/// 预计到货
/// </summary>
public class dc_estimated_arrival_dto
{
/// <summary>
/// 单号
/// </summary>
public string no { get; set; }
/// <summary>
/// 类型
/// </summary>
public int type { get; set; }
/// <summary>
/// 类型
/// </summary>
public string type_str
{
get
{
switch (type)
{
case 1: return "采购单";
case 2: return "调拨单";
default:return "未知";
}
}
}
/// <summary>
/// 预计到货数量
/// </summary>
public decimal quantity { get; set; }
}
}
......@@ -33,11 +33,23 @@ namespace AutoTurnOver.Services
}
public IEnumerable<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea)
public List<dc_base_stock_dto> RealtimeList(string sku, string warehouse_code, string product_inner_code, string sku_title_cn, int offset, int limit, ref int total, string warehousetype, int? warehousearea,bool isSum = false)
{
return DB.daily.RealtimeList(sku, warehouse_code,product_inner_code,sku_title_cn,offset, limit, ref total,warehousetype,warehousearea);
return DB.daily.RealtimeList(sku, warehouse_code,product_inner_code,sku_title_cn,offset, limit, ref total,warehousetype,warehousearea, isSum);
}
/// <summary>
/// 在途数据
/// </summary>
/// <param name="sku"></param>
/// <param name="warehouse_code"></param>
/// <param name="index"></param>
/// <returns></returns>
public List<dc_estimated_arrival_dto> EstimatedArrivalList(string sku, string warehouse_code, int index)
{
return DB.daily.EstimatedArrivalList(sku, warehouse_code, index);
}
}
}
......@@ -105,7 +105,7 @@ namespace AutoTurnOver.Services
/// 把最新一批的采购单推送到采购系统
/// </summary>
/// <param name="mainId"></param>
public static void PushBuySys(List<dc_auto_purchase_advise_detailed_dto> datas)
public static void PushBuySys(List<dc_auto_purchase_advise_detailed_dto> datas,int is_outofstock)
{
MySqlConnection conn = connectionHelper._connection;
conn.Open();
......@@ -129,6 +129,7 @@ namespace AutoTurnOver.Services
{
bp_sendtype = 1,
bp_sendfromCode = item.Key,
sys_source = is_outofstock,
bi_buyplandetail = new List<bi_buyplandetail>()
};
......
......@@ -5,6 +5,7 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using AutoTurnOver.Common;
using AutoTurnOver.Models;
using AutoTurnOver.Services;
using Microsoft.AspNetCore.Mvc;
......@@ -74,6 +75,40 @@ namespace AutoTurnOver.Controllers
});
}
public JsonResult RealtimeListSumFooter(string sku, string warehousecode, string product_inner_code, string sku_title_cn, int offset, int limit, string order, string sort, string warehousetype, int? warehousearea)
{
var services = new DailyServices();
var total = 0;
var list = services.RealtimeList(sku, warehousecode, product_inner_code, sku_title_cn, offset, limit, ref total, warehousetype, warehousearea,true);
return new JsonResult(list == null || list.Count <= 0 ? new dc_base_stock_dto() : list[0]);
}
/// <summary>
/// 预计到货
/// </summary>
/// <param name="sku"></param>
/// <param name="warehousecode"></param>
/// <param name="offset"></param>
/// <param name="limit"></param>
/// <returns></returns>
public JsonResult EstimatedArrivalList(string sku, string warehousecode, int index)
{
var services = new DailyServices();
var total = 0;
var list = services.EstimatedArrivalList(sku, warehousecode, index);
return new JsonResult(new
{
rows = list,
total = total,
});
}
/// <summary>
/// 导出实时库存
/// </summary>
......
......@@ -28,13 +28,14 @@ namespace AutoTurnOver.Controllers
/// <param name="start_date"></param>
/// <returns></returns>
[HttpGet]
public JsonResult List(int limit, int offset, bool? has_push, string sort, DateTime? end_date, DateTime? start_date)
public JsonResult List(int limit, int offset, bool? has_push, string sort, DateTime? end_date, DateTime? start_date, bool? is_outofstock)
{
var m = new dc_auto_purchase_advise_search_dto
{
end_date = end_date,
has_push = has_push,
start_date = start_date
start_date = start_date,
is_outofstock = is_outofstock
};
var total = 0;
......@@ -58,7 +59,7 @@ namespace AutoTurnOver.Controllers
/// <param name="start_date"></param>
/// <returns></returns>
[HttpGet]
public string DetailList(int limit, int offset, int main_id, string sort, string sku, string warehousecode, DateTime? end_date, DateTime? start_date, string warehousetype, int? warehousearea,bool? ispush = null)
public string DetailList(int limit, int offset, int main_id, string sort, string sku, string warehousecode, DateTime? end_date, DateTime? start_date, string warehousetype, int? warehousearea, bool? ispush = null)
{
var m = new dc_auto_purchase_advise_detailed_search_dto
{
......@@ -68,7 +69,7 @@ namespace AutoTurnOver.Controllers
end_date = end_date,
start_date = start_date,
warehousearea = warehousearea,
warehousetype = warehousetype ,
warehousetype = warehousetype,
ispush = ispush
};
......@@ -106,7 +107,7 @@ namespace AutoTurnOver.Controllers
var list = PurchaseAdviseServices.DetailList(m, 0, int.MaxValue, ref total);
DataTable table = new DataTable();
string[] cols = new string[] { "时间", "sku", "产品名称", "仓库编码","仓库名称", "建议采购数量","实际下单数量" };
string[] cols = new string[] { "时间", "sku", "产品名称", "仓库编码", "仓库名称", "建议采购数量", "实际下单数量" };
foreach (var item in cols)
{
table.Columns.Add(item);
......@@ -144,12 +145,13 @@ namespace AutoTurnOver.Controllers
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult SetQuantityActual(int id,int quantity_actual)
public JsonResult SetQuantityActual(int id, int quantity_actual)
{
try
{
PurchaseAdviseServices.SetQuantityActual(id, quantity_actual);
return new JsonResult(new {
return new JsonResult(new
{
success = true
});
}
......@@ -186,7 +188,15 @@ namespace AutoTurnOver.Controllers
var total = 0;
var list = PurchaseAdviseServices.DetailList(m, 0, int.MaxValue, ref total);
PurchaseAdviseServices.PushBuySys(list);
if(list.Any(s => s.is_outofstock == 1))
{
PurchaseAdviseServices.PushBuySys(list.Where(s => s.is_outofstock == 1).ToList(),1);
}
if(list.Any(s => s.is_outofstock == 0))
{
PurchaseAdviseServices.PushBuySys(list.Where(s => s.is_outofstock == 0).ToList(),0);
}
return new JsonResult(new
{
success = true
......@@ -207,7 +217,7 @@ namespace AutoTurnOver.Controllers
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult DetailInfo(string sku, string warehousecode,DateTime dateTime)
public JsonResult DetailInfo(string sku, string warehousecode, DateTime dateTime)
{
try
{
......@@ -216,7 +226,7 @@ namespace AutoTurnOver.Controllers
success = true,
data = PurchaseAdviseServices.DetailInfo(sku, warehousecode, dateTime)
});
}
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