package com.jeethink.dataCenter.service;

import com.jeethink.dataCenter.domain.Warehouse;

import java.util.List;

/**
 * 库房管理 服务层
 *
 * @author wms
 */
public interface IWarehouseService
{

    /**
     * 查询库房管理数据
     *
     * @param warehouse 库房信息
     * @return 库房信息合集
     */
    public List<Warehouse> selectWarehouseList(Warehouse warehouse);

    /**
     * 根据ID查询信息
     *
     * @param id 库房ID
     * @return 库房信息
     */
    public Warehouse selectWarehouseById(Long id);

    /**
     * 校验库房名称是否唯一
     *
     * @param warehouse 库房信息
     * @return 结果
     */
    public String checkNameUnique(Warehouse warehouse);

    /**
     * 新增库房信息
     *
     * @param warehouse 库房信息
     * @return 结果
     */
    public int insertWarehouse(Warehouse warehouse);

    /**
     * 根据ID查询所有正常状态的子库房数
     *
     * @param id 库房ID
     * @return 子库房数
     */
    public int selectNormalChildrenById(Long id);

    /**
     * 修改库房信息
     *
     * @param warehouse 库房信息
     * @return 结果
     */
    public int updateWarehouse(Warehouse warehouse);

    /**
     * 是否存在子库房
     *
     * @param id 库房ID
     * @return 结果
     */
    public boolean hasChildById(Long id);

    /**
     * 删除库房信息
     *
     * @param id 库房ID
     * @return 结果
     */
    public int deleteWarehouseById(Long id);

    /**
     * 根据关联人员查找库房
     *
     * @param relaUser 关联人员
     * @return 库房合集 （原则上只有1个）
     */
    List<Warehouse> selectWarehouseByRelaUser(Long relaUser);

    void deleteArchives(Long id);

    String selectArchivesById(String archivesId);

    List<String> selectArchivesByParentId(Long parentId);
}
