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

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.app.model.dto.AppointmentHeaderDTO;
import com.prolog.rdc.tms.app.model.dto.business.*;
import com.prolog.rdc.tms.app.model.vo.business.*;
import java.util.List;

/**
 * 待装卸服务层
 *
 * Company: 湖北普罗格科技股份有限公司
 *
 * @author xiaoyf
 * @since 2022/6/6 10:35
 */
public interface WaitLoadingAndUnloadingService {

    /**
     * 预约单查询
     *
     * @param queryTypeByAppointmentVO
     * @return
     */
    Page<QueryTypeByAppointmentDTO> queryAppointment(QueryTypeByAppointmentVO queryTypeByAppointmentVO) throws Exception;

    /**
     * 运单(预约明细)分页查询
     *
     * @param queryTypeByShipbillVO
     * @return
     */
    Page<QueryTypeByShipbillDTO> queryTypeByShipbillPageData(QueryTypeByShipbillVO queryTypeByShipbillVO);

    /**
     * 开始装卸
     *
     * @param
     */
    void startedWorkData(StartLoadVO vo);

    /**
     * 装卸完成
     *
     */
    void completeWorkData(StartLoadVO vo);

    /**
     * 装车扫描-已扫描查询
     *
     * @param waitPickUpScannedVO
     * @return
     *//*
    WaitPickUpGoodsScannedDTO queryScannedData(WaitPickUpScannedVO waitPickUpScannedVO);

    *//**
     * 装车扫描-未扫描查询
     *
     * @param waitPickUpNotScannedVO
     * @return
     *//*
    List<WaitPickUpGoodsNotScannedDTO> queryNotScannedData(WaitPickUpNotScannedVO waitPickUpNotScannedVO);

    *//**
     * 装车扫描
     *
     * @param loadingScanVO
     * @return
     *//*
    LoadingScanDTO loadingScanData(LoadingScanVO loadingScanVO);

    *//**
     * 装车确认
     *
     * @param waitPickUpConfirmVO
     *//*
    void loadingConfirmData(WaitPickUpConfirmVO waitPickUpConfirmVO);*/

    /**
     * 开始装卸操作成功后刷新预约单数据
     */
    AppointmentHeaderDTO refreshAppoint(Long appointmentId) throws Exception;

}
