package com.zbf.system.service;

import java.util.List;

import com.zbf.common.annotation.DataScope;
import com.zbf.system.domain.TBaseStorage;
import com.zbf.system.domain.TBaseStorageArea;
import com.zbf.system.domain.TBaseStorageLocationRecord;
import org.apache.ibatis.annotations.Select;

/**
 * 仓库管理Service接口
 *
 * @author tony
 * @date 2024-06-19
 */
public interface ITBaseStorageService
{
    /**
     * 查询仓库管理
     *
     * @param id 仓库管理主键
     * @return 仓库管理
     */
    public TBaseStorage selectTBaseStorageById(Long id);

    /**
     * 查询仓库管理列表
     *
     * @param tBaseStorage 仓库管理
     * @return 仓库管理集合
     */
    public List<TBaseStorage> selectTBaseStorageList(TBaseStorage tBaseStorage);
    /**
     * 新增仓库管理
     *
     * @param tBaseStorage 仓库管理
     * @return 结果
     */
    public int insertTBaseStorage(TBaseStorage tBaseStorage);

    /**
     * 修改仓库管理
     *
     * @param tBaseStorage 仓库管理
     * @return 结果
     */
    public int updateTBaseStorage(TBaseStorage tBaseStorage);

    /**
     * 批量删除仓库管理
     *
     * @param ids 需要删除的仓库管理主键集合
     * @return 结果
     */
    public int deleteTBaseStorageByIds(Long[] ids);

    /**
     * 删除仓库管理信息
     *
     * @param id 仓库管理主键
     * @return 结果
     */
    public int deleteTBaseStorageById(Long id);

    /**
     * 批量禁用仓库管理
     *
     * @param ids 需要禁用的仓库管理主键集合
     * @return 结果
     */
    public int disabledTBaseStorageByIds(Long[] ids);

    /**
     * 批量启用仓库管理
     *
     * @param ids 需要启用的仓库管理主键集合
     * @return 结果
     */
    public int enableTBaseStorageByIds(Long[] ids);

    /**
     * 改变状态
     *
     * @param tBaseStorage
     * @return 结果
     */
    public int updateStatus(TBaseStorage tBaseStorage);

    /**
     * 查询库存库区库位信息
     * @param tBaseStorageLocation
     * @return
     */
    public List<TBaseStorageLocationRecord> selectStorageAndAreaAndLocation(TBaseStorageLocationRecord tBaseStorageLocation);


    String getIsAgvByStorageId(String storageId);
}

