package com.ruoyi.warehouseBusiness.mapper;


import com.ruoyi.basicData.domain.TGoods;
import com.ruoyi.common.core.domain.entity.TWarehouse;
import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
import org.apache.ibatis.annotations.Mapper;
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 2020-12-11
 */
@Mapper
public interface TWarehouseAgreementMapper {
    /**
     * 查询仓储费
     *
     * @param fId 仓储费ID
     * @return 仓储费
     */
    public TWarehouseAgreement selectTWarehouseAgreementById(Long fId);

    public List<Map<String,Object>> selectTWarehouseAgreementByCorpsId(Long fCorpId);

    /**
     * 查询仓储费列表
     *
     * @param tWarehouseAgreement 仓储费
     * @return 仓储费集合
     */
    public List<Map<String, Object>> selectTWarehouseAgreementList1(TWarehouseAgreement tWarehouseAgreement);
    /**
     * 查询仓储费列表
     *
     * @param tWarehouseAgreement 仓储费
     * @return 仓储费集合
     */
    public List<TWarehouseAgreement> selectTWarehouseAgreementList(TWarehouseAgreement tWarehouseAgreement);

    /**
     * 根据商品类别 ids 获取商品类别数据
     */
    List<TGoods> selectTGoodsTypeByTypeId(@Param("typeIds") int[] typeIds);

    /**
     * 根据仓库 ids 获取仓库数据
     */
    List<TWarehouse> selectTWarehouseByIds(@Param("fIds") int[] fIds);

    /**
     * 新增仓储费
     *
     * @param tWarehouseAgreement 仓储费
     * @return 结果
     */
    public int insertTWarehouseAgreement(TWarehouseAgreement tWarehouseAgreement);

    /**
     * 修改仓储费
     *
     * @param tWarehouseAgreement 仓储费
     * @return 结果
     */
    public int updateTWarehouseAgreement(TWarehouseAgreement tWarehouseAgreement);

    /**
     * 删除仓储费
     *
     * @param fId 仓储费ID
     * @return 结果
     */
    public int deleteTWarehouseAgreementById(Long fId);

    /**
     * 批量删除仓储费
     *
     * @param fIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTWarehouseAgreementByIds(Long[] fIds);

    List<TWarehouseAgreement> selectTWarehouseAgreementListOrderyByBeginDate(TWarehouseAgreement tWarehouseAgreement);

    /**
     * 协议提醒
     *
     * @param tWarehouseAgreement 仓储费
     * @return 仓储费集合
     */
    public List<Map<String, Object>> agreementRemind(TWarehouseAgreement tWarehouseAgreement);

    /**
     * bi大屏协议数量
     *
     * @return
     */
    public Map<String, Object> biContractCount(@Param("beginDate") String beginDate,
                                               @Param("endDate") String endDate,
                                               @Param("external") String external,
                                               @Param("customerId") Long customerId);

    /**
     * 仓储协议列表
     *
     * @return 仓储费集合
     */
    public List<Map<String, Object>> biContractList(@Param("external") String external,
                                                    @Param("customerId") Long customerId);

}
