Commit 73fd8395 by lizefeng

采购单重复推送bug

parent ed4d2035
...@@ -14,7 +14,7 @@ namespace AutoGeneratePurchaseAdvise ...@@ -14,7 +14,7 @@ namespace AutoGeneratePurchaseAdvise
Console.WriteLine("采购建议计算任务启动..."); Console.WriteLine("采购建议计算任务启动...");
// 创建采购计划 // 创建采购计划
//PurchaseAdviseServices.Generate(); //PurchaseAdviseServices.Generate();
//PurchaseAdviseServices.AutoPushBuySys(); PurchaseAdviseServices.AutoPushBuySys();
var builder = new HostBuilder().ConfigureServices((hostContext, services) => var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{ {
services.AddHostedService<GeneratePurchaseAdviseBackgroundService>(); services.AddHostedService<GeneratePurchaseAdviseBackgroundService>();
......
...@@ -130,7 +130,10 @@ namespace AutoTurnOver.Services ...@@ -130,7 +130,10 @@ namespace AutoTurnOver.Services
/// <summary> /// <summary>
/// 推送采购计划 /// 推送采购计划
/// </summary> /// </summary>
public static BuyOutputResult PushBuyPlan(mPlanToPurchaseDto data) /// <param name="data"></param>
/// <param name="is_skip_error">是否跳过异常</param>
/// <returns></returns>
public static BuyOutputResult PushBuyPlan(mPlanToPurchaseDto data, bool is_skip_error)
{ {
//查询采购建议明细 //查询采购建议明细
string url = ConfigHelper.GetValue("PushBuyPlan"); string url = ConfigHelper.GetValue("PushBuyPlan");
...@@ -142,33 +145,41 @@ namespace AutoTurnOver.Services ...@@ -142,33 +145,41 @@ namespace AutoTurnOver.Services
} }
if (!result.IsSuccessed) if (!result.IsSuccessed)
{ {
// 提取异常sku if (is_skip_error)
var skus = ExtractSku(result.Message);
if(skus!=null && skus.Count >= 1)
{ {
// 判断提取出来的sku 是否是我们想推送的sku ,但凡有一个不是我们想推送的,就抛异常 // 提取异常sku
if(skus.Any(s=> data.bi_buyplandetail.Any(sku => !sku.bd_sku.Equals(s, StringComparison.OrdinalIgnoreCase)))) var skus = ExtractSku(result.Message);
if (skus != null && skus.Count >= 1)
{ {
throw new Exception("采购系统异常:-------------采购系统抛出来的异常sku在源推送sku中未找到-------源异常消息: " + result.Message); // 判断提取出来的sku 是否是我们想推送的sku ,但凡有一个不是我们想推送的,就抛异常
if (skus.Any(s => data.bi_buyplandetail.Any(sku => !sku.bd_sku.Equals(s, StringComparison.OrdinalIgnoreCase))))
{
throw new Exception("采购系统异常:-------------采购系统抛出来的异常sku在源推送sku中未找到-------源异常消息: " + result.Message);
}
else
{
// 移除该sku,尝试重新推送
data.bi_buyplandetail = data.bi_buyplandetail.Where(s => !skus.Any(sku => sku.Equals(s.bd_sku))).ToList();
var re = PushBuyPlan(data, is_skip_error);
if (re.fail_skus == null)
{
re.fail_skus = new List<string>();
}
re.fail_skus.AddRange(skus);
return re;
}
} }
else else
{ {
// 移除该sku,尝试重新推送 throw new Exception("采购系统异常: " + result.Message);
data.bi_buyplandetail = data.bi_buyplandetail.Where(s => !skus.Any(sku => sku.Equals(s.bd_sku))).ToList();
var re = PushBuyPlan(data);
if (re.fail_skus == null)
{
re.fail_skus = new List<string>();
}
re.fail_skus.AddRange(skus);
return re;
} }
} }
else else
{ {
throw new Exception("采购系统异常: " + result.Message); throw new Exception("采购系统异常: " + result.Message);
} }
} }
return result; return result;
......
...@@ -103,8 +103,10 @@ namespace AutoTurnOver.Services ...@@ -103,8 +103,10 @@ namespace AutoTurnOver.Services
/// <summary> /// <summary>
/// 把最新一批的采购单推送到采购系统 /// 把最新一批的采购单推送到采购系统
/// </summary> /// </summary>
/// <param name="mainId"></param> /// <param name="datas"></param>
public static void PushBuySys(List<dc_auto_purchase_advise_detailed_dto> datas, UserData user) /// <param name="user"></param>
/// <param name="is_skip_error">是否跳过异常</param>
public static void PushBuySys(List<dc_auto_purchase_advise_detailed_dto> datas, UserData user,bool is_skip_error)
{ {
lock (_push_lock) lock (_push_lock)
{ {
...@@ -142,7 +144,7 @@ namespace AutoTurnOver.Services ...@@ -142,7 +144,7 @@ namespace AutoTurnOver.Services
sys_source = s.type sys_source = s.type
}).ToList(); }).ToList();
var result = ApiServices.PushBuyPlan(data); var result = ApiServices.PushBuyPlan(data, is_skip_error);
if (result.IsSuccessed) if (result.IsSuccessed)
{ {
//把采购数量没有填的都补上 建议采购数 //把采购数量没有填的都补上 建议采购数
...@@ -192,13 +194,11 @@ namespace AutoTurnOver.Services ...@@ -192,13 +194,11 @@ namespace AutoTurnOver.Services
List<dc_auto_purchase_advise_detailed_dto> datas = new List<dc_auto_purchase_advise_detailed_dto>(); List<dc_auto_purchase_advise_detailed_dto> datas = new List<dc_auto_purchase_advise_detailed_dto>();
try try
{ {
// 推送 张莹霞 广州01 仓的数据 // 推送 张莹霞 广州01 仓的数据
var total = 0; var total = 0;
datas.AddRange(PurchaseAdviseServices.DetailList(new dc_auto_purchase_advise_detailed_search_dto { main_id = mainID, end_date = DateTime.Now, start_date = DateTime.Now, ispush = false, purchase_user = "张莹霞", warehouse_code = "GZBLWH" }, 0, int.MaxValue, ref total)); datas.AddRange(PurchaseAdviseServices.DetailList(new dc_auto_purchase_advise_detailed_search_dto { main_id = mainID, end_date = DateTime.Now, start_date = DateTime.Now, ispush = false, purchase_user = "张莹霞", warehouse_code = "GZBLWH" }, 0, int.MaxValue, ref total));
datas.AddRange(PurchaseAdviseServices.DetailList(new dc_auto_purchase_advise_detailed_search_dto { main_id = mainID, end_date = DateTime.Now, start_date = DateTime.Now, ispush = false, purchase_user = "张莹霞1", warehouse_code = "GZBLWH" }, 0, int.MaxValue, ref total)); datas.AddRange(PurchaseAdviseServices.DetailList(new dc_auto_purchase_advise_detailed_search_dto { main_id = mainID, end_date = DateTime.Now, start_date = DateTime.Now, ispush = false, purchase_user = "张莹霞1", warehouse_code = "GZBLWH" }, 0, int.MaxValue, ref total));
PurchaseAdviseServices.PushBuySys(datas, new UserData { UserName = "admin" }); PurchaseAdviseServices.PushBuySys(datas, new UserData { UserName = "admin" },true);
} }
catch (Exception ex) catch (Exception ex)
{ {
......
...@@ -84,7 +84,7 @@ namespace AutoTurnOver.Controllers ...@@ -84,7 +84,7 @@ namespace AutoTurnOver.Controllers
}; };
var total = 0; var total = 0;
var list = PurchaseAdviseServices.DetailList(m, offset, limit, ref total, order,sort); var list = PurchaseAdviseServices.DetailList(m, offset, limit, ref total, order, sort);
return new return new
{ {
...@@ -106,7 +106,7 @@ namespace AutoTurnOver.Controllers ...@@ -106,7 +106,7 @@ namespace AutoTurnOver.Controllers
[HttpGet] [HttpGet]
public JsonResult DetailListSumFooter(int limit, int offset, int main_id, string sort, string sku, string warehousecode, public JsonResult DetailListSumFooter(int limit, int offset, int main_id, string sort, string sku, string warehousecode,
DateTime? end_date, DateTime? start_date, string warehousetype, int? warehousearea, DateTime? end_date, DateTime? start_date, string warehousetype, int? warehousearea,
bool? ispush = null, int? type = null, string supplier_name = null, string purchase_user = null, string product_inner_code = null,bool is_multiple_warehouse = false, bool? ispush = null, int? type = null, string supplier_name = null, string purchase_user = null, string product_inner_code = null, bool is_multiple_warehouse = false,
decimal? quantity_final_advise_price_max = null, decimal? quantity_final_advise_price_min = null decimal? quantity_final_advise_price_max = null, decimal? quantity_final_advise_price_min = null
) )
{ {
...@@ -188,7 +188,7 @@ namespace AutoTurnOver.Controllers ...@@ -188,7 +188,7 @@ namespace AutoTurnOver.Controllers
row["初始建议数"] = itemData.quantity_init_advise; row["初始建议数"] = itemData.quantity_init_advise;
row["系统建议数"] = itemData.quantity_final_advise; row["系统建议数"] = itemData.quantity_final_advise;
row["采购数量"] = itemData.quantity_actual; row["采购数量"] = itemData.quantity_actual;
row["是否已推送"] = itemData.ispush == 1?"是":"否"; row["是否已推送"] = itemData.ispush == 1 ? "是" : "否";
row["时间"] = itemData.create_time_str; row["时间"] = itemData.create_time_str;
row["sku"] = itemData.bailun_sku; row["sku"] = itemData.bailun_sku;
row["产品名称"] = itemData.sku_name; row["产品名称"] = itemData.sku_name;
...@@ -312,7 +312,7 @@ namespace AutoTurnOver.Controllers ...@@ -312,7 +312,7 @@ namespace AutoTurnOver.Controllers
var total = 0; var total = 0;
var list = PurchaseAdviseServices.DetailList(m, 0, int.MaxValue, ref total); var list = PurchaseAdviseServices.DetailList(m, 0, int.MaxValue, ref total);
PurchaseAdviseServices.PushBuySys(list,AutoUtility.GetUser()); PurchaseAdviseServices.PushBuySys(list, AutoUtility.GetUser(), false);
return new JsonResult(new return new JsonResult(new
...@@ -382,7 +382,7 @@ namespace AutoTurnOver.Controllers ...@@ -382,7 +382,7 @@ namespace AutoTurnOver.Controllers
} }
} }
} }
} }
\ No newline at end of file
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