package com.prolog.rdc.tms.app.service.business;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.app.model.dto.*;
import com.prolog.rdc.tms.app.model.dto.business.WaitDeliveredItemDTO;
import com.prolog.rdc.tms.app.model.dto.business.WaitDeliveredPageDTO;
import com.prolog.rdc.tms.app.model.vo.WaitDeliveredDeliveredConfirmVO;
import com.prolog.rdc.tms.app.model.vo.WaitDeliveredPackageDetailVO;
import com.prolog.rdc.tms.app.model.vo.business.WaitDeliveredAbnormalVO;
import com.prolog.rdc.tms.app.model.vo.business.WaitDeliveredItemQueryVO;
import com.prolog.rdc.tms.app.model.vo.business.WaitDeliveredQueryVO;
import com.prolog.rdc.tms.app.model.vo.business.WaitDeliveredSignVO;

import java.util.List;

/**
 * 待送达服务层
 *
 * @author xiaoyf
 * @since 2022/6/15 9:47
 */
public interface WaitDeliveredService {

	/**
	 * 待送达-运单列表分页查询
	 *
	 * @param
	 */
	Page<WaitDeliveredPageDTO> queryPage(WaitDeliveredQueryVO vo) throws Exception;

	/**
	 * 待送达-收货方模式
	 *
	 * @param
	 */
	Page<WaitDeliveredPageDTO> queryPageGroupByConsignee(WaitDeliveredQueryVO vo);

	/**
	 * 待送达-商品数量查询
	 *
	 * @param
	 */
	List<WaitDeliveredItemDTO> queryItem(WaitDeliveredItemQueryVO vo) throws Exception;

	/**
	 * 包裹查询
	 *
	 * @return
	 */
	List<WaitDeliveredPackageDetailDTO> queryPack(WaitDeliveredPackageDetailVO waitDeliveredPackageDetailVO);

	/**
	 * 送达确认
	 *
	 * @param
	 */
	void deliveredConfirmData(WaitDeliveredDeliveredConfirmVO waitDeliveredDeliveredConfirmVO) throws Exception;

	/**
	 * 异常上报
	 *
	 * @param
	 */
	void abnormalSend(WaitDeliveredAbnormalVO vo) throws Exception;

	/**
	 * 签到
	 *
	 * @param
	 */
	void sign(WaitDeliveredSignVO vo) ;

}
