From 77aa71577fc7af3971db7538f6df9041c0241bb7 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 2 Apr 2019 18:45:01 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=B8=BB=E8=BF=90=E5=8D=95=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E6=97=B6=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95TIMER?= =?UTF-8?q?=EF=BC=8C=E5=8F=AA=E6=9C=89=E5=9C=A8=E9=85=8D=E9=80=81=E4=B8=AD?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E8=AE=A2=E5=8D=95=E6=89=8D=E4=BC=9A?= =?UTF-8?q?=E9=A9=AC=E4=B8=8A=E6=96=B0=E5=BB=BA=E8=BF=90=E5=8D=95=20-=20?= =?UTF-8?q?=E9=9D=9E=E8=87=AA=E9=85=8D=E9=80=81=E9=97=A8=E5=BA=97=E8=BD=AC?= =?UTF-8?q?3=E6=96=B9=E9=85=8D=E9=80=81=E8=87=B3=E5=B0=91=E8=A6=81?= =?UTF-8?q?=E6=B1=82=E6=8B=A3=E8=B4=A7=E5=AE=8C=E6=88=90=E5=90=8E5?= =?UTF-8?q?=E5=88=86=E9=92=9F=E6=89=8D=E8=83=BD=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/defsch/defsch.go | 5 +++-- business/jxcallback/scheduler/defsch/defsch_ext.go | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 944164de7..fb576df02 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -410,7 +410,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo case model.WaybillStatusCanceled: s.removeWaybillFromMap(savedOrderInfo, bill.WaybillVendorID) if s.isBillCandidate(order, bill) || order.WaybillVendorID == model.VendorIDUnknown { - s.resetTimer(savedOrderInfo, bill, isPending) + s.resetTimer(savedOrderInfo, nil, isPending) if !isPending { if s.IsOrderHasWaybill(order) { bill.WaybillVendorID = model.VendorIDUnknown @@ -419,7 +419,8 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo // 3方的运单取消才会重新发起创建3方订单,购物平台的运单取消后,它本身还会再创建新运单(NewWaybill事件有相应TIMER)),至少京东是这样的,暂时按京东的行为来 // 现在发现饿百取消订单后不会再创建运单了,所以饿百运单取消也允许直接创建三方运单 // 之前的条件是order.Status < model.OrderStatusDelivering,但像订单902322817000122确实有在配送中取消状态,改成非订单结束状态都可以 - if order.Status < model.OrderStatusEndBegin && (bill.WaybillVendorID != order.VendorID || order.VendorID == model.VendorIDEBAI) { + // OrderStatusFinishedPickup状态的订单依赖于TIMER重新建运单 + if order.Status >= model.OrderStatusDelivering && order.Status < model.OrderStatusEndBegin && (bill.WaybillVendorID != order.VendorID || order.VendorID == model.VendorIDEBAI) { s.createWaybillOn3rdProviders(savedOrderInfo, nil) } } diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index b7a22b17f..7e96b9657 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -2,6 +2,7 @@ package defsch import ( "fmt" + "time" "git.rosy.net.cn/jx-callback/business/partner/delivery" @@ -111,6 +112,12 @@ func (s *DefScheduler) CreateWaybillOnProvidersEx(ctx *jxcontext.Context, vendor } savedOrderInfo := s.loadSavedOrderFromMap(status, true) if savedOrderInfo != nil { + order := savedOrderInfo.order + if scheduler.StoreDeliveryTypeByStore != s.GetStoreDeliveryType(order, nil) && + order.Status == model.OrderStatusFinishedPickup && + time.Now().Sub(order.StatusTime) < minMinute2Schedule3rdCarrier*time.Minute { + return nil, fmt.Errorf("非自配送门店转3方配送至少要求拣货完成后%d分钟才能操作", minMinute2Schedule3rdCarrier) + } bills, err = s.CreateWaybillOnProviders4SavedOrder(ctx, savedOrderInfo, forceCreate) } else { err = scheduler.ErrCanNotFindOrder