diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index a4bcc73e7..f47577449 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -437,11 +437,18 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { order = jxutils.RemoveSkuFromOrder(order, removedSkuList) var oaosAdjustDTOList []*jdapi.OAOSAdjustDTO + dtoMap := make(map[int]*jdapi.OAOSAdjustDTO) for _, sku := range order.Skus { - oaosAdjustDTOList = append(oaosAdjustDTOList, &jdapi.OAOSAdjustDTO{ - OutSkuID: utils.Int2Str(jxutils.GetSkuIDFromOrderSku(sku)), - SkuCount: sku.Count, - }) + skuID := jxutils.GetSkuIDFromOrderSku(sku) + if dtoMap[skuID] == nil { + dtoMap[skuID] = &jdapi.OAOSAdjustDTO{ + OutSkuID: utils.Int2Str(skuID), + SkuCount: sku.Count, + } + oaosAdjustDTOList = append(oaosAdjustDTOList, dtoMap[skuID]) + } else { + dtoMap[skuID].SkuCount += sku.Count + } } if globals.EnableJdStoreWrite { err = getAPI(order.VendorOrgCode).AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList)