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