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:
2025-10-31 15:57:48 +08:00
parent 056b6aabac
commit 5bd8769a7b
8 changed files with 108 additions and 0 deletions

View File

@@ -46,6 +46,14 @@ public class WmsProductController extends BaseController {
return iWmsProductService.queryPageList(bo, pageQuery); return iWmsProductService.queryPageList(bo, pageQuery);
} }
/**
* 查询产品列表带BOM信息
*/
@GetMapping("/listWithBom")
public TableDataInfo<WmsProductVo> listWithBom(WmsProductBo bo, PageQuery pageQuery) {
return iWmsProductService.queryPageListWithBom(bo, pageQuery);
}
/** /**
* 导出产品列表 * 导出产品列表
*/ */

View File

@@ -45,6 +45,14 @@ public class WmsRawMaterialController extends BaseController {
return iWmsRawMaterialService.queryPageList(bo, pageQuery); return iWmsRawMaterialService.queryPageList(bo, pageQuery);
} }
/**
* 查询原材料列表带BOM信息
*/
@GetMapping("/listWithBom")
public TableDataInfo<WmsRawMaterialVo> listWithBom(WmsRawMaterialBo bo, PageQuery pageQuery) {
return iWmsRawMaterialService.queryPageListWithBom(bo, pageQuery);
}
/** /**
* 导出原材料列表 * 导出原材料列表
*/ */

View File

@@ -1,6 +1,8 @@
package com.klp.domain.vo; package com.klp.domain.vo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.annotation.ExcelDictFormat;
@@ -116,5 +118,10 @@ public class WmsProductVo {
@ExcelProperty(value = "类型") @ExcelProperty(value = "类型")
private String type; private String type;
/**
* BOM明细信息
*/
private List<WmsBomItemVo> bomItems;
} }

View File

@@ -1,6 +1,8 @@
package com.klp.domain.vo; package com.klp.domain.vo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.annotation.ExcelDictFormat;
@@ -211,5 +213,10 @@ public class WmsRawMaterialVo {
@ExcelProperty(value = "在途量") @ExcelProperty(value = "在途量")
private BigDecimal onTheWay; private BigDecimal onTheWay;
/**
* BOM明细信息
*/
private List<WmsBomItemVo> bomItems;
} }

View File

@@ -48,5 +48,10 @@ public interface IWmsProductService {
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 查询产品列表带BOM信息
*/
TableDataInfo<WmsProductVo> queryPageListWithBom(WmsProductBo bo, PageQuery pageQuery);
DashboardOverviewVO getDashboardOverview(); DashboardOverviewVO getDashboardOverview();
} }

View File

@@ -51,4 +51,9 @@ public interface IWmsRawMaterialService {
* 查询原材料列表(含需求、库存、在途信息) * 查询原材料列表(含需求、库存、在途信息)
*/ */
TableDataInfo<WmsRawMaterialVo> queryPageListWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery); TableDataInfo<WmsRawMaterialVo> queryPageListWithDemand(WmsRawMaterialBo bo, PageQuery pageQuery);
/**
* 查询原材料列表带BOM信息
*/
TableDataInfo<WmsRawMaterialVo> queryPageListWithBom(WmsRawMaterialBo bo, PageQuery pageQuery);
} }

View File

@@ -22,6 +22,7 @@ import com.klp.service.IWmsBomService;
import com.klp.service.IWmsBomItemService; import com.klp.service.IWmsBomItemService;
import com.klp.domain.bo.WmsBomBo; import com.klp.domain.bo.WmsBomBo;
import com.klp.domain.bo.WmsBomItemBo; import com.klp.domain.bo.WmsBomItemBo;
import com.klp.domain.vo.WmsBomItemVo;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@@ -61,6 +62,20 @@ public class WmsProductServiceImpl implements IWmsProductService {
return TableDataInfo.build(result); 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; 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);
}
}
}
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */

View File

@@ -30,6 +30,7 @@ import com.klp.service.IWmsBomService;
import com.klp.service.IWmsBomItemService; import com.klp.service.IWmsBomItemService;
import com.klp.domain.bo.WmsBomBo; import com.klp.domain.bo.WmsBomBo;
import com.klp.domain.bo.WmsBomItemBo; import com.klp.domain.bo.WmsBomItemBo;
import com.klp.domain.vo.WmsBomItemVo;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -75,6 +76,20 @@ public class WmsRawMaterialServiceImpl implements IWmsRawMaterialService {
return TableDataInfo.build(result); 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; 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);
}
}
}
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */