package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.carrier.settlement.CarrierSettlementManagementDTO;
import com.prolog.rdc.tms.model.dto.pay.BmsBillPayFeeDetailDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsLogOperationDTO;
import com.prolog.rdc.tms.model.vo.carrier.settlement.CarrierSettlementManagementQueryVO;
import com.prolog.rdc.tms.model.vo.carrier.settlement.CarrierSettlementManagementUpdateVO;

import java.util.List;

/**
 * @author hongbo.pan
 * @date 2023/6/28
 */
public interface BmsCarrierSettlementManagementService {

    /**
     * 结算单信息
     *
     * @param vo
     * @return Page<CarrierSettlementManagementDTO>
     */
    Page<CarrierSettlementManagementDTO> findByCondition(CarrierSettlementManagementQueryVO vo);

    /**
     * detail
     * @param id
     * @return
     */
    CarrierSettlementManagementDTO detail(Long id);

    /**
     * getFeeDetail
     * @param id
     * @return
     */
    List<BmsBillPayFeeDetailDTO> getFeeDetail(Long id);

    /**
     * getLog
     * @param id
     * @return
     */
    List<BmsLogOperationDTO> getLog(Long id);

    /**
     * update
     * @param vo
     */
    void update(CarrierSettlementManagementUpdateVO vo);

    /**
     * audit
     * @param idList
     */
    void audit(List<Long> idList);

    /**
     * invalid
     * @param idList
     */
    void invalid(List<Long> idList);

}
