diff --git a/BBWYB.Server.Business/KuaiDi100Manager.cs b/BBWYB.Server.Business/KuaiDi100Manager.cs index 6f9521e..8634475 100644 --- a/BBWYB.Server.Business/KuaiDi100Manager.cs +++ b/BBWYB.Server.Business/KuaiDi100Manager.cs @@ -9,42 +9,32 @@ namespace BBWYB.Server.Business public class KuaiDi100Manager : IDenpendency { private RestApiService restApiService; - private ExpressCompanyNameConverter expressCompanyNameConverter; public IList KuaiDi100PushStateList_ZaiTu = new List() { 0, 1001, 1002, 1003 }; public IList KuaiDi100PushStateList_LanShou = new List() { 1, 101, 102, 103 }; public IList KuaiDi100PushStateList_QianShou = new List() { 3, 301, 302, 303, 304 }; public IList KuaiDi100PushStateList_PaiJian = new List() { 5, 501 }; - public KuaiDi100Manager(RestApiService restApiService, ExpressCompanyNameConverter expressCompanyNameConverter) + public KuaiDi100Manager(RestApiService restApiService) { this.restApiService = restApiService; - this.expressCompanyNameConverter = expressCompanyNameConverter; } - private void ThrowSubscribeError(string waybillno, string sourceExpressName, string kuaidi100CompanyCode, string error) + private void ThrowSubscribeError(string waybillno, string kuaidi100CompanyCode, string error) { - throw new Exception($"订阅快递100失败 waybillno:{waybillno} sourceExpressName:{sourceExpressName} kuaidi100CompanyCode:{kuaidi100CompanyCode} error:{error}"); + throw new Exception($"订阅快递100失败 waybillno:{waybillno} kuaidi100CompanyCode:{kuaidi100CompanyCode} error:{error}"); } /// /// 订阅快递100 /// /// - /// /// /// - public void SubscribeKuaiDi100(string waybillno, string sourceExpressName, string kuaidi100CompanyCode, string callbackUrl) + public void SubscribeKuaiDi100(string waybillno, string kuaidi100CompanyCode, string callbackUrl) { - if (string.IsNullOrEmpty(sourceExpressName) && string.IsNullOrEmpty(kuaidi100CompanyCode)) - ThrowSubscribeError(waybillno, sourceExpressName, kuaidi100CompanyCode, "原始快递公司名称和快递100公司编码必须任意一个有值"); - if (string.IsNullOrEmpty(kuaidi100CompanyCode)) - { - kuaidi100CompanyCode = expressCompanyNameConverter.ConverterToKuaiDi100CompanyCode(sourceExpressName); - if (string.IsNullOrEmpty(kuaidi100CompanyCode)) - ThrowSubscribeError(waybillno, sourceExpressName, kuaidi100CompanyCode, "无翻译结果"); - } + ThrowSubscribeError(waybillno, kuaidi100CompanyCode, "缺少快递100公司编码"); var paramStr = JsonConvert.SerializeObject(new { @@ -60,10 +50,10 @@ namespace BBWYB.Server.Business }); var subscribeResult = restApiService.SendRequest("https://poll.kuaidi100.com", "poll", $"schema=json¶m={paramStr}", null, HttpMethod.Post, RestApiService.ContentType_Form); if (subscribeResult.StatusCode != System.Net.HttpStatusCode.OK) - ThrowSubscribeError(waybillno, sourceExpressName, kuaidi100CompanyCode, subscribeResult.Content); + ThrowSubscribeError(waybillno, kuaidi100CompanyCode, subscribeResult.Content); var subscribeResponse = JsonConvert.DeserializeObject(subscribeResult.Content); if (!subscribeResponse.result) - ThrowSubscribeError(waybillno, sourceExpressName, kuaidi100CompanyCode, subscribeResponse.message); + ThrowSubscribeError(waybillno, kuaidi100CompanyCode, subscribeResponse.message); } /// diff --git a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs index 4ff8895..6e4ccd5 100644 --- a/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs +++ b/BBWYB.Server.Business/PurchaseOrder/PurchaseOrderBusiness.cs @@ -923,7 +923,7 @@ namespace BBWYB.Server.Business #region 订阅快递100 if (!isExists) - kuaiDi100Manager.SubscribeKuaiDi100(request.WaybillNo, string.Empty, request.ExpressId, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); + kuaiDi100Manager.SubscribeKuaiDi100(request.WaybillNo, request.ExpressId, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); #endregion #region 创建快递单 @@ -1226,9 +1226,15 @@ namespace BBWYB.Server.Business if (purchaseExpressOrderList.Any(po => po.WaybillNo == logisticsInfo.WayBillNo)) continue; + #region 快递1688物流公司为快递100物流公司 + var kuaidi100Company = expressCompanyNameConverter.ConverterToKuaiDi100Company(logisticsInfo.ExpressName); + if (kuaidi100Company == null) + throw new Exception($"快递100公司翻译失败 SourceExpressName:{logisticsInfo.ExpressName}"); + #endregion + #region 订阅快递100 currentProgress = "订阅快递100"; - kuaiDi100Manager.SubscribeKuaiDi100(logisticsInfo.WayBillNo, logisticsInfo.ExpressName, string.Empty, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); + kuaiDi100Manager.SubscribeKuaiDi100(logisticsInfo.WayBillNo, kuaidi100Company.TargetCode, "http://bbwyb.qiyue666.com/api/purchaseorder/kuaidi100publish"); #endregion #region 创建快递单 @@ -1241,6 +1247,8 @@ namespace BBWYB.Server.Business SourceExpressId = logisticsInfo.ExpressId, SourceExpressName = logisticsInfo.ExpressName, WaybillNo = logisticsInfo.WayBillNo, + TargetExpressId = kuaidi100Company.TargetCode, + TargetExpressName = kuaidi100Company.TargetName, ExpressState = kuaiDi100Manager.GetExpressState(1) //快递100发货状态值 默认揽收 }; insertPurchaseExpressOrderList.Add(purchaseExpressOrder); diff --git a/SDKAdapter/ExpressCompanyNameConverter.cs b/SDKAdapter/ExpressCompanyNameConverter.cs index 91e169f..5ac869f 100644 --- a/SDKAdapter/ExpressCompanyNameConverter.cs +++ b/SDKAdapter/ExpressCompanyNameConverter.cs @@ -155,12 +155,12 @@ namespace SDKAdapter return expressCompany; } - public string ConverterToKuaiDi100CompanyCode(string sourceName) + public LogisticsCompanyRelationship ConverterToKuaiDi100Company(string sourceName) { var key = "1688_kuaidi100"; if (!converterDictionary.TryGetValue(key, out IList companyRelationShips)) - return string.Empty; - return companyRelationShips.FirstOrDefault(l => l.SourceName == sourceName)?.TargetCode; + return null; + return companyRelationShips.FirstOrDefault(l => l.SourceName == sourceName); } }