diff --git a/business/scheduler/defsch/defsch.go b/business/scheduler/defsch/defsch.go index 8275b2954..b8474d016 100644 --- a/business/scheduler/defsch/defsch.go +++ b/business/scheduler/defsch/defsch.go @@ -146,7 +146,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { } switch bill.Status { case model.WaybillStatusAccepted: - if savedOrderInfo.order.WaybillVendorID == model.WaybillStatusUnknown { + if savedOrderInfo.order.WaybillVendorID == model.VendorIDUnknown { s.cancelOtherWaybills(savedOrderInfo, bill) s.CurOrderManager.UpdateWaybillVendorID(bill) savedOrderInfo.order.WaybillVendorID = bill.WaybillVendorID @@ -165,6 +165,11 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill) (err error) { case model.WaybillStatusFailed: // todo WaybillStatusFailed理解成订单整个失败了,不需要再尝试创建运单了,注意这里应该加个zabbix日志的报警 s.removeWaybillFromMap(savedOrderInfo, bill) globals.SugarLogger.Infof("OnWaybillStatusChanged WaybillStatusFailed, bill:%v", bill) + if savedOrderInfo.order.WaybillVendorID == bill.WaybillVendorID { + bill.WaybillVendorID = model.VendorIDUnknown + s.CurOrderManager.UpdateWaybillVendorID(bill) + savedOrderInfo.order.WaybillVendorID = model.VendorIDUnknown + } case model.WaybillStatusCanceled: s.removeWaybillFromMap(savedOrderInfo, bill) if savedOrderInfo.order.WaybillVendorID == bill.WaybillVendorID {