package com.ruoyi.finance.mapper;

import com.ruoyi.finance.domain.TFee;
import com.ruoyi.finance.domain.TWareHouseFees;
import com.ruoyi.finance.excel.Detailed;
import com.ruoyi.reportManagement.dto.TWarehousebill;
import com.ruoyi.warehouseBusiness.excel.TWareHouseExcelItem;
import org.apache.ibatis.annotations.Param;

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

/**
 * 财务数据主Mapper接口
 *
 * @author ruoyi
 * @date 2021-01-18
 */
public interface TFeeMapper {
    /**
     * 查询财务数据主
     *
     * @param fId 财务数据主ID
     * @return 财务数据主
     */
    public TFee selectTFeeById(Long fId);
    /**
     * 查询财务数据主
     *
     * @param fId 财务数据主ID
     * @return 财务数据主
     */
    public TFee selectTFeeByIdNew(Long fId);

    /**
     * 查询财务数据主列表
     *
     * @param tFee 财务数据主
     * @return 财务数据主集合
     */
    public List<TFee> selectTFeeList(TFee tFee);

    public List<Map<String, Object>> selectTFeeList1(TFee tFee);

    /**
     * 凯和确认账单查询
     * @param tFee
     * @return
     */
    public List<Map<String, Object>> webVersionTFee(TFee tFee);

    /**
     * 新增财务数据主
     *
     * @param tFee 财务数据主
     * @return 结果
     */
    public int insertTFee(TFee tFee);

    /**
     * 修改财务数据主
     *
     * @param tFee 财务数据主
     * @return 结果
     */
    public int updateTFee(TFee tFee);

    /**
     * 删除财务数据主
     *
     * @param fId 财务数据主ID
     * @return 结果
     */
    public int deleteTFeeById(Long fId);

    /**
     * 批量删除财务数据主
     *
     * @param fIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteTFeeByIds(Long[] fIds);

    /**
     *  查询 对账、 收费 数据
     * @return
     */
    public List<Map<String, Object>> warehouseBillsFeesList(@Param("map") Map<String, Object> map);

    public List<Map<String, Object>> warehouseBillsFeesListAccamount(@Param("map") Map<String, Object> map);
    //发票申请查询
    public List<Map<String, Object>> warehouseApplyFPFeesList(@Param("map") Map<String, Object> map);
    //开发票查询
    public List<Map<String, Object>> warehouseInvoiceFPFeesList(@Param("map") Map<String, Object> map);

    public List<Map<String, Object>> warehouseBillsKHFeesListAccamount(@Param("map") Map<String, Object> map);

    public List<Map<String, Object>> warehouseBillsFeesList1(TWareHouseFees tWareHouseFees);

    public List<Map<String, Object>> warehouseBillsFeesProfitList(TWareHouseFees tWareHouseFees);

    /**
     * 查询详情主表列表
     * @param fid
     * @return 详情主表集合
     */
    public List<TWareHouseExcelItem> selectTWarehousebillsItemsList(@Param("fId") Long fid);

    public List<Map<String, Object>> selectFeeList(TFee tFee);

    public List<Detailed> selectDetailedList(@Param("fId") Long fid);

    public List<Map<String, Object>> selectDetailedList1(TWarehousebill tWarehousebill);

    /**
     * 网页版发票查询
     * @param tFee
     * @return
     */
    public List<Map<String, Object>> webVersionInvoice(TFee tFee);

}
