package com.ruoyi.shipping.mapper;

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

import com.ruoyi.shipping.domain.TCntrno;
import com.ruoyi.shipping.excel.BoxMessage;
import org.apache.ibatis.annotations.Param;

/**
 * 集装箱号Mapper接口
 * 
 * @author ruoyi
 * @date 2021-03-22
 */
public interface TCntrnoMapper 
{
    /**
     * 查询集装箱号
     * 
     * @param fId 集装箱号ID
     * @return 集装箱号
     */
    public TCntrno selectTCntrnoById(Long fId);
    /**
     * 查询集装箱号
     *
     * @param fNo 集装箱号箱号
     * @return 集装箱号
     */
    public TCntrno selectTCnTrNoByfNo(@Param("fNo") String fNo);

    /**
     * 查询集装箱号列表
     * 
     * @param tCntrno 集装箱号
     * @return 集装箱号集合
     */
    public List<TCntrno> selectTCntrnoList(TCntrno tCntrno);

    /**
     * 查询集装箱信息
     * @param tCntrno
     * @return
     */

    public List<TCntrno> selectTcntrnoMessage(@Param("tc") TCntrno tCntrno,
                                              @Param("address") String address,
                                              @Param("typeidName") String typeidName,
                                              @Param("cntrstatusName") String cntrstatusName,
                                              @Param("updateEFName") String updateEFName,
                                              @Param("cntrsize") Long cntrsize);


    /**
     * 新增集装箱号
     * 
     * @param tCntrno 集装箱号
     * @return 结果
     */
    public int insertTCntrno(TCntrno tCntrno);

    /**
     * 修改集装箱号
     * 
     * @param tCntrno 集装箱号
     * @return 结果
     */
    public int updateTCntrno(TCntrno tCntrno);
    /**
     * 根据箱号修改数据
     *
     * @param tCntrno 集装箱号
     * @return 结果
     */
    public int updateTCntrnoByfNo(TCntrno tCntrno);

    /**
     * 删除集装箱号
     * 
     * @param fId 集装箱号ID
     * @return 结果
     */
    public int deleteTCntrnoById(Long fId);

    /**
     * 批量删除集装箱号
     * 
     * @param fIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTCntrnoByIds(Long[] fIds);

    /**
     * 批量更新数据状态
     * @param fIds
     * @return
     */
    public int updateTcntrnoStatus(Long[] fIds);

    /**
     * 获取箱动态分布信息
     * @param sql
     * @param tCntrno
     * @return
     */
    public List<Map<String, Object>> getTCntrnoMessage(@Param("sql") String sql,
                                                       @Param("tCntrno") TCntrno tCntrno);

    /**
     * 查询编号唯一性
     * @param tCntrno
     * @return
     */
    public TCntrno selectTCntrnoFNo(TCntrno tCntrno);
    /**
     * 批量新增集装箱号
     *
     * @param tCntrno 集装箱号
     * @return 结果
     */
    public int insertTCntrnoList(List<TCntrno> tCntrno);

    /**
     * 获取 箱号、地点、空重
     * @param tCntrno
     * @return
     */
    public List<Map<String, Object>> getTcntrnoFno(TCntrno tCntrno);

    /**
     * 获取箱分布情况
     * @param tCntrno
     * @return
     */
    public BoxMessage boxDistributionStatistics(TCntrno tCntrno);

    /**
     * 获取箱信息中地点为港口的地址  fUpdateaddress 地点ID   addressName 地点中文名
     * @return
     */
    public List<TCntrno> getBoxPortMessage();
    /**
     * 获取箱信息中地点不为港口的地址  fUpdateaddress 地点ID   addressName 地点中文名 portName 港口名称
     * @return
     */
    public List<TCntrno> getBoxAddressMessage();

    /**
     * 查询在船的集装箱备注
     * @param fUpdateaddress
     * @return
     */
    public List<TCntrno> getBoxRemark(@Param("fUpdateaddress") String fUpdateaddress);

    /**
     * 首页获取箱分布
     * @return
     */
    public List<Map<String,Object>>homeBox();

}
