package com.prolog.rdc.tms.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.ExportFinishShipbillDTO;
import com.prolog.rdc.tms.model.dto.FinishShipBillDetailDTO;
import com.prolog.rdc.tms.model.dto.FinishShipbillDTO;
import com.prolog.rdc.tms.model.dto.FinishShipbillPackageDTO;
import com.prolog.rdc.tms.model.vo.FinishAdsQueryVO;
import com.prolog.rdc.tms.model.vo.FinishShipbillDetailVO;
import com.prolog.rdc.tms.model.vo.FinishShipbillPrintVO;
import com.prolog.rdc.tms.model.vo.FinishShipbillQueryVO;

import java.util.List;
import java.util.Map;

/**
 * 运输管理-完成运单服务层
 *
 * @author lhb
 * @since 2022-06-01 14:45:00
 */
public interface FinishShipbillService {
	/**
	 * 完成运单分页查询
	 *
	 * @param vo
	 * @return
	 */
	Page<FinishShipbillDTO> queryFinishShipbillPage(FinishShipbillQueryVO vo);

	/**
	 * 完成运单高级查询
	 *
	 * @param adsQueryVO
	 * @return
	 */
	Page<FinishShipbillDTO> pageAdvanced(FinishAdsQueryVO adsQueryVO);
	/**
	 * 完成运单商品查询
	 *
	 * @param vo
	 * @return
	 */
	Page<FinishShipBillDetailDTO> queryFinishShipbillDetail(FinishShipbillDetailVO vo);

	/**
	 * 完成运单包裹查询
	 *
	 * @param vo
	 * @return
	 */
	Page<FinishShipbillPackageDTO> queryFinishShipbillPackage(FinishShipbillDetailVO vo);

	/**
	 * 导出所有数据
	 *
	 * @param vo
	 * @return
	 */
	List<ExportFinishShipbillDTO> exportAllShipbill(FinishShipbillQueryVO vo);

	/**
	 * 导出当前页数据
	 *
	 * @param vo
	 * @return
	 */
	List<ExportFinishShipbillDTO> exportCurrentPageShipbill(FinishShipbillQueryVO vo);

	/**
	 * 导出选择行数据
	 *
	 * @param shipbillIdList
	 * @return
	 */
	List<ExportFinishShipbillDTO> exportSelectLineShipbill(List<String> shipbillIdList);

	/**
	 * 完成打印
	 *
	 * @param shipbillId
	 * @return
	 */
	Map<String, Object> shipbillPrint(FinishShipbillPrintVO finishShipbillPrintVO);
}
