package com.prolog.rdc.tms.service;

import java.util.List;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.model.dto.AbnormalShipbillDTO;
import com.prolog.rdc.tms.model.dto.AbnormalShipbillItemDTO;
import com.prolog.rdc.tms.model.dto.AbnormalShipbillPackageDTO;
import com.prolog.rdc.tms.model.dto.AbnormalShipbillPageDTO;
import com.prolog.rdc.tms.model.vo.AbnormalShipbillAdvancedQueryVO;
import com.prolog.rdc.tms.model.vo.AbnormalShipbillItemQueryVO;
import com.prolog.rdc.tms.model.vo.AbnormalShipbillPackageQueryVO;
import com.prolog.rdc.tms.model.vo.AbnormalShipbillQueryVO;

/**
 * 运输管理——异常订单服务层
 *
 * Company: 湖北普罗格科技股份有限公司
 *
 * @author xyf
 * @since 2022/6/1 12:43
 */
public interface AbnormalShipbillService {

	/**
	 * 主界面分页查询
	 *
	 * @param vo
	 * @return abnormalShipbillPageDTO
	 */
	Page<AbnormalShipbillPageDTO> queryAbnormalShipbillPage(AbnormalShipbillQueryVO vo);

	/**
	 * 运单高级查询
	 *
	 * @param abnormalShipbillAdvancedQueryVO
	 * @return
	 */
	Page<AbnormalShipbillPageDTO> advancedQueryAbnormalShipbillPage(AbnormalShipbillAdvancedQueryVO abnormalShipbillAdvancedQueryVO);

	/**
	 * 商品详情查询
	 *
	 * @param abnormalShipbillItemQueryVO
	 * @return
	 */
	Page<AbnormalShipbillItemDTO> listItemDetailData(AbnormalShipbillItemQueryVO abnormalShipbillItemQueryVO);

	/**
	 * 包裹详情查询
	 *
	 * @param abnormalShipbillPackageQueryVO
	 * @return
	 */
	Page<AbnormalShipbillPackageDTO> listPackageData(AbnormalShipbillPackageQueryVO abnormalShipbillPackageQueryVO);

	/**
	 * 运单异常查询
	 *
	 * @param abnormalShipbillItemQueryVO
	 * @return
	 */
	Page<AbnormalShipbillDTO> listAbnormalData(AbnormalShipbillItemQueryVO abnormalShipbillItemQueryVO);

	/**
	 * 关闭运单的一个异常
	 * 
	 * @param
	 * @return
	 */
	void closeAbnormalShipbill(List<String> ids);

	/**
	 * 关闭运单全部异常
	 *
	 * @param
	 * @return
	 */
	void closeShipbill(List<String> ids);

}
