package com.hw.wms.service;

import java.util.List;

import com.hw.common.core.utils.DateUtils;
import com.hw.wms.domain.WmsBaseLocation;

/**
 * 库位Service接口
 *
 * @author xs
 * @date 2023-12-20
 */
public interface IWmsBaseLocationService
{
    /**
     * 查询库位
     *
     * @param locationId 库位主键
     * @return 库位
     */
    public WmsBaseLocation selectWmsBaseLocationByLocationId(Long locationId);

    /**
     * 查询库位列表
     *
     * @param wmsBaseLocation 库位
     * @return 库位集合
     */
    public List<WmsBaseLocation> selectWmsBaseLocationList(WmsBaseLocation wmsBaseLocation);

    /**
     * 新增库位
     *
     * @param wmsBaseLocation 库位
     * @return 结果
     */
    public int insertWmsBaseLocation(WmsBaseLocation wmsBaseLocation);

    /**
     * 修改库位
     *
     * @param wmsBaseLocation 库位
     * @return 结果
     */
    public int updateWmsBaseLocation(WmsBaseLocation wmsBaseLocation);

    /**
     * 批量删除库位
     *
     * @param locationIds 需要删除的库位主键集合
     * @return 结果
     */
    public int deleteWmsBaseLocationByLocationIds(Long[] locationIds);

    /**
     * 删除库位信息
     *
     * @param locationId 库位主键
     * @return 结果
     */
    public int deleteWmsBaseLocationByLocationId(Long locationId);

    /**
     * 查询库位列表Join warehouse
     *
     * @param wmsBaseLocation 库位
     * @return 库位
     */
    public List<WmsBaseLocation> selectWmsBaseLocationJoinList(WmsBaseLocation wmsBaseLocation);

    /**
     * 锁定库位
     *
     * @param locationId 库位ID
     * @return 结果
     */
    public int lockWmsBaseLocation(Long locationId);

    /**
     * 解锁库位
     *
     * @param locationId 库位ID
     * @return 结果
     */
    public int unlockWmsBaseLocation(Long locationId);
}
