feat(wms): 新增查询二级库区树结构功能
- 在 IWmsActualWarehouseService 接口中新增 queryTreeExcludeLevelThree 方法 - 在 WmsActualWarehouseController 中添加 /levelTwo 接口用于获取二级库区树 - 实现 queryTreeExcludeLevelThree 方法逻辑,过滤掉三级库位节点 - 构建查询条件时排除 actualWarehouseType 为 3 的记录 - 组装树形结构时只保留两级目录关系
This commit is contained in:
@@ -59,6 +59,13 @@ public class WmsActualWarehouseController extends BaseController {
|
||||
return R.ok(iWmsActualWarehouseService.queryTree(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取仅到二级的目录树(不包含三级节点)
|
||||
*/
|
||||
@GetMapping("/levelTwo")
|
||||
public R<List<WmsActualWarehouseTreeVo>> treeExcludeLevelThree(WmsActualWarehouseBo bo) {
|
||||
return R.ok(iWmsActualWarehouseService.queryTreeExcludeLevelThree(bo));
|
||||
}
|
||||
/**
|
||||
* 导入实际库区/库位数据
|
||||
*/
|
||||
|
||||
@@ -57,4 +57,6 @@ public interface IWmsActualWarehouseService {
|
||||
* 校验并批量删除实际库区/库位自关联信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<WmsActualWarehouseTreeVo> queryTreeExcludeLevelThree(WmsActualWarehouseBo bo);
|
||||
}
|
||||
|
||||
@@ -80,6 +80,40 @@ public class WmsActualWarehouseServiceImpl implements IWmsActualWarehouseService
|
||||
});
|
||||
return roots;
|
||||
}
|
||||
@Override
|
||||
public List<WmsActualWarehouseTreeVo> queryTreeExcludeLevelThree(WmsActualWarehouseBo bo) {
|
||||
if (bo == null) {
|
||||
bo = new WmsActualWarehouseBo();
|
||||
}
|
||||
// 设置查询条件,排除三级节点(actualWarehouseType=3)
|
||||
LambdaQueryWrapper<WmsActualWarehouse> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(StringUtils.isNotBlank(bo.getActualWarehouseCode()), WmsActualWarehouse::getActualWarehouseCode, bo.getActualWarehouseCode());
|
||||
wrapper.like(StringUtils.isNotBlank(bo.getActualWarehouseName()), WmsActualWarehouse::getActualWarehouseName, bo.getActualWarehouseName());
|
||||
wrapper.eq(bo.getActualWarehouseType() != null, WmsActualWarehouse::getActualWarehouseType, bo.getActualWarehouseType());
|
||||
wrapper.eq(bo.getIsEnabled() != null, WmsActualWarehouse::getIsEnabled, bo.getIsEnabled());
|
||||
// 排除三级节点(类型为3的节点)
|
||||
wrapper.ne(WmsActualWarehouse::getActualWarehouseType, 3);
|
||||
wrapper.orderByAsc(WmsActualWarehouse::getSortNo, WmsActualWarehouse::getActualWarehouseId);
|
||||
|
||||
List<WmsActualWarehouseVo> flatList = baseMapper.selectVoList(wrapper);
|
||||
Map<Long, WmsActualWarehouseTreeVo> nodeMap = new LinkedHashMap<>();
|
||||
flatList.forEach(item -> {
|
||||
WmsActualWarehouseTreeVo node = new WmsActualWarehouseTreeVo();
|
||||
BeanUtil.copyProperties(item, node);
|
||||
nodeMap.put(node.getActualWarehouseId(), node);
|
||||
});
|
||||
|
||||
List<WmsActualWarehouseTreeVo> roots = new ArrayList<>();
|
||||
nodeMap.values().forEach(node -> {
|
||||
Long parentId = Optional.ofNullable(node.getParentId()).orElse(0L);
|
||||
if (parentId == 0 || !nodeMap.containsKey(parentId)) {
|
||||
roots.add(node);
|
||||
} else {
|
||||
nodeMap.get(parentId).getChildren().add(node);
|
||||
}
|
||||
});
|
||||
return roots;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<WmsActualWarehouse> buildQueryWrapper(WmsActualWarehouseBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
@@ -225,4 +259,6 @@ public class WmsActualWarehouseServiceImpl implements IWmsActualWarehouseService
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user