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);