package com.prolog.rdc.tms.dao.mapper;

import com.prolog.framework.dao.mapper.BaseMapper;
import com.prolog.rdc.tms.model.dto.income.ArReconciliationLoadingDTO;
import com.prolog.rdc.tms.model.dto.income.BmsLoadingBillIncomeFeeDTO;
import com.prolog.rdc.tms.model.dto.income.BmsShipBillIncomeFeeDTO;
import com.prolog.rdc.tms.model.dto.income.InventedLoadingBillIncomeFeeDTO;
import com.prolog.rdc.tms.model.entity.BmsBillIncomeFeeHeaderModel;
import com.prolog.rdc.tms.model.vo.income.ArReconciliationLoadingVO;
import com.prolog.rdc.tms.model.vo.income.BmsIncomeQueryVO;
import com.prolog.rdc.tms.model.vo.settlement.income.IncomeFeeSettlementPageVO;
import com.prolog.rdc.tms.model.vo.income.InventedLoadingFeeVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface BmsBillIncomeFeeHeaderMapper extends BaseMapper<BmsBillIncomeFeeHeaderModel> {

    /**
     * findShipBillFee
     * @param vo
     * @return
     */
    List<BmsShipBillIncomeFeeDTO> findShipBillFee(@Param("vo") BmsIncomeQueryVO vo);

    /**
     * findLoadingBillFee
     * @param vo
     * @return
     */
    List<BmsLoadingBillIncomeFeeDTO> findLoadingBillFee(@Param("vo") BmsIncomeQueryVO vo);


    /**
     * findLoadingBillIncomeFeeForSettlement
     * @param vo
     * @return
     */
    List<BmsLoadingBillIncomeFeeDTO> findLoadingBillIncomeFeeForSettlement(@Param("vo") IncomeFeeSettlementPageVO vo);

    /**
     * findInventedLoadingBillFee
     * @param vo
     * @return
     */
    List<InventedLoadingBillIncomeFeeDTO> findInventedLoadingBillFee(@Param("vo") InventedLoadingFeeVO vo);


    /**
     * findLoadingBillFeeForAr
     * @param vo
     * @return
     */
    List<ArReconciliationLoadingDTO> findLoadingBillFeeForAr(@Param("vo") ArReconciliationLoadingVO vo);
}
