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

import java.util.List;

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillConsigneeCountDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillConsigneeDetailsListDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillConsigneePageDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillConsigneeStoresListDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillLogQueryDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillReturnCountDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillReturnDetailsListDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillReturnPageDTO;
import com.prolog.rdc.tms.app.model.dto.ContoinerBillReturnStoresListDTO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillConsigneeDetailsListVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillConsigneePageVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillConsigneeStoresListVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillContainerAbnormalVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillLogQueryVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnCancelVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnDetailsListVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnModifyVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnOperateVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnPageVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnReceiptedVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnSaveVO;
import com.prolog.rdc.tms.app.model.vo.ContoinerBillReturnStoresListVO;

/**
 *
 * 在途容器服务层
 *
 * @className    :ContainerBillService
 * @author       :fanzw
 * @date         :2023/6/8
 * @description  :
 *
 * @version      :1.2.1
 *
 */
public interface ContainerBillService {

	/**
	 * 容器业务日志查询
	 *
	 * @param contoinerBillLogQueryVO
	 * @return
	 */
	List<ContoinerBillLogQueryDTO> listContoinerBillLogData(ContoinerBillLogQueryVO contoinerBillLogQueryVO);

	/**
	 * 容器异常处理
	 *
	 * @param contoinerBillLogQueryVO
	 * @return
	 */
	void abnormalContoinerBillContainerData(ContoinerBillContainerAbnormalVO contoinerBillContainerAbnormalVO);

	/**
	 * 门店在途查询
	 *
	 * @param contoinerBillConsigneePageVO
	 * @return
	 */
	Page<ContoinerBillConsigneePageDTO> pageContoinerBillConsigneeData(ContoinerBillConsigneePageVO contoinerBillConsigneePageVO);

	/**
	 * 门店在途统计查询
	 *
	 * @param contoinerBillConsigneePageVO
	 * @return
	 */
	ContoinerBillConsigneeCountDTO countContoinerBillConsigneeData(ContoinerBillConsigneePageVO contoinerBillConsigneePageVO);

	/**
	 * 门店在途门店查询
	 *
	 * @param contoinerBillConsigneeStoresListVO
	 * @return
	 */
	List<ContoinerBillConsigneeStoresListDTO> listContoinerBillConsigneeStoresData(ContoinerBillConsigneeStoresListVO contoinerBillConsigneeStoresListVO);

	/**
	 * 门店在途容器明细查询
	 *
	 * @param contoinerBillConsigneeDetailsListVO
	 * @return
	 */
	List<ContoinerBillConsigneeDetailsListDTO> listContoinerBillConsigneeDetailsData(ContoinerBillConsigneeDetailsListVO contoinerBillConsigneeDetailsListVO);

	/**
	 * 归还容器
	 *
	 * @param contoinerBillReturnSaveVO
	 * @return
	 */
	void saveContoinerBillReturnData(ContoinerBillReturnSaveVO contoinerBillReturnSaveVO);

	/**
	 * 容器归还单查询
	 *
	 * @param contoinerBillReturnPageVO
	 * @return
	 */
	Page<ContoinerBillReturnPageDTO> pageContoinerBillReturnData(ContoinerBillReturnPageVO contoinerBillReturnPageVO);

	/**
	 * 容器归还单统计查询
	 *
	 * @param contoinerBillReturnPageVO
	 * @return
	 */
	ContoinerBillReturnCountDTO countContoinerBillReturnData(ContoinerBillReturnPageVO contoinerBillReturnPageVO);

	/**
	 * 容器归还单门店查询
	 *
	 * @param contoinerBillReturnStoresListVO
	 * @return
	 */
	List<ContoinerBillReturnStoresListDTO> listContoinerBillReturnStoresData(ContoinerBillReturnStoresListVO contoinerBillReturnStoresListVO);

	/**
	 * 容器归还单明细查询
	 *
	 * @param contoinerBillReturnDetailsListVO
	 * @return
	 */
	List<ContoinerBillReturnDetailsListDTO> listContoinerBillReturnDetailsData(ContoinerBillReturnDetailsListVO contoinerBillReturnDetailsListVO);

	/**
	 * 容器归还单取消
	 *
	 * @param contoinerBillReturnCancelVO
	 * @return
	 */
	void cancelContoinerBillReturnData(List<ContoinerBillReturnCancelVO> contoinerBillReturnCancelVOs);

	/**
	 * 容器归还单修改
	 *
	 * @param contoinerBillReturnModifyVO
	 * @return
	 */
	void modifyContoinerBillReturnData(ContoinerBillReturnModifyVO contoinerBillReturnModifyVO);

	/**
	 * 容器归还单签收
	 *
	 * @param contoinerBillReturnReceiptedVO
	 * @return
	 */
	void receiptedContoinerBillReturnData(ContoinerBillReturnReceiptedVO contoinerBillReturnReceiptedVO);

	/**
	 * 司机容器归还单操作(确认/取消确认/送达)
	 *
	 * @param contoinerBillReturnOperateVO
	 * @return
	 */
	void operateContoinerBillReturnData(ContoinerBillReturnOperateVO contoinerBillReturnOperateVO);

}

