feat(warehouse): 实现一级库位的多级子节点查询功能
- 当库位类型为一级时,查询其所有二级子节点 - 对每个二级节点递归调用queryList获取有效最小层级库位 - 支持三级未拆分或四级库位的完整查询路径 - 返回所有子节点的ID列表,完善库位层级管理逻辑
This commit is contained in:
@@ -576,6 +576,33 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
|
||||
Long warehouseType = warehouse.getActualWarehouseType();
|
||||
// 当为一级库位:查询其所有二级子节点,然后对每个二级节点调用 queryList 获取有效的最小层级库位(三级未拆分或四级)
|
||||
if (warehouseType != null && warehouseType == 1L) {
|
||||
WmsActualWarehouseBo level2Bo = new WmsActualWarehouseBo();
|
||||
level2Bo.setParentId(actualWarehouseId);
|
||||
List<WmsActualWarehouseVo> level2List = actualWarehouseService.queryList(level2Bo);
|
||||
if (level2List == null || level2List.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
List<Long> resultIds = new ArrayList<>();
|
||||
for (WmsActualWarehouseVo level2 : level2List) {
|
||||
if (level2 == null || level2.getActualWarehouseId() == null) {
|
||||
continue;
|
||||
}
|
||||
WmsActualWarehouseBo childBo = new WmsActualWarehouseBo();
|
||||
childBo.setParentId(level2.getActualWarehouseId());
|
||||
List<WmsActualWarehouseVo> children = actualWarehouseService.queryList(childBo);
|
||||
if (children != null && !children.isEmpty()) {
|
||||
for (WmsActualWarehouseVo ch : children) {
|
||||
Long id = ch.getActualWarehouseId();
|
||||
if (id != null) {
|
||||
resultIds.add(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultIds;
|
||||
}
|
||||
// 三级/四级库位:直接返回自身ID(无下级)
|
||||
if (warehouseType != null && (warehouseType == 3L || warehouseType == 4L)) {
|
||||
return Collections.singletonList(actualWarehouseId);
|
||||
|
||||
Reference in New Issue
Block a user