From 2f117ec0d34645b7cc23d89b8047765deddff601 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 12 Nov 2019 18:27:38 +0800 Subject: [PATCH] =?UTF-8?q?isStatusNewer=E4=B8=AD=EF=BC=8C=E7=BE=8E?= =?UTF-8?q?=E5=9B=A2=E8=AE=A2=E5=8D=95=E5=9C=A8=E6=8E=A5=E5=8D=95=E5=90=8E?= =?UTF-8?q?=E5=B0=B1=E4=BC=9A=E6=94=B6=E5=88=B0=E6=96=B0=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=EF=BC=8C=E5=9B=A0=E5=BD=93=E5=89=8D=E5=8F=AA?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=80=E4=B8=AATIMER=EF=BC=8C=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E8=88=8D=E5=BC=83=E4=B8=89=E6=96=B9=E9=85=8D=E9=80=81?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=EF=BC=8C=E8=80=8C=E8=A6=81=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=8B=A3=E8=B4=A7=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/defsch/defsch.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index bedb1b640..54d5b14df 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -760,7 +760,7 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa statusTime = bill.StatusTime } globals.SugarLogger.Debugf("resetTimer, orderID:%s statusType:%d status:%d", order.VendorOrderID, statusType, status) - if isStatusNewer(savedOrderInfo.timerStatusType, savedOrderInfo.timerStatus, statusType, status) { // 新设置的TIMER不能覆盖状态在其后的TIMER,如果状态回绕,需要注意 + if isStatusNewer(order.VendorID, savedOrderInfo.timerStatusType, savedOrderInfo.timerStatus, statusType, status) { // 新设置的TIMER不能覆盖状态在其后的TIMER,如果状态回绕,需要注意 config := s.mergeOrderStatusConfig(savedOrderInfo, statusTime, statusType, status) if config == nil || config.TimerType != partner.TimerTypeByPass { s.stopTimer(savedOrderInfo) @@ -810,10 +810,13 @@ func (s *DefScheduler) resetTimer(savedOrderInfo *WatchOrderInfo, bill *model.Wa } } -func isStatusNewer(curStatusType, curStatus, statusType, status int) bool { +func isStatusNewer(vendorID int, curStatusType, curStatus, statusType, status int) bool { // 拣货完成及之前的订单事件TIMER不能覆盖运单TIMER(一般是消息错序引起的) - if curStatusType == scheduler.TimerStatusTypeWaybill && statusType == scheduler.TimerStatusTypeOrder && status <= model.OrderStatusFinishedPickup { - return false + // 美团订单在接单后就会收到新运单事件,因当前只支持一个TIMER,暂时舍弃三方配送调度,而要自动拣货调度 + if vendorID != model.VendorIDMTWM { + if curStatusType == scheduler.TimerStatusTypeWaybill && statusType == scheduler.TimerStatusTypeOrder && status <= model.OrderStatusFinishedPickup { + return false + } } if curStatusType == scheduler.TimerStatusTypeWaybill { return curStatus != status