public static void Run() { var list = WayBillController.GetSubmitWayBillNumber(); if (list.Any()) { var preAlertBatchNo = WayBillController.GetSequenceNumber();//生成批次号 foreach (var wayBillNumber in list) { var model = WayBillController.GetWayBillInfoModel(wayBillNumber); if (model != null && !model.WayBillNumber.IsNullOrWhiteSpace()) { model.PreAlertBatchNo = preAlertBatchNo; var result = B2CController.SubmitB2C(model); if (result.Status > 1) { WayBillController.UpdateB2CPreAlertLogs(result); } } else { Log.Error("获取运单号为{0}的数据失败!".FormatWith(wayBillNumber)); } } } }
public static void UpdatePrice() { var datenow = DateTime.Now; var lastupdated = WayBillController.GetLastUpdateTime(path); var shippinglist = FreightController.GetShippingMethodList(DateTime.Parse(lastupdated)); if (shippinglist != null && shippinglist.List != null && shippinglist.List.Count > 0) { Log.Info("开始同步运输方式!"); shippinglist.List.ForEach(p => WayBillController.SynchronousShippingMethod(p.ShippingMethodId, p.ShippingMethodTypeId, p.Enabled)); Log.Info("完成同步运输方式!"); } var list = WayBillController.GetUpdatePriceWayBillList(lastupdated); //更新最够更新时间 LogTime.WriteFile(path, datenow.ToString("yyyy-MM-dd HH:mm:ss")); Log.Info(datenow.ToString("yyyy-MM-dd HH:mm:ss")); if (list == null || list.Count <= 0) { return; } if (ismultithreading.ToLowerInvariant() == "no") { //单线程 foreach (var venderPackageModel in list) { if (!WayBillController.UpdatePriceWayBill(FreightController.PostVenderPrice(venderPackageModel), venderPackageModel.WayBillNumber)) { Log.Error(string.Format("运单号:{0}更新错误!", venderPackageModel.WayBillNumber)); } } } else if (ismultithreading.ToLowerInvariant() == "yes") { //多线程 if (minThreads > maxThreads) { maxThreads = minThreads; } var threadPool = new SmartThreadPool { MaxThreads = maxThreads < 1?1:maxThreads, MinThreads = minThreads < 1?1:minThreads }; var pendingWorkItems = new IWorkItemResult[list.Count]; for (int i = 0; i < list.Count; i++) { pendingWorkItems[i] = threadPool.QueueWorkItem(new WorkItemCallback(MUpdatePrice), list[i]); } if (SmartThreadPool.WaitAll(pendingWorkItems)) { threadPool.Shutdown(); } } }
public static object MUpdatePrice(object value) { var model = value as WayBillPriceModel; if (!WayBillController.UpdatePriceWayBill(FreightController.GetFreightPrice(model), model.WayBillNumber, model.ReceivingExpenseID)) { Log.Error(string.Format("运单号:{0}更新错误!", model.WayBillNumber)); } return(true); }
public static object MUpdatePrice(object value) { var model = value as VenderInfoPackageRequest; if (!WayBillController.UpdatePriceWayBill(FreightController.PostVenderPrice(model), model.WayBillNumber)) { Log.Error(string.Format("运单号:{0}更新错误!", model.WayBillNumber)); } return(true); }
public static void SubmitSfOrder() { Log.Info("开始预报荷兰小包"); //预报荷兰小包 var list = WayBillController.GetNlPostWayBillNumberList(); if (list.Any()) { const int pagesize = 50;//分批查询 int pageindex = 1; do { var waybillList = WayBillController.GetWayBillSfModelList(list.Skip((pageindex - 1) * pagesize).Take(pagesize).ToList()); if (waybillList.Any()) { foreach (var wayBillSfModel in waybillList) { try { if (!wayBillSfModel.ApplicationInfo.Any()) { WayBillController.SubmitFailure(wayBillSfModel.WayBillNumber, "没有申报信息"); continue; } var parcel = SFController.NlPost(wayBillSfModel); if (parcel != null && !parcel.WayBillNumber.IsNullOrWhiteSpace() && !parcel.MailNo.IsNullOrWhiteSpace()) { if (SFController.NlPostConfirm(parcel.WayBillNumber, parcel.MailNo)) { //记录成功 WayBillController.SubmitSuccess(parcel); } else { //取消订单 SFController.NlPostConfirm(parcel.WayBillNumber, parcel.MailNo, 2); } } } catch (Exception ex) { Log.Error("运单号:{0} 提交顺丰API异常信息:{1}".FormatWith(wayBillSfModel.WayBillNumber, ex.Message)); } } } pageindex++; } while (list.Count > (pageindex - 1) * pagesize); } Log.Info("完成预报荷兰小包"); WayBillController.UpdateOutShippingMethod(); }
public static void UpdatePrice() { var list = WayBillController.GetUpdatePriceWayBillList(); if (list == null || list.Count <= 0) { return; } if (ismultithreading.ToLowerInvariant() == "no") { //单线程 foreach (var model in list) { if (!WayBillController.UpdatePriceWayBill(FreightController.GetFreightPrice(model), model.WayBillNumber, model.ReceivingExpenseID)) { Log.Error(string.Format("运单号:{0}更新错误!", model.WayBillNumber)); } } } else if (ismultithreading.ToLowerInvariant() == "yes") { //多线程 if (minThreads > maxThreads) { maxThreads = minThreads; } var threadPool = new SmartThreadPool { MaxThreads = maxThreads < 1 ? 1 : maxThreads, MinThreads = minThreads < 1 ? 1 : minThreads }; var pendingWorkItems = new IWorkItemResult[list.Count]; for (int i = 0; i < list.Count; i++) { pendingWorkItems[i] = threadPool.QueueWorkItem(new WorkItemCallback(MUpdatePrice), list[i]); } if (SmartThreadPool.WaitAll(pendingWorkItems)) { threadPool.Shutdown(); } } }