package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.ExpensePopDTO;
import com.prolog.rdc.tms.model.dto.FreightPriceDTO;
import com.prolog.rdc.tms.model.dto.FreightPriceExportDTO;
import com.prolog.rdc.tms.model.dto.FreightPriceQuery;
import com.prolog.rdc.tms.model.dto.basicData.BaseFeeDTO;
import com.prolog.rdc.tms.model.vo.FreightPriceExportVO;
import com.prolog.rdc.tms.model.vo.FreightPriceVO;
import com.prolog.rdc.tms.model.vo.StatusUpdate;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface FreightPriceService {
    void save(FreightPriceVO vo);

    Page<FreightPriceDTO> findList(FreightPriceQuery vo);

    FreightPriceDTO detail(Long id);

    void update(FreightPriceVO vo);

    void updateStatus(List<StatusUpdate> list);

    void delete(List<StatusUpdate> ids);

    Page<BaseFeeDTO> expensePop(ExpensePopDTO carrierCode);

    /**
     * importFreightPriceData
     */
    void importFreightPriceData(MultipartFile file);

    /**
     * importProcess
     */
    int importProcess(MultipartFile file);

    /**
     * 导出所有页数据
     *
     * @param vo
     * @return
     */
    List<FreightPriceExportDTO> exportAllPriceData(FreightPriceExportVO vo);

    /**
     * 导出当前页数据
     *
     * @param vo
     * @return
     */
    List<FreightPriceExportDTO> exportPagePriceData(FreightPriceExportVO vo);

    /**
     * 导出选中数据
     *
     * @param ids
     * @return
     */
    List<FreightPriceExportDTO> exportChoosePriceData(List<String> ids);

}
