diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index ef759b374..781b3dd43 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1034,9 +1034,6 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf globals.SugarLogger.Debugf("swtich2SelfDeliverWithRetry orderID:%s", order.VendorOrderID) if order.WaybillVendorID != order.VendorID { // && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationELM && err != scheduler.ErrOrderStatusAlreadySatisfyCurOperationMTWM if err := s.Swtich2SelfDeliver(order, ""); err != nil && (err != scheduler.ErrOrderStatusAlreadySatisfyCurOperation) { //301251饿了转自送 1047美团混合送 - if strings.Contains(err.Error(), "1047") { - s.SelfDeliverDelivering(order, "非专送、快送、混合送订单,转自送失败,调用deriving转自送") - } globals.SugarLogger.Infof("swtich2SelfDeliverWithRetry failed, bill:%v, err:%v", bill, err) if retryCount > 0 { utils.AfterFuncWithRecover(duration, func() { @@ -1047,17 +1044,27 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf } else { errStr := fmt.Sprintf("订单:%s转自配送失败, 错误信息:%v", order.VendorOrderID, err) globals.SugarLogger.Info(errStr) - if s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonSwitch2SelfFailed, partner.CancelWaybillReasonStrSwitch2SelfFailed) == nil { - // 转自送失败的取消,要将订单中的运单状态更新 - if s.isBillCandidate(order, bill) { - s.updateOrderByBill(order, nil, false) + if strings.Contains(err.Error(), "1047") { + if err := s.SelfDeliverDelivering(order, "非专送、快送、混合送订单,转自送失败,调用deriving转自送"); err != nil { + s.notify3rdPartyWaybill(order, bill, false) + s.removeWaybillFromMap(savedOrderInfo, order.VendorID) + partner.CurOrderManager.OnOrderMsg(order, "转自送成功", "") } - } - // todo 之前这里为什么要设置OrderDeliveryFlagMaskScheduleDisabled标志呢 - // order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled - // partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) + } else if strings.Contains(err.Error(), "301251") { //elm 不做处理 - partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", errStr) + } else { + if s.ProxyCancelWaybill(order, bill, partner.CancelWaybillReasonSwitch2SelfFailed, partner.CancelWaybillReasonStrSwitch2SelfFailed) == nil { + // 转自送失败的取消,要将订单中的运单状态更新 + if s.isBillCandidate(order, bill) { + s.updateOrderByBill(order, nil, false) + } + } + // todo 之前这里为什么要设置OrderDeliveryFlagMaskScheduleDisabled标志呢 + // order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled + // partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) + + partner.CurOrderManager.OnOrderMsg(order, "转商家自配送失败", errStr) + } } } else { s.notify3rdPartyWaybill(order, bill, false)