package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.carrier.reconciliation.CarrierReconciliationFeeDetailDTO;
import com.prolog.rdc.tms.model.dto.carrier.reconciliation.CarrierReconciliationShipBillDTO;
import com.prolog.rdc.tms.model.dto.pay.BmsBillPayFeeDetailDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsLogOperationDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsShipBillDetailDTO;
import com.prolog.rdc.tms.model.vo.carrier.reconciliation.CarrierReconciliationOperateVO;
import com.prolog.rdc.tms.model.vo.carrier.reconciliation.CarrierReconciliationQueryVO;

import java.util.List;

/**
 * 承运商应付管理-对账管理
 * @author hongbo.pan
 * @date 2023/6/20
 */
public interface BmsCarrierReconciliationService {

    /**
     * findReconciliationShipBill
     * @param vo
     * @return
     */
    Page<CarrierReconciliationShipBillDTO> findReconciliationShipBill(CarrierReconciliationQueryVO vo);

    /**
     * findReconciliationFeeDetail
     * @param vo
     * @return
     */
    Page<CarrierReconciliationFeeDetailDTO> findReconciliationFeeDetail(CarrierReconciliationQueryVO vo);

    /**
     * getItem
     * @param id
     * @return
     */
    List<BmsShipBillDetailDTO> getItem(Long id);

    /**
     * getAudit
     * @param id
     * @return
     */
    List<Object> getAudit(Long id);

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

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

    /**
     * submit
     * @param vo
     */
    void submit(CarrierReconciliationOperateVO vo);

    /**
     * confirm
     * @param vo
     */
    void confirm(CarrierReconciliationOperateVO vo);
}
