package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.income.*;
import com.prolog.rdc.tms.model.dto.shipbill.BmsLogOperationDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsShipBillDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsShipBillDetailDTO;
import com.prolog.rdc.tms.model.dto.shipbill.BmsShipBillPackageDTO;
import com.prolog.rdc.tms.model.vo.income.ArReconciliationLoadingVO;
import com.prolog.rdc.tms.model.vo.income.BmsIncomeFeeAddVO;
import com.prolog.rdc.tms.model.vo.income.BmsIncomeQueryVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author lhb
 */
public interface ArReconciliationMngService {

    /**
     * findShipBillFee
     * @param vo
     * @return
     */
    Page<BmsShipBillIncomeFeeDTO> findShipBillFee(BmsIncomeQueryVO vo);

    /**
     * findLoadingBillFee
     * @param vo
     * @return
     */
    Page<ArReconciliationLoadingDTO> findLoadingBillFee(ArReconciliationLoadingVO vo);

    /**
     * detailById
     * @param id
     * @return
     */
    BmsBillIncomeFeeInfoDTO detailById(Long id);

    /**
     * detailLoadingBillById
     * @param id
     * @return
     */
    BmsLoadingBillIncomeFeeInfoDTO detailLoadingBillById(Long id);

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

    void confirm(List<String> ids);

    /**
     * 导入
     * @param file
     */
    void importFeeAdjustData(MultipartFile file) throws Exception;

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


    /**
     * getShipBill
     * @param id
     * @return
     */
    List<BmsShipBillDTO> getShipBill(Long id);

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

    /**
     * getPackage
     * @param id
     * @return
     */
    List<BmsShipBillPackageDTO> getPackage(Long id);


}
