diff --git a/klp-wms/src/main/java/com/klp/controller/WmsActualWarehouseController.java b/klp-wms/src/main/java/com/klp/controller/WmsActualWarehouseController.java index bd094009..91b67094 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsActualWarehouseController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsActualWarehouseController.java @@ -59,6 +59,13 @@ public class WmsActualWarehouseController extends BaseController { return R.ok(iWmsActualWarehouseService.queryTree(bo)); } + /** + * 获取仅到二级的目录树(不包含三级节点) + */ + @GetMapping("/levelTwo") + public R> treeExcludeLevelThree(WmsActualWarehouseBo bo) { + return R.ok(iWmsActualWarehouseService.queryTreeExcludeLevelThree(bo)); + } /** * 导入实际库区/库位数据 */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsActualWarehouseService.java b/klp-wms/src/main/java/com/klp/service/IWmsActualWarehouseService.java index 2921e4bc..6414939b 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsActualWarehouseService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsActualWarehouseService.java @@ -57,4 +57,6 @@ public interface IWmsActualWarehouseService { * 校验并批量删除实际库区/库位自关联信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List queryTreeExcludeLevelThree(WmsActualWarehouseBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java index c84a0e8b..f3998a63 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsActualWarehouseServiceImpl.java @@ -80,6 +80,40 @@ public class WmsActualWarehouseServiceImpl implements IWmsActualWarehouseService }); return roots; } + @Override + public List queryTreeExcludeLevelThree(WmsActualWarehouseBo bo) { + if (bo == null) { + bo = new WmsActualWarehouseBo(); + } + // 设置查询条件,排除三级节点(actualWarehouseType=3) + LambdaQueryWrapper 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 flatList = baseMapper.selectVoList(wrapper); + Map nodeMap = new LinkedHashMap<>(); + flatList.forEach(item -> { + WmsActualWarehouseTreeVo node = new WmsActualWarehouseTreeVo(); + BeanUtil.copyProperties(item, node); + nodeMap.put(node.getActualWarehouseId(), node); + }); + + List 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 buildQueryWrapper(WmsActualWarehouseBo bo) { Map params = bo.getParams(); @@ -225,4 +259,6 @@ public class WmsActualWarehouseServiceImpl implements IWmsActualWarehouseService } return baseMapper.deleteBatchIds(ids) > 0; } + + }