package com.shinsoft.sto.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.shinsoft.sto.model.Config;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * <p>
 * 库房配置表 Mapper 接口
 * </p>
 *
 * @author system
 * @since 2024-10-15
 */
public interface ConfigMapper extends BaseMapper<Config> {

    @Select("SELECT * FROM STO_CONFIG WHERE ID = #{id}")
    Config selectByPK(String id);

    /**
     * 分级查询
     *
     * @param
     * @return
     */
    Page<Config> selectAll(Page<Config> autoPage,
                             @Param("activeStatus") String activeStatus,
                             @Param("storeNm") String storeNm,
                             @Param("areaCd") String areaCd,
                             @Param("stackCd") String stackCd,
                             @Param("storeType") String storeType);
    /**
     * 分级查询
     *
     * @param
     * @return
     */
    Page<Config> selectAllFj(Page<Config> autoPage,
                             @Param("fId2") String fId2,
                             @Param("fId3") String fId3,
                             @Param("activeStatus") String activeStatus,
                             @Param("storeNm") String storeNm,
                             @Param("storeType") String storeType);

    /**
     * item 库房
     *
     * @param
     * @return
     */
    Page<Config> selectAllKFItem(Page<Config> autoPage,
                             @Param("storeType") String storeType,
                             @Param("storeNm") String storeNm ,
                            @Param("itemCd") String itemCd);
    /**
     * 库房
     *
     * @param
     * @return
     */
    Page<Config> selectAllKF(Page<Config> autoPage,
                             @Param("storeType") String storeType,
                             @Param("storeNm") String storeNm  );

    /**
     * 区号
     *
     * @param
     * @return
     */
    Page<Config> selectAllQH(Page<Config> autoPage,
                             @Param("fId") String fId ,@Param("areaCd") String areaCd  );
    /**
     * 垛位号
     *
     * @param
     * @return
     */
    Page<Config> selectAllDWH(Page<Config> autoPage,
                             @Param("fId") String fId ,@Param("stackCd") String stackCd);

    Config selectAllById(@Param("id") String id);

    String getMax();

}
