From 09f4594e23b532eb03fa61578f90f29bfdc2c9ed Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Thu, 9 Jul 2026 10:21:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E8=B0=83=E6=8B=A8=E4=BA=A7=E5=93=81=E5=BF=AB=E7=85=A7=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/stock/ErpStockMoveController.java | 14 ++++++++++++-- .../dal/dataobject/stock/ErpStockMoveItemDO.java | 12 ++++++++++++ .../service/stock/ErpStockMoveServiceImpl.java | 15 ++++++++++----- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java index e69706e1e..5083c861f 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpStockMoveController.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.erp.controller.admin.stock; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -259,8 +260,17 @@ public class ErpStockMoveController { private void fillStockMoveItem(ErpStockMoveRespVO.Item item, Map productMap, Map warehouseMap, Map areaMap, Map stockMap) { - MapUtils.findAndThen(productMap, item.getProductId(), product -> item.setProductName(product.getName()) - .setProductBarCode(product.getBarCode()).setProductUnitName(product.getUnitName())); + MapUtils.findAndThen(productMap, item.getProductId(), product -> { + if (StrUtil.isBlank(item.getProductName())) { + item.setProductName(product.getName()); + } + if (StrUtil.isBlank(item.getProductBarCode())) { + item.setProductBarCode(product.getBarCode()); + } + if (StrUtil.isBlank(item.getProductUnitName())) { + item.setProductUnitName(product.getUnitName()); + } + }); MapUtils.findAndThen(warehouseMap, item.getFromWarehouseId(), warehouse -> item.setFromWarehouseName(warehouse.getName())); MapUtils.findAndThen(warehouseMap, item.getToWarehouseId(), warehouse -> item.setToWarehouseName(warehouse.getName())); MapUtils.findAndThen(areaMap, item.getFromAreaId(), area -> item.setFromAreaName(area.getAreaName())); diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveItemDO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveItemDO.java index 5dcbc8f26..94ae70ea7 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveItemDO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveItemDO.java @@ -57,6 +57,18 @@ public class ErpStockMoveItemDO extends BaseDO { * 关联 {@link ErpProductDO#getId()} */ private Long productId; + /** + * 产品名称快照 + */ + private String productName; + /** + * 产品条码快照 + */ + private String productBarCode; + /** + * 产品单位名称快照 + */ + private String productUnitName; /** * 产品单位编号 * diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java index 705428efb..c89e49bd5 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpStockMoveServiceImpl.java @@ -267,11 +267,16 @@ public class ErpStockMoveServiceImpl implements ErpStockMoveService { Map areaMap = warehouseAreaService.getWarehouseAreaMap(convertSetByFlatMap(list, item -> Stream.of(item.getFromAreaId(), item.getToAreaId()))); // 2. 转化为 ErpStockMoveItemDO 列表 - return convertList(list, o -> BeanUtils.toBean(o, ErpStockMoveItemDO.class, item -> item - .setProductUnitId(productMap.get(item.getProductId()).getUnitId()) - .setFromAreaName(validateMoveArea(item.getFromWarehouseId(), item.getFromAreaId(), areaMap).getAreaName()) - .setToAreaName(validateMoveArea(item.getToWarehouseId(), item.getToAreaId(), areaMap).getAreaName()) - .setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())))); + return convertList(list, o -> BeanUtils.toBean(o, ErpStockMoveItemDO.class, item -> { + ErpProductDO product = productMap.get(item.getProductId()); + item.setProductUnitId(product.getUnitId()) + .setProductName(product.getName()) + .setProductBarCode(product.getBarCode()) + .setProductUnitName(product.getUnitName()) + .setFromAreaName(validateMoveArea(item.getFromWarehouseId(), item.getFromAreaId(), areaMap).getAreaName()) + .setToAreaName(validateMoveArea(item.getToWarehouseId(), item.getToAreaId(), areaMap).getAreaName()) + .setTotalPrice(MoneyUtils.priceMultiply(item.getProductPrice(), item.getCount())); + })); } private WarehouseAreaDO validateMoveArea(Long warehouseId, Long areaId, Map areaMap) {