diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 3dfd1e7b0..a78d67dce 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1176,6 +1176,7 @@ func TransferJdsOrder(ctx *jxcontext.Context, vendorOrderID string, storeID int) func SendJdwlForJdsOrder(ctx *jxcontext.Context, vendorOrderID string) (err error) { order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJDShop) handler := partner.DeliveryPlatformHandlers[model.VendorIDJDWL] - _, err = handler.Handler.CreateWaybill(order, 0) + waybill, err := handler.Handler.CreateWaybill(order, 0) + jdshop.CurPurchaseHandler.OrderTransfer(ctx, vendorOrderID, waybill.VendorWaybillID, false) return err } diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index a12ffdc3f..8a1efa716 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -538,9 +538,9 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo } s.updateOrderByBill(order, bill, false) s.cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo, bill, partner.CancelWaybillReasonNotAcceptIntime, partner.CancelWaybillReasonStrNotAcceptIntime) - //京东商城的话,需要去把订单出库 + //京东商城的话,需要去把订单出库,如果是转移过的订单,则需要修改转移订单号 if order.VendorID == model.VendorIDJDShop { - err = jdshop.CurPurchaseHandler.OrderExport(jxcontext.AdminCtx, bill.VendorOrderID, bill.VendorWaybillID, true) + s.solutionJdsOrder(bill) } if model.IsWaybillPlatformOwn(bill) { if bill.Status == model.WaybillStatusDelivering && order.Status < model.OrderStatusEndBegin { @@ -756,6 +756,18 @@ func (s *DefScheduler) cancelOtherWaybillsCheckOrderDeliveryFlag(savedOrderInfo return err } +func (s *DefScheduler) solutionJdsOrder(bill *model.Waybill) (err error) { + //表示此订单是京东商城转移的订单,不用出库,但要去修改运单号 + if len(bill.VendorOrderID) > 12 { + if utils.Str2Int(bill.VendorOrderID[12:len(bill.VendorOrderID)]) > 1 { + err = jdshop.CurPurchaseHandler.OrderTransfer(jxcontext.AdminCtx, bill.VendorOrderID, bill.VendorWaybillID, true) + } else { + err = jdshop.CurPurchaseHandler.OrderExport(jxcontext.AdminCtx, bill.VendorOrderID, bill.VendorWaybillID, true) + } + } + return err +} + 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 { diff --git a/business/partner/delivery/jdeclp/waybill.go b/business/partner/delivery/jdeclp/waybill.go index 8887cd55a..0a86dae61 100644 --- a/business/partner/delivery/jdeclp/waybill.go +++ b/business/partner/delivery/jdeclp/waybill.go @@ -76,7 +76,7 @@ func (c *DeliveryHandler) CreateWaybill(order *model.GoodsOrder, maxDeliveryFee DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled, } dao.CreateEntity(dao.GetDB(), waybill) - return bill, err + return waybill, err } func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error) { err = api.JdEclpAPI.CancelWayBill(&jdeclpapi.CancelWayBillParam{ diff --git a/business/partner/purchase/jdshop/order.go b/business/partner/purchase/jdshop/order.go index 2c2c08bd0..ec03a1324 100644 --- a/business/partner/purchase/jdshop/order.go +++ b/business/partner/purchase/jdshop/order.go @@ -143,3 +143,13 @@ func (p *PurchaseHandler) OrderExport(ctx *jxcontext.Context, vendorOrderID, ven err = api.JdShopAPI.OrderShipment(utils.Str2Int64(vendorOrderID[:12]), companyID, vendorWaybillID) return err } + +func (p *PurchaseHandler) OrderTransfer(ctx *jxcontext.Context, vendorOrderID, vendorWaybillID string, isAuto bool) (err error) { + companyID := jdshopapi.JdsDeliveryCompany3rd + //表示是门店手动发京东 + if !isAuto { + companyID = jdshopapi.JdsDeliveryCompanyJD + } + err = api.JdShopAPI.UpdateWaybill(vendorOrderID[:12], companyID, vendorWaybillID) + return err +}