Commit d60e7aed by lizefeng

采购单推送失败时,记录异常信息

parent a948a216
......@@ -135,54 +135,63 @@ namespace AutoTurnOver.Services
/// <returns></returns>
public static BuyOutputResult PushBuyPlan(mPlanToPurchaseDto data, bool is_skip_error)
{
//查询采购建议明细
string url = ConfigHelper.GetValue("PushBuyPlan");
string resultStr = HttpHelper.Request(url, RequestType.POST, "obj=" + WebUtility.UrlDecode(data.ToJson()), timeout: 1000 * 60 * 60 * 24);
var result = resultStr.ToObj<BuyOutputResult>();
if (result == null)
{
throw new Exception("采购系统异常: 推送失败,采购系统无响应");
}
if (!result.IsSuccessed)
try
{
if (is_skip_error)
//查询采购建议明细
string url = ConfigHelper.GetValue("PushBuyPlan");
string resultStr = HttpHelper.Request(url, RequestType.POST, "obj=" + WebUtility.UrlDecode(data.ToJson()), timeout: 1000 * 60 * 60 * 24);
var result = resultStr.ToObj<BuyOutputResult>();
if (result == null)
{
// 提取异常sku
var skus = ExtractSku(result.Message);
if (skus != null && skus.Count >= 1)
throw new Exception("采购系统异常: 推送失败,采购系统无响应");
}
if (!result.IsSuccessed)
{
if (is_skip_error)
{
// 判断提取出来的sku 是否是我们想推送的sku ,但凡有一个不是我们想推送的,就抛异常
if (skus.Any(s => !data.bi_buyplandetail.Any(sku => sku.bd_sku.Equals(s, StringComparison.OrdinalIgnoreCase))))
// 提取异常sku
var skus = ExtractSku(result.Message);
if (skus != null && skus.Count >= 1)
{
throw new Exception($"采购系统异常:-------------采购系统抛出来的异常sku {skus.ToJson()} 在源推送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 {skus.ToJson()} 在源推送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
{
// 移除该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;
throw new Exception("采购系统异常: " + result.Message);
}
}
else
{
throw new Exception("采购系统异常: " + result.Message);
}
}
else
{
throw new Exception("采购系统异常: " + result.Message);
}
}
return result;
}
catch (Exception ex)
{
throw new Exception(" 采购推送操作异常: "+ ex.Message) ;
}
return result;
}
/// <summary>
......
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