dyps cancelwaybill

This commit is contained in:
richboo111
2022-12-29 18:14:55 +08:00
parent acd05db63c
commit 1bbebdb773
6 changed files with 15 additions and 15 deletions

View File

@@ -241,27 +241,20 @@ func (c *BaseScheduler) CreateWaybill(platformVendorID int, order *model.GoodsOr
func (c *BaseScheduler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
// 部分快递平台在取消成功后有时会不发运单取消消息过来比如达达904200512000442为避免二次取消报错添加状态判断
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill bill======%s", utils.Format4Output(bill, false))
if c.IsReallyCallPlatformAPI && bill.OrderVendorID != bill.WaybillVendorID && bill.Status != model.WaybillStatusCanceled {
globals.SugarLogger.Debugf("bill.OrderVendorID====%d, bill.WaybillVendorID====%d , bill.Status====%d", bill.OrderVendorID, bill.WaybillVendorID, bill.Status)
globals.SugarLogger.Debugf("handlerInfo====%s", utils.Format4Output(partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID), false))
if handlerInfo := partner.GetDeliveryPlatformFromVendorID(bill.WaybillVendorID); handlerInfo != nil {
if err = utils.CallFuncLogErrorWithInfo(func() error {
if err := handlerInfo.Handler.CancelWaybill(bill, cancelReasonID, cancelReason); err != nil {
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill err========%v", err)
return err
}
order, _ := partner.CurOrderManager.LoadOrder(bill.VendorOrderID, bill.OrderVendorID)
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill order=========%s", utils.Format4Output(order, false))
return orderman.ResetCreateWaybillFee(nil, order)
}, "CancelWaybill bill:%v", bill); err == nil {
bill.Status = model.WaybillStatusCanceled
bill.DeliveryFlag |= model.WaybillDeliveryFlagMaskActiveCancel
globals.SugarLogger.Debugf("bill.Status===========%d,bill.DeliveryFlag===========%d", bill.Status, bill.DeliveryFlag)
_, err = dao.UpdateEntity(nil, bill, "Status", "DeliveryFlag")
}
}
}
globals.SugarLogger.Debugf("BaseScheduler CancelWaybill return bill.VendorWaybillID=%s,err==========%v", bill.VendorWaybillID, err)
return err
}

View File

@@ -1005,6 +1005,15 @@ func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) {
}
func (s *DefScheduler) cancelOtherWaybills(savedOrderInfo *WatchOrderInfo, bill2Keep *model.Waybill, cancelReasonID int, cancelReason string) (err error) {
//特殊处理抖音运力取消
if savedOrderInfo.order.VendorID == model.VendorIDDD {
savedOrderInfo.waybills[0] = &model.Waybill{
VendorOrderID: savedOrderInfo.order.VendorOrderID,
VendorWaybillID: savedOrderInfo.order.VendorWaybillID,
WaybillVendorID: model.VendorIDDYPS,
OrderVendorID: model.VendorIDDD,
}
}
for _, v := range savedOrderInfo.waybills {
if v.Status < model.WaybillStatusEndBegin &&
!model.IsWaybillPlatformOwn(v) &&

View File

@@ -418,10 +418,6 @@ func (s *DefScheduler) CancelAll3rdWaybills(ctx *jxcontext.Context, vendorOrderI
err = func() (err error) {
// 取消三方运单,取消各平台单号信息,间隔一段时间后定时任务重新调度
savedOrderInfo := s.loadSavedOrderByID(vendorOrderID, vendorID, true)
if vendorID == model.VendorIDDD {
globals.SugarLogger.Debugf("CancelAll3rdWaybills vendorOrderID=%s vendorID=%d", vendorOrderID, vendorID)
globals.SugarLogger.Debugf("CancelAll3rdWaybills savedOrderInfo=%s", utils.Format4Output(savedOrderInfo, false))
}
if savedOrderInfo != nil {
err = s.cancelOtherWaybills(savedOrderInfo, nil, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive)
} else {