package com.ruoyi.shipping.mapper;

import java.util.List;
import com.ruoyi.shipping.domain.TCtnpriceItems;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

/**
 * 海运运价从Mapper接口
 * 
 * @author ruoyi
 * @date 2021-04-06
 */
public interface TCtnpriceItemsMapper 
{
    /**
     * 查询海运运价从
     * 
     * @param fId 海运运价从ID
     * @return 海运运价从
     */
    public TCtnpriceItems selectTCtnpriceItemsById(Long fId);

    /**
     * 查询海运运价从列表
     * 
     * @param tCtnpriceItems 海运运价从
     * @return 海运运价从集合
     */
    public List<TCtnpriceItems> selectTCtnpriceItemsList(TCtnpriceItems tCtnpriceItems);

    /**
     * 新增海运运价从
     * 
     * @param tCtnpriceItems 海运运价从
     * @return 结果
     */
    public int insertTCtnpriceItems(TCtnpriceItems tCtnpriceItems);

    /**
     * 修改海运运价从
     * 
     * @param tCtnpriceItems 海运运价从
     * @return 结果
     */
    public int updateTCtnpriceItems(TCtnpriceItems tCtnpriceItems);

    /**
     * 删除海运运价从
     * 
     * @param fId 海运运价从ID
     * @return 结果
     */
    public int deleteTCtnpriceItemsById(Long fId);
    /**
     * 删除海运运价从
     *
     * @param fPid 海运运价从ID
     * @return 结果
     */
    public int deleteTCtnpriceItemsByfPid(Long fPid);
    /**
     * 删除海运运价从
     *
     * @param fPid 海运运价从ID
     * @return 结果
     */
    public int deleteTCtnpriceItemsByfPids(Long[] fPid);

    /**
     * 批量删除海运运价从
     * 
     * @param fIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTCtnpriceItemsByIds(Long[] fIds);

    /**
     * 查询最低运价
     * @param fPortofloadid 装货港
     * @param fDistinationid 目的港
     * @param fNo 集装箱编号
     * @return
     */
    public String selectMoney(@Param("fPortofloadid") Long fPortofloadid,
                            @Param("fDistinationid") Long fDistinationid,
                            @Param("fNo") String fNo);
    /**
     * 查询最低运价
     * @param fPortofloadid 装货港
     * @param fDistinationid 目的港
     * @param fNo 集装箱编号
     * @return
     */
    public List<String> selectPriceMoney(@Param("fPortofloadid") Long fPortofloadid,
                                         @Param("fDistinationid") Long fDistinationid,
                                         @Param("fNo") String fNo,
                                         @Param("fPortoftransshipment") Long fPortoftransshipment);

    /**
     * 获取集装箱运费
     * @param tCtnpriceItems
     * @return
     */
    public List<Long> containerPrice(TCtnpriceItems tCtnpriceItems);
    /**
     * 查询同一条件下集装箱运价是否存在
     *
     * @param fPid 主表id
     * @param fCntrid 集装箱id
     * @return 海运运价从集合
     */
    public List<TCtnpriceItems> selectItemMeaasge(@Param("fPid") Long fPid,
            @Param("fCntrid") Long fCntrid);

    /**
     * 根据航次 获取所有航次中对应箱型的最低价
     * @param fPid
     * @param fNo
     * @return
     */
    public String selectMinMoney(@Param("fNo") String fNo,
                                 @Param("fPid") List<Long> fPid);
}
