From 158f26ec9d49a797be2c3355302bb9b55a98c898 Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Thu, 10 Jul 2025 10:06:45 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E5=95=86=E5=93=81=E7=9B=92=E6=95=B0?= =?UTF-8?q?=E4=B8=AD=E9=97=B4=E8=A1=A8=E6=94=AF=E6=8C=81=E5=B0=8F=E6=95=B0?= =?UTF-8?q?=E7=9B=92=E6=95=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/RetailOrderServiceImpl.java | 11 +++++++++-- .../hzs/common/domain/sale/order/SaOrderItems.java | 6 ++++++ .../hzs/common/domain/sale/order/SaOrderWares.java | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java index d6a50ced..18ad4017 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/service/impl/RetailOrderServiceImpl.java @@ -291,6 +291,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 订单明细 SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt); + orderItems.setWaresBoxNum(null != waresDetailExt.getBoxNum() ? waresDetailExt.getBoxNum() : BigDecimal.ZERO); // 不是赠品,需要累积包邮邮费 if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) { @@ -762,7 +763,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 订单商品拆分数据 List orderWaresList = new ArrayList<>(); // 订单商品map(key:商品主键-商品价格,value:商品数量) - Map orderWaresMap = new HashMap<>(); + Map orderWaresMap = new HashMap<>(); // 商品销量数据 List waresNumberList = new ArrayList<>(); // 商品销量map(key:商品主键,value:商品数量) @@ -784,9 +785,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService { // 指定商品拆分 并且 非赠品 if (boxProductList.contains(saOrderItems.getWareCode()) && EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { + BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity())); // key: 商品ID-商品价格(产品价格*产品数量) String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()))); - orderWaresMap.merge(key, saOrderItems.getWaresQuantity(), Integer::sum); + if (orderWaresMap.containsKey(key)) { + BigDecimal tmpBoxNum = orderWaresMap.get(key).add(boxNum); + orderWaresMap.put(key, tmpBoxNum); + } else { + orderWaresMap.put(key, boxNum); + } waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum); } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderItems.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderItems.java index 5e7569a9..da12bf2a 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderItems.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderItems.java @@ -198,4 +198,10 @@ public class SaOrderItems extends BaseEntity { @TableField(exist = false) private String wareCode; + /** + * 商品上传盒数 + */ + @TableField(exist = false) + private BigDecimal waresBoxNum; + } diff --git a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderWares.java b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderWares.java index 91cb4846..14a54db2 100644 --- a/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderWares.java +++ b/bd-common/bd-common-domain/src/main/java/com/hzs/common/domain/sale/order/SaOrderWares.java @@ -47,7 +47,7 @@ public class SaOrderWares extends BaseEntity { * 商品数量 */ @TableField("WARES_QUANTITY") - private Integer waresQuantity; + private BigDecimal waresQuantity; /** * 商品价格