diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 3e7ea0ace..8c00a505c 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -321,6 +321,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo s.resetTimer(savedOrderInfo, bill, isPending) } } else { + s.updateBillsInfo(savedOrderInfo, bill) switch bill.Status { case model.WaybillStatusAccepted: s.resetTimer(savedOrderInfo, bill, isPending) @@ -792,6 +793,18 @@ func (s *DefScheduler) updateOrderByBill(order *model.GoodsOrder, bill *model.Wa } } +func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) { + if savedOrderInfo != nil { + if savedBill := savedOrderInfo.waybills[savedOrderInfo.order.WaybillVendorID]; savedBill != nil { + if savedBill.Status > bill.Status { + bill.Status = savedBill.Status + } else if bill.Status > savedBill.Status { + savedBill.Status = bill.Status + } + } + } +} + func (s *DefScheduler) autoPickupGood(order *model.GoodsOrder) (err error) { err = s.PickupGoods(order, "") if err == scheduler.ErrOrderStatusAlreadySatisfyCurOperation {