From db5603614f85c868e38ebda7d467c7bbba97f433 Mon Sep 17 00:00:00 2001 From: ck-chenkang Date: Tue, 23 Jun 2026 17:40:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=82=E9=85=8DPDA=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8F=8A=E5=BA=93=E5=AD=98=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/bitwms/vo/BitWmsScanRespVO.java | 6 ++++++ .../erp/service/bitwms/BitWmsServiceImpl.java | 11 ++++++++++ .../service/bitwms/BitWmsServiceImplTest.java | 20 ++++++++++++++++++- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/bitwms/vo/BitWmsScanRespVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/bitwms/vo/BitWmsScanRespVO.java index 914272201..82672f9be 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/bitwms/vo/BitWmsScanRespVO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/bitwms/vo/BitWmsScanRespVO.java @@ -18,4 +18,10 @@ public class BitWmsScanRespVO { @Schema(description = "名称", example = "样品 A") private String name; + + @Schema(description = "单位ID,仅样品返回", example = "5") + private Long unitId; + + @Schema(description = "单位名称,仅样品返回", example = "个") + private String unitName; } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImpl.java index 6336acd62..949ccd584 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImpl.java @@ -26,6 +26,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSave import cn.iocoder.yudao.module.erp.dal.dataobject.bitwms.BitWmsLocationStockDO; import cn.iocoder.yudao.module.erp.dal.dataobject.bitwms.BitWmsLocationStockRecordDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockMoveDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutDO; @@ -38,6 +39,7 @@ import cn.iocoder.yudao.module.erp.dal.mysql.product.ErpProductMapper; import cn.iocoder.yudao.module.erp.dal.mysql.warehouselocation.WarehouseLocationMapper; import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockInService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockMoveService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockOutService; @@ -89,6 +91,8 @@ public class BitWmsServiceImpl implements BitWmsService { @Resource private ErpProductService productService; @Resource + private ErpProductUnitService productUnitService; + @Resource private ErpProductMapper productMapper; @Resource private WarehouseLocationMapper warehouseLocationMapper; @@ -278,6 +282,13 @@ public class BitWmsServiceImpl implements BitWmsService { respVO.setId(product.getId()); respVO.setCode(product.getBarCode()); respVO.setName(product.getName()); + respVO.setUnitId(product.getUnitId()); + if (product.getUnitId() != null) { + ErpProductUnitDO unit = productUnitService.getProductUnit(product.getUnitId()); + if (unit != null) { + respVO.setUnitName(unit.getName()); + } + } return respVO; } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/test/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImplTest.java b/yudao-module-erp/yudao-module-erp-biz/src/test/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImplTest.java index a624d2478..ef3deb743 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/test/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImplTest.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/test/java/cn/iocoder/yudao/module/erp/service/bitwms/BitWmsServiceImplTest.java @@ -17,12 +17,14 @@ import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMoveSa import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutAuditReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; +import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO; import cn.iocoder.yudao.module.erp.dal.mysql.product.ErpProductMapper; import cn.iocoder.yudao.module.erp.dal.mysql.warehouselocation.WarehouseLocationMapper; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO; import cn.iocoder.yudao.module.erp.dal.dataobject.warehouselocation.WarehouseLocationDO; import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus; import cn.iocoder.yudao.module.erp.service.product.ErpProductService; +import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockInService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockMoveService; import cn.iocoder.yudao.module.erp.service.stock.ErpStockOutService; @@ -59,6 +61,8 @@ class BitWmsServiceImplTest { @Mock private ErpProductService productService; @Mock + private ErpProductUnitService productUnitService; + @Mock private ErpProductMapper productMapper; @Mock private WarehouseLocationMapper warehouseLocationMapper; @@ -78,6 +82,7 @@ class BitWmsServiceImplTest { @Test void scan_whenProductQrcodeBizKey_returnsSample() { when(productMapper.selectById(332L)).thenReturn(buildBitSampleProductDO(332L)); + when(productUnitService.getProductUnit(5L)).thenReturn(buildProductUnit()); BitWmsScanRespVO respVO = bitWmsService.scan(" PRODUCTMATERIAL-332 "); @@ -85,6 +90,8 @@ class BitWmsServiceImplTest { assertEquals(332L, respVO.getId()); assertEquals("SP001", respVO.getCode()); assertEquals("BIT 样品", respVO.getName()); + assertEquals(5L, respVO.getUnitId()); + assertEquals("个", respVO.getUnitName()); } @Test @@ -113,6 +120,7 @@ class BitWmsServiceImplTest { void scan_whenPlainSampleCode_returnsSample() { when(productMapper.selectOne(org.mockito.ArgumentMatchers.>any(), eq("SP001"))) .thenReturn(buildBitSampleProductDO(332L)); + when(productUnitService.getProductUnit(5L)).thenReturn(buildProductUnit()); BitWmsScanRespVO respVO = bitWmsService.scan("SP001"); @@ -120,6 +128,8 @@ class BitWmsServiceImplTest { assertEquals(332L, respVO.getId()); assertEquals("SP001", respVO.getCode()); assertEquals("BIT 样品", respVO.getName()); + assertEquals(5L, respVO.getUnitId()); + assertEquals("个", respVO.getUnitName()); } @Test @@ -401,6 +411,14 @@ class BitWmsServiceImplTest { .setName("BIT 样品") .setBarCode("SP001") .setIsSample(true) - .setBizUnit("BIT"); + .setBizUnit("BIT") + .setUnitId(5L); + } + + private ErpProductUnitDO buildProductUnit() { + ErpProductUnitDO unit = new ErpProductUnitDO(); + unit.setId(5L); + unit.setName("个"); + return unit; } }