feat: add warehouse location label data
parent
fd654978e0
commit
14b8df60f6
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.handler;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.common.enums.QrcodeBizTypeEnum;
|
||||||
|
import cn.iocoder.yudao.module.common.handler.QrcodeBizHandler;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.warehouselocation.WarehouseLocationMapper;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class WarehouseLocationQrcodeBizHandler implements QrcodeBizHandler {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private WarehouseLocationMapper warehouseLocationMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getBizType() {
|
||||||
|
return QrcodeBizTypeEnum.WAREHOUSE_LOCATION.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean exists(Long id) {
|
||||||
|
return warehouseLocationMapper.selectById(id) != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String buildDeepLink(Long id) {
|
||||||
|
return "besure://warehouse-location/detail?id=" + id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String buildH5Path(Long id) {
|
||||||
|
return "/pages_function/pages/bitWms/stock?locationId=" + id;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,74 @@
|
|||||||
|
package cn.iocoder.yudao.module.erp.service.warehouselocation;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.common.enums.CodeTypeEnum;
|
||||||
|
import cn.iocoder.yudao.module.common.enums.QrcodeBizTypeEnum;
|
||||||
|
import cn.iocoder.yudao.module.common.service.qrcordrecord.QrcodeRecordService;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil;
|
||||||
|
import cn.iocoder.yudao.module.erp.controller.admin.warehouselocation.vo.WarehouseLocationSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.warehousearea.WarehouseAreaDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.dataobject.warehouselocation.WarehouseLocationDO;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.warehousearea.WarehouseAreaMapper;
|
||||||
|
import cn.iocoder.yudao.module.erp.dal.mysql.warehouselocation.WarehouseLocationMapper;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@link WarehouseLocationServiceImpl} 的单元测试类
|
||||||
|
*/
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
class WarehouseLocationServiceImplTest {
|
||||||
|
|
||||||
|
@InjectMocks
|
||||||
|
private WarehouseLocationServiceImpl warehouseLocationService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private WarehouseLocationMapper warehouseLocationMapper;
|
||||||
|
@Mock
|
||||||
|
private WarehouseAreaMapper warehouseAreaMapper;
|
||||||
|
@Mock
|
||||||
|
private AutoCodeUtil autoCodeUtil;
|
||||||
|
@Mock
|
||||||
|
private QrcodeRecordService qrcodeRecordService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void createWarehouseLocation_generatesQrcodeRecord() throws Exception {
|
||||||
|
WarehouseLocationSaveReqVO reqVO = new WarehouseLocationSaveReqVO();
|
||||||
|
reqVO.setCode("A1");
|
||||||
|
reqVO.setName("A1");
|
||||||
|
reqVO.setWarehouseId(1L);
|
||||||
|
reqVO.setAreaId(1L);
|
||||||
|
reqVO.setAllowProductMix(false);
|
||||||
|
reqVO.setAllowBatchMix(false);
|
||||||
|
reqVO.setStatus(0);
|
||||||
|
|
||||||
|
WarehouseAreaDO area = new WarehouseAreaDO();
|
||||||
|
area.setId(1L);
|
||||||
|
area.setWarehouseId(1L);
|
||||||
|
when(warehouseAreaMapper.selectById(1L)).thenReturn(area);
|
||||||
|
when(autoCodeUtil.queryCodeType("BIT_WAREHOUSE_LOCATION_CODE")).thenReturn(CodeTypeEnum.QR);
|
||||||
|
when(warehouseLocationMapper.insert(any(WarehouseLocationDO.class))).thenAnswer(invocation -> {
|
||||||
|
WarehouseLocationDO location = invocation.getArgument(0);
|
||||||
|
location.setId(100L);
|
||||||
|
return 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
Long id = warehouseLocationService.createWarehouseLocation(reqVO);
|
||||||
|
|
||||||
|
assertEquals(100L, id);
|
||||||
|
verify(qrcodeRecordService).generateOrRefresh(
|
||||||
|
eq(QrcodeBizTypeEnum.WAREHOUSE_LOCATION),
|
||||||
|
eq(100L),
|
||||||
|
eq("A1"),
|
||||||
|
eq("DETAIL"),
|
||||||
|
eq(CodeTypeEnum.QR));
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue