feat(wms): 新增产品和原材料BOM信息查询功能
- 在IWmsProductService接口中新增queryPageListWithBom方法 - 在IWmsRawMaterialService接口中新增queryPageListWithBom方法 - 在WmsProductController中新增listWithBom接口 - 在WmsRawMaterialController中新增listWithBom接口 - 在WmsProductServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑 - 在WmsRawMaterialServiceImpl中实现queryPageListWithBom及fillBomInfo逻辑 - 在WmsProductVo和WmsRawMaterialVo中新增bomItems字段用于存储BOM明细信息
This commit is contained in:
@@ -46,6 +46,14 @@ public class WmsProductController extends BaseController {
|
||||
return iWmsProductService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询产品列表(带BOM信息)
|
||||
*/
|
||||
@GetMapping("/listWithBom")
|
||||
public TableDataInfo<WmsProductVo> listWithBom(WmsProductBo bo, PageQuery pageQuery) {
|
||||
return iWmsProductService.queryPageListWithBom(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出产品列表
|
||||
*/
|
||||
|
||||
@@ -45,6 +45,14 @@ public class WmsRawMaterialController extends BaseController {
|
||||
return iWmsRawMaterialService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询原材料列表(带BOM信息)
|
||||
*/
|
||||
@GetMapping("/listWithBom")
|
||||
public TableDataInfo<WmsRawMaterialVo> listWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
|
||||
return iWmsRawMaterialService.queryPageListWithBom(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出原材料列表
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
@@ -116,5 +118,10 @@ public class WmsProductVo {
|
||||
@ExcelProperty(value = "类型")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* BOM明细信息
|
||||
*/
|
||||
private List<WmsBomItemVo> bomItems;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.klp.domain.vo;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.klp.common.annotation.ExcelDictFormat;
|
||||
@@ -211,5 +213,10 @@ public class WmsRawMaterialVo {
|
||||
@ExcelProperty(value = "在途量")
|
||||
private BigDecimal onTheWay;
|
||||
|
||||
|
||||
/**
|
||||
* BOM明细信息
|
||||
*/
|
||||
private List<WmsBomItemVo> bomItems;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,5 +48,10 @@ public interface IWmsProductService {
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
/**
|
||||
* 查询产品列表(带BOM信息)
|
||||
*/
|
||||
TableDataInfo<WmsProductVo> queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery);
|
||||
|
||||
DashboardOverviewVO getDashboardOverview();
|
||||
}
|
||||
|
||||
@@ -51,4 +51,9 @@ public interface IWmsRawMaterialService {
|
||||
* 查询原材料列表(含需求、库存、在途信息)
|
||||
*/
|
||||
TableDataInfo<WmsRawMaterialVo> queryPageListWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询原材料列表(带BOM信息)
|
||||
*/
|
||||
TableDataInfo<WmsRawMaterialVo> queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.klp.service.IWmsBomService;
|
||||
import com.klp.service.IWmsBomItemService;
|
||||
import com.klp.domain.bo.WmsBomBo;
|
||||
import com.klp.domain.bo.WmsBomItemBo;
|
||||
import com.klp.domain.vo.WmsBomItemVo;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
@@ -61,6 +62,20 @@ public class WmsProductServiceImpl implements IWmsProductService {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询产品列表(带BOM信息)
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsProductVo> queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsProduct> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsProductVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
|
||||
// 填充BOM信息
|
||||
fillBomInfo(result.getRecords());
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询产品列表
|
||||
*/
|
||||
@@ -162,6 +177,25 @@ public class WmsProductServiceImpl implements IWmsProductService {
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充BOM信息
|
||||
*/
|
||||
private void fillBomInfo(List<WmsProductVo> productList) {
|
||||
if (productList == null || productList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (WmsProductVo vo : productList) {
|
||||
if (vo.getBomId() != null) {
|
||||
// 查询BOM明细
|
||||
WmsBomItemBo bomItemBo = new WmsBomItemBo();
|
||||
bomItemBo.setBomId(vo.getBomId());
|
||||
List<WmsBomItemVo> bomItems = wmsBomItemService.queryList(bomItemBo);
|
||||
vo.setBomItems(bomItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.klp.service.IWmsBomService;
|
||||
import com.klp.service.IWmsBomItemService;
|
||||
import com.klp.domain.bo.WmsBomBo;
|
||||
import com.klp.domain.bo.WmsBomItemBo;
|
||||
import com.klp.domain.vo.WmsBomItemVo;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -75,6 +76,20 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService {
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询原材料列表(带BOM信息)
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsRawMaterialVo> queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsRawMaterial> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsRawMaterialVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
|
||||
// 填充BOM信息
|
||||
fillBomInfo(result.getRecords());
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询原材料列表
|
||||
*/
|
||||
@@ -272,6 +287,25 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService {
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充BOM信息
|
||||
*/
|
||||
private void fillBomInfo(List<WmsRawMaterialVo> rawMaterialList) {
|
||||
if (rawMaterialList == null || rawMaterialList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (WmsRawMaterialVo vo : rawMaterialList) {
|
||||
if (vo.getBomId() != null) {
|
||||
// 查询BOM明细
|
||||
WmsBomItemBo bomItemBo = new WmsBomItemBo();
|
||||
bomItemBo.setBomId(vo.getBomId());
|
||||
List<WmsBomItemVo> bomItems = wmsBomItemService.queryList(bomItemBo);
|
||||
vo.setBomItems(bomItems);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user