package com.klp.service; import com.klp.domain.vo.WmsActualWarehouseVo; import com.klp.domain.vo.WmsActualWarehouseTreeVo; import com.klp.domain.vo.WmsActualWarehouseImportVo; import com.klp.domain.bo.WmsActualWarehouseBo; import com.klp.domain.bo.WmsActualWarehouseHierarchyBo; import com.klp.domain.bo.WmsActualWarehouseBatchGenerateBo; import com.klp.domain.bo.WmsActualWarehouseSplitBo; import java.util.Collection; import java.util.List; /** * 实际库区/库位自关联Service接口 * * @author klp * @date 2025-11-24 */ public interface IWmsActualWarehouseService { /** * 查询实际库区/库位自关联 */ WmsActualWarehouseVo queryById(Long actualWarehouseId); /** * 查询实际库区/库位自关联列表 */ List queryList(WmsActualWarehouseBo bo); /** * 查询完整的三级目录树 */ List queryTree(WmsActualWarehouseBo bo); /** * 新增实际库区/库位自关联 */ Boolean insertByBo(WmsActualWarehouseBo bo); /** * 通过一次提交批量创建/复用三级目录 */ List createHierarchy(WmsActualWarehouseHierarchyBo bo); /** * 导入层级目录 */ void importHierarchy(List importList); /** * 修改实际库区/库位自关联 */ Boolean updateByBo(WmsActualWarehouseBo bo); /** * 校验并批量删除实际库区/库位自关联信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); List queryTreeExcludeLevelThree(WmsActualWarehouseBo bo); /** * 批量生成库位 * @return 成功创建数量 */ int batchGenerateLocations(WmsActualWarehouseBatchGenerateBo bo); /** * 将给定的三级库位拆分为两个小库位 */ void splitLocations(WmsActualWarehouseSplitBo bo); /** * 将已拆分的库位合并回一个大库位 */ void mergeLocations(WmsActualWarehouseSplitBo bo); /** * 释放实际库区/库位: * - 将该库区设置为未被占用(isEnabled=1) * - 清空钢卷表中绑定此库区且为现存(data_type=1)、未删除(del_flag=0)的记录的 actual_warehouse_id */ void releaseActualWarehouse(Long actualWarehouseId); /** * 修正已生成库位的排序号(交错排序) * @param parentId 父库位ID * @return 修正的记录数 */ int fixSortNoByParentId(Long parentId); }