## 商品盒数中间表支持小数盒数;

This commit is contained in:
cabbage 2025-07-10 10:06:45 +08:00
parent 1937ced88e
commit 1384c3ecd7
3 changed files with 16 additions and 3 deletions

View File

@ -291,6 +291,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 订单明细 // 订单明细
SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt); SaOrderItems orderItems = saOrderHandle.getSaOrderItems(cuMember, saOrderExt, currency, orderItemsList, waresDetailExt);
orderItems.setWaresBoxNum(null != waresDetailExt.getBoxNum() ? waresDetailExt.getBoxNum() : BigDecimal.ZERO);
// 不是赠品需要累积包邮邮费 // 不是赠品需要累积包邮邮费
if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) { if (EYesNo.NO.getIntValue() == waresDetailExt.getIsGift()) {
@ -762,7 +763,7 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 订单商品拆分数据 // 订单商品拆分数据
List<SaOrderWares> orderWaresList = new ArrayList<>(); List<SaOrderWares> orderWaresList = new ArrayList<>();
// 订单商品mapkey商品主键-商品价格value商品数量 // 订单商品mapkey商品主键-商品价格value商品数量
Map<String, Integer> orderWaresMap = new HashMap<>(); Map<String, BigDecimal> orderWaresMap = new HashMap<>();
// 商品销量数据 // 商品销量数据
List<WaresNumberParam> waresNumberList = new ArrayList<>(); List<WaresNumberParam> waresNumberList = new ArrayList<>();
// 商品销量mapkey商品主键value商品数量 // 商品销量mapkey商品主键value商品数量
@ -784,9 +785,15 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
// 指定商品拆分 并且 非赠品 // 指定商品拆分 并且 非赠品
if (boxProductList.contains(saOrderItems.getWareCode()) if (boxProductList.contains(saOrderItems.getWareCode())
&& EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) { && EYesNo.NO.getIntValue() == saOrderItems.getIsGift()) {
BigDecimal boxNum = saOrderItems.getWaresBoxNum().multiply(new BigDecimal(saOrderItems.getWaresQuantity()));
// key: 商品ID-商品价格产品价格*产品数量 // key: 商品ID-商品价格产品价格*产品数量
String key = saOrderItems.getPkWares() + "-" + (saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity()))); 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); waresLimitMap.merge(saOrderItems.getPkWares(), saOrderItems.getWaresQuantity(), Integer::sum);
} }

View File

@ -198,4 +198,10 @@ public class SaOrderItems extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private String wareCode; private String wareCode;
/**
* 商品上传盒数
*/
@TableField(exist = false)
private BigDecimal waresBoxNum;
} }

View File

@ -47,7 +47,7 @@ public class SaOrderWares extends BaseEntity {
* 商品数量 * 商品数量
*/ */
@TableField("WARES_QUANTITY") @TableField("WARES_QUANTITY")
private Integer waresQuantity; private BigDecimal waresQuantity;
/** /**
* 商品价格 * 商品价格