package com.prolog.rdc.tms.service;

import java.util.List;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.basicConfigure.CarrierConfigPageDTO;
import com.prolog.rdc.tms.model.dto.basicConfigure.CarrierConfigViewDTO;
import com.prolog.rdc.tms.model.dto.basicConfigure.ShipbillMatchCarrierConfigDTO;
import com.prolog.rdc.tms.model.vo.basicConfigure.CarrierConfigPageVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.CarrierConfigSaveVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.CarrierConfigUpdateVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.CarrierConfigViewVO;
import com.prolog.rdc.tms.model.vo.basicConfigure.ShipbillMatchCarrierVO;

/**
 *
 *
 * 承运方配置业务服务层
 *
 * @className :CarrierConfigService
 * @author :lhb
 * @creationTime :2022/04/29
 * @description :
 *
 * @modifier :
 * @modifyTime :
 * @reviseRemarks:
 *
 * @version :1.0.0
 *
 */
public interface CarrierConfigService {

	/**
	 * 承运方配置分页查询
	 *
	 * @param pageVO
	 * @return
	 */
	Page<CarrierConfigPageDTO> pageQuery(CarrierConfigPageVO pageVO);

	/**
	 * 承运方配置保存
	 *
	 * @param carrierConfigSaveVO
	 * @return
	 */
	void save(CarrierConfigSaveVO carrierConfigSaveVO);

	/**
	 * 承运方配置修改
	 *
	 * @param carrierConfigUpdateVO
	 * @return
	 */
	void update(CarrierConfigUpdateVO carrierConfigUpdateVO);

	/**
	 * 承运方配置停用
	 *
	 * @param ids
	 * @return
	 */
	void stop(List<Long> ids);

	/**
	 * 承运方配置启用
	 *
	 * @param ids
	 * @return
	 */
	void enable(List<Long> ids);

	/**
	 * 承运方配置查看
	 *
	 * @param viewVO
	 * @return
	 */
	CarrierConfigViewDTO view(CarrierConfigViewVO viewVO);

	/**
	 * 根据运单适配匹配承运方策略
	 *
	 * @param matchCarrierVO
	 * @return
	 */
	ShipbillMatchCarrierConfigDTO shipbillMatchCarrier(ShipbillMatchCarrierVO matchCarrierVO);
}
