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; /** * 商品价格