package com.ruoyi.shipping.mapper;

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

import com.ruoyi.shipping.domain.TAddress;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

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

/**
 * 地点基础信息（港口 码头 堆场 航线）Mapper接口
 * 
 * @author ruoyi
 * @date 2021-03-22
 */
public interface TAddressMapper 
{
    /**
     * 查询地点基础信息（港口 码头 堆场 航线）
     * 
     * @param fId 地点基础信息（港口 码头 堆场 航线）ID
     * @return 地点基础信息（港口 码头 堆场 航线）
     */
    public TAddress selectTAddressById(Long fId);

    /**
     * 查询地点基础信息（港口 码头 堆场 航线）列表
     * 
     * @param tAddress 地点基础信息（港口 码头 堆场 航线）
     * @return 地点基础信息（港口 码头 堆场 航线）集合
     */
    public List<TAddress> selectTAddressList(TAddress tAddress);

    /**
     * 查看运输信息
     * @param tAddress
     * @return
     */
    public List<TAddress> selectCarriageList(TAddress tAddress);


    public List<Map<String, Object>> selectTAddressListMap(TAddress tAddress);

    /**
     * 查询堆场信息
     * @param tAddress
     * @return
     */
    public List<TAddress> selectStockDump(TAddress tAddress);
    /**
     * 查询码头信息
     * @param tAddress
     * @return
     */
    public List<TAddress> selectWarfDump(TAddress tAddress);

    /**
     * 查看港口名称
     * @param tAddress
     * @return
     */
    public List<Map<String, Object>>selectPortName(TAddress tAddress);
    /**
     * 查看航线名称
     * @param tAddress
     * @return
     */
    public List<Map<String, Object>>selectAirLineName(TAddress tAddress);
    /**
     * 查看堆场名称
     * @param tAddress
     * @return
     */
    public List<Map<String, Object>>selectStorageName(TAddress tAddress);
    /**
     * 查看码头名称
     * @param tAddress
     * @return
     */
    public List<Map<String, Object>>selectWharfName(TAddress tAddress);


    /**
     * 查看港口信息
     * @param tAddress
     * @return
     */
    public List<TAddress>selectPortDump(TAddress tAddress);


    /**
     * 新增地点基础信息（港口 码头 堆场 航线）
     * 
     * @param tAddress 地点基础信息（港口 码头 堆场 航线）
     * @return 结果
     */
    public int insertTAddress(TAddress tAddress);

    /**
     * 修改地点基础信息（港口 码头 堆场 航线）
     * 
     * @param tAddress 地点基础信息（港口 码头 堆场 航线）
     * @return 结果
     */
    public int updateTAddress(TAddress tAddress);

    /**
     * 删除地点基础信息（港口 码头 堆场 航线）
     * 
     * @param fId 地点基础信息（港口 码头 堆场 航线）ID
     * @return 结果
     */
    public int deleteTAddressById(Long fId);

    /**
     * 批量删除地点基础信息（港口 码头 堆场 航线）
     * 
     * @param fIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTAddressByIds(Long[] fIds);

    /**
     * 批量停用数据
     * @param fIds
     * @return
     */
    public int updateTAddressStatus(Long[] fIds);

    /**
     *  查询地点基础 下拉信息
     * @param tAddress  条件
     * @return  结果
     */
    public List<TAddress> selectTAddressBasicList(TAddress tAddress);

    /**
     * 查询地址表里的编号
     * @param tAddress
     * @return
     */
    public TAddress selectAddressFno(TAddress tAddress);
    /**
     * 查询地址表里的名称
     * @param tAddress
     * @return
     */
    public TAddress selectAddressFName(TAddress tAddress);
    /**
     * 查询地点
     * @param
     * @return
     */
    public List<TAddress> selectadress();

    /**
     * 根据名称获取地点id
     * @param fNam
     * @return
     */
    public Long selectTAddressByfName(@Param("fNam") String fNam);

    /**
     * 根据类型 名称获取地点ID
     * @param fNam
     * @param fTypes
     * @return
     */
    public TAddress selectTAddressByfNameType(@Param("fNam") String fNam,
                                          @Param("fTypes") String fTypes);
}
