Commit 73fd8395 by lizefeng

采购单重复推送bug

parent ed4d2035
......@@ -14,7 +14,7 @@ namespace AutoGeneratePurchaseAdvise
Console.WriteLine("采购建议计算任务启动...");
// 创建采购计划
//PurchaseAdviseServices.Generate();
//PurchaseAdviseServices.AutoPushBuySys();
PurchaseAdviseServices.AutoPushBuySys();
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<GeneratePurchaseAdviseBackgroundService>();
......
......@@ -130,7 +130,10 @@ namespace AutoTurnOver.Services
/// <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");
......@@ -142,12 +145,14 @@ namespace AutoTurnOver.Services
}
if (!result.IsSuccessed)
{
if (is_skip_error)
{
// 提取异常sku
var skus = ExtractSku(result.Message);
if(skus!=null && skus.Count >= 1)
if (skus != null && skus.Count >= 1)
{
// 判断提取出来的sku 是否是我们想推送的sku ,但凡有一个不是我们想推送的,就抛异常
if(skus.Any(s=> data.bi_buyplandetail.Any(sku => !sku.bd_sku.Equals(s, StringComparison.OrdinalIgnoreCase))))
if (skus.Any(s => data.bi_buyplandetail.Any(sku => !sku.bd_sku.Equals(s, StringComparison.OrdinalIgnoreCase))))
{
throw new Exception("采购系统异常:-------------采购系统抛出来的异常sku在源推送sku中未找到-------源异常消息: " + result.Message);
}
......@@ -155,7 +160,7 @@ namespace AutoTurnOver.Services
{
// 移除该sku,尝试重新推送
data.bi_buyplandetail = data.bi_buyplandetail.Where(s => !skus.Any(sku => sku.Equals(s.bd_sku))).ToList();
var re = PushBuyPlan(data);
var re = PushBuyPlan(data, is_skip_error);
if (re.fail_skus == null)
{
re.fail_skus = new List<string>();
......@@ -168,6 +173,12 @@ namespace AutoTurnOver.Services
{
throw new Exception("采购系统异常: " + result.Message);
}
}
else
{
throw new Exception("采购系统异常: " + result.Message);
}
}
......
......@@ -103,8 +103,10 @@ namespace AutoTurnOver.Services
/// <summary>
/// 把最新一批的采购单推送到采购系统
/// </summary>
/// <param name="mainId"></param>
public static void PushBuySys(List<dc_auto_purchase_advise_detailed_dto> datas, UserData user)
/// <param name="datas"></param>
/// <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)
{
......@@ -142,7 +144,7 @@ namespace AutoTurnOver.Services
sys_source = s.type
}).ToList();
var result = ApiServices.PushBuyPlan(data);
var result = ApiServices.PushBuyPlan(data, is_skip_error);
if (result.IsSuccessed)
{
//把采购数量没有填的都补上 建议采购数
......@@ -192,13 +194,11 @@ namespace AutoTurnOver.Services
List<dc_auto_purchase_advise_detailed_dto> datas = new List<dc_auto_purchase_advise_detailed_dto>();
try
{
// 推送 张莹霞 广州01 仓的数据
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 = "张莹霞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)
{
......
......@@ -84,7 +84,7 @@ namespace AutoTurnOver.Controllers
};
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
{
......@@ -106,7 +106,7 @@ namespace AutoTurnOver.Controllers
[HttpGet]
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,
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
)
{
......@@ -188,7 +188,7 @@ namespace AutoTurnOver.Controllers
row["初始建议数"] = itemData.quantity_init_advise;
row["系统建议数"] = itemData.quantity_final_advise;
row["采购数量"] = itemData.quantity_actual;
row["是否已推送"] = itemData.ispush == 1?"是":"否";
row["是否已推送"] = itemData.ispush == 1 ? "是" : "否";
row["时间"] = itemData.create_time_str;
row["sku"] = itemData.bailun_sku;
row["产品名称"] = itemData.sku_name;
......@@ -312,7 +312,7 @@ namespace AutoTurnOver.Controllers
var total = 0;
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
......
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