From 3cdac988322bdf7e1ce2a8c4237ddc2939f846b0 Mon Sep 17 00:00:00 2001 From: Timi Date: Wed, 9 Sep 2026 14:21:04 +0800 Subject: [PATCH] add allowDecimalQuantity --- .../modules/gao/entity/GaoSalesOrderItem.java | 8 +++++ .../gao/mapper/GaoProductSkuMapper.java | 6 ++++ .../gao/service/GaoProductSkuService.java | 6 ++++ .../GaoProductSkuServiceImplement.java | 10 ++++++ .../GaoSalesOrderServiceImplement.java | 32 +++++++++++++++++++ .../timi-server/gao/GaoProductSkuMapper.xml | 5 +++ 6 files changed, 67 insertions(+) diff --git a/src/main/java/com/imyeyu/api/modules/gao/entity/GaoSalesOrderItem.java b/src/main/java/com/imyeyu/api/modules/gao/entity/GaoSalesOrderItem.java index eb66708..2235453 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/entity/GaoSalesOrderItem.java +++ b/src/main/java/com/imyeyu/api/modules/gao/entity/GaoSalesOrderItem.java @@ -68,6 +68,14 @@ public class GaoSalesOrderItem extends UUIDEntity { /// 基础单位数量系数快照 private BigDecimal baseQuantityPerUnitSnapshot; + /// 当前 SKU 是否允许业务数量保留小数 + @Transient + private Boolean allowDecimalQuantity; + + /// 当前 SKU 基础单位名称 + @Transient + private String baseUnitName; + /// 购买数量 private BigDecimal quantity; diff --git a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoProductSkuMapper.java b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoProductSkuMapper.java index a14e681..5007e9b 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoProductSkuMapper.java +++ b/src/main/java/com/imyeyu/api/modules/gao/mapper/GaoProductSkuMapper.java @@ -13,6 +13,12 @@ import java.util.List; /// @since 2026-09-06 public interface GaoProductSkuMapper extends BaseMapper { + /// 批量查询 SKU + /// + /// @param idList SKU ID 集合 + /// @return SKU 列表 + List selectByIdList(@Param("idList") Collection idList); + /// 按产品查询 SKU List selectByProductId(@Param("productId") String productId); diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/GaoProductSkuService.java b/src/main/java/com/imyeyu/api/modules/gao/service/GaoProductSkuService.java index f7d4d21..c8de44d 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/GaoProductSkuService.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/GaoProductSkuService.java @@ -15,6 +15,12 @@ import java.util.List; /// @since 2026-09-06 public interface GaoProductSkuService extends BaseService { + /// 批量查询 SKU + /// + /// @param idList SKU ID 集合 + /// @return SKU 列表,包含单位、规格和附件临时数据 + List listByIdList(Collection idList); + /// 查询 SKU 详情 GaoProductSku detail(String id); diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoProductSkuServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoProductSkuServiceImplement.java index 749979f..8e85d17 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoProductSkuServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoProductSkuServiceImplement.java @@ -76,6 +76,16 @@ public class GaoProductSkuServiceImplement extends AbstractEntityService listByIdList(Collection idList) { + if (idList == null || idList.isEmpty()) { + return List.of(); + } + List result = mapper.selectByIdList(idList); + fillTransient(result); + return result; + } + @Override public List listByProductId(String productId) { TimiException.required(productId, "not found productId"); diff --git a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoSalesOrderServiceImplement.java b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoSalesOrderServiceImplement.java index c130b77..468656c 100644 --- a/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoSalesOrderServiceImplement.java +++ b/src/main/java/com/imyeyu/api/modules/gao/service/implement/GaoSalesOrderServiceImplement.java @@ -115,6 +115,7 @@ public class GaoSalesOrderServiceImplement extends AbstractEntityService itemList = itemMapper.selectBySalesOrderId(order.getId()); + fillItemDisplayInfo(itemList); for (GaoSalesOrderItem item : itemList) { fillItemBalance(item); } @@ -562,6 +563,37 @@ public class GaoSalesOrderServiceImplement extends AbstractEntityService itemList) { + if (itemList == null || itemList.isEmpty()) { + return; + } + List skuIdList = itemList.stream() + .map(GaoSalesOrderItem::getSkuId) + .filter(value -> value != null && !value.isBlank()) + .distinct() + .toList(); + if (skuIdList.isEmpty()) { + return; + } + Map skuMap = skuService.listByIdList(skuIdList).stream() + .collect(java.util.stream.Collectors.toMap(GaoProductSku::getId, java.util.function.Function.identity())); + for (GaoSalesOrderItem item : itemList) { + GaoProductSku sku = skuMap.get(item.getSkuId()); + if (sku == null) { + continue; + } + item.setAllowDecimalQuantity(sku.getAllowDecimalQuantity()); + item.setBaseUnitName(sku.getUnitList().stream() + .filter(unit -> Boolean.TRUE.equals(unit.getIsBase())) + .map(GaoProductSkuUnit::getName) + .findFirst() + .orElse(null)); + } + } + private void fillItemAttachments(List itemList) { if (itemList == null || itemList.isEmpty()) { return; diff --git a/src/main/resources/mapper/timi-server/gao/GaoProductSkuMapper.xml b/src/main/resources/mapper/timi-server/gao/GaoProductSkuMapper.xml index f46e775..3af78e6 100644 --- a/src/main/resources/mapper/timi-server/gao/GaoProductSkuMapper.xml +++ b/src/main/resources/mapper/timi-server/gao/GaoProductSkuMapper.xml @@ -1,6 +1,11 @@ +