适配PDA出入库及库存查询

besure_bit
ck-chenkang 2 weeks ago
parent 15b2bc983b
commit db5603614f

@ -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;
}

@ -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;
}

@ -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.<SFunction<ErpProductDO, ?>>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;
}
}

Loading…
Cancel
Save