From 102eb8bea70e3a7476e1bb13a4addaca5a915964 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 13 Jan 2026 13:10:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(warehouse):=20=E5=AE=9E=E7=8E=B0=E4=B8=80?= =?UTF-8?q?=E7=BA=A7=E5=BA=93=E4=BD=8D=E7=9A=84=E5=A4=9A=E7=BA=A7=E5=AD=90?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当库位类型为一级时,查询其所有二级子节点 - 对每个二级节点递归调用queryList获取有效最小层级库位 - 支持三级未拆分或四级库位的完整查询路径 - 返回所有子节点的ID列表,完善库位层级管理逻辑 --- .../impl/WmsMaterialCoilServiceImpl.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 0c0b5145..35374dc8 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -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 level2List = actualWarehouseService.queryList(level2Bo); + if (level2List == null || level2List.isEmpty()) { + return new ArrayList<>(); + } + List resultIds = new ArrayList<>(); + for (WmsActualWarehouseVo level2 : level2List) { + if (level2 == null || level2.getActualWarehouseId() == null) { + continue; + } + WmsActualWarehouseBo childBo = new WmsActualWarehouseBo(); + childBo.setParentId(level2.getActualWarehouseId()); + List 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);