This commit is contained in:
邹宗楠
2022-03-08 17:14:51 +08:00
parent 929bc4fff5
commit 19fed7f0aa
2 changed files with 16 additions and 2 deletions

View File

@@ -955,12 +955,14 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) {
func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
globals.SugarLogger.Debugf("cancelOtherWaybills, orderID:%s, bill:%v", savedOrderInfo.order.VendorOrderID, bill2Keep)
for _, v := range savedOrderInfo.waybills {
cc := !model.IsWaybillPlatformOwn(v)
if v.Status < model.WaybillStatusEndBegin &&
!model.IsWaybillPlatformOwn(v) &&
cc &&
(bill2Keep == nil || !(v.WaybillVendorID == bill2Keep.WaybillVendorID && v.VendorWaybillID == bill2Keep.VendorWaybillID)) {
globals.SugarLogger.Info("===========================================1")
err2 := s.CancelWaybill(v, cancelReasonID, cancelReason)
globals.SugarLogger.Info("===========================================2", err)
globals.SugarLogger.Info("===========================================2", err2)
if err2 == nil {
// 在这里就从map里删除而不是等收到运单结束事件才删除可避免不必要的重复取消第二次取消还会失败
s.removeWaybillFromMap(savedOrderInfo, v.WaybillVendorID)
@@ -1049,6 +1051,16 @@ func (s *DefScheduler) loadSavedOrderFromMap(status *model.OrderStatus, isForceL
globals.SugarLogger.Infof("loadSavedOrderFromMap can not load order orderID:%s with error:%v", status.RefVendorOrderID, err)
}
}
gg := len(realSavedInfo.waybills)
globals.SugarLogger.Info("=================gg", gg)
for _, v := range realSavedInfo.waybills {
globals.SugarLogger.Info("=================gg", v.ID)
globals.SugarLogger.Info("=================gg", v.VendorOrderID)
globals.SugarLogger.Info("=================gg", v.Status)
globals.SugarLogger.Info("=================gg", v.DesiredFee)
}
return realSavedInfo
}

View File

@@ -310,6 +310,7 @@ func (s *DefScheduler) CheckStoreBalance(ctx *jxcontext.Context, order *model.Go
func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderID string, vendorID int, isStopSchedule bool) (err error) {
jxutils.CallMsgHandler(func() {
err = func() (err error) {
// 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度
globals.SugarLogger.Infof("CancelAll3rdWaybills orderID:%s userName:%s", vendorOrderID, ctx.GetUserName())
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
if savedOrderInfo != nil {
@@ -318,6 +319,7 @@ func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderI
err = scheduler.ErrCanNotFindOrder
}
globals.SugarLogger.Infof("CancelAll3rdWaybills orderID:%s userName:%s error:%v", vendorOrderID, ctx.GetUserName(), err)
// 停止调度,同事停止订单调度,不在通知第三方
if err == nil && isStopSchedule {
order := savedOrderInfo.order
order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled