package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.carrier.settlement.CarrierSettlementFeeDetailDTO;
import com.prolog.rdc.tms.model.entity.BmsBillPayFeeDetailModel;
import com.prolog.rdc.tms.model.entity.BmsPaySettlementModel;
import com.prolog.rdc.tms.model.vo.carrier.settlement.CarrierSettlementQueryVO;
import com.prolog.rdc.tms.model.vo.carrier.settlement.CarrierSettlementVO;

import java.util.List;

/**
 * @author hongbo.pan
 * @date 2023/6/25
 */
public interface BmsCarrierSettlementService {

    /**
     * 费用信息
     *
     * @param vo
     * @return Page<CarrierSettlementFeeDetailDTO>
     */
    Page<CarrierSettlementFeeDetailDTO> findSettlementFeeDetail(CarrierSettlementQueryVO vo);

    /**
     * 费用结算
     * @param vo
     */
    void feeSettlement(CarrierSettlementVO vo);

    /**
     * initPaySettlement
     * @param feeDetailIdList
     * @return
     */
    BmsPaySettlementModel initPaySettlement(List<Long> feeDetailIdList);

    /**
     * batchAddPayFeeDetail
     * @param payFeeDetailModelList
     * @param paySettlementModel
     */
    void batchAddPayFeeDetail(List<BmsBillPayFeeDetailModel> payFeeDetailModelList, BmsPaySettlementModel paySettlementModel);

}
