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

import com.prolog.rdc.tms.app.model.dto.business.*;
import com.prolog.rdc.tms.app.model.vo.business.LoadingScanCodeVO;
import com.prolog.rdc.tms.app.model.vo.business.LoadingScanConfirmVO;
import com.prolog.rdc.tms.app.model.vo.business.LoadingScanQueryVO;
import com.prolog.rdc.tms.app.model.vo.business.LoadingScanShipbillDetailVO;

import java.util.List;

/**
 * @author hongbo.pan
 * @date 2022/12/6
 */
public interface LoadingScanService {

    /**
     * 获取月台扫描信息
     * @param vo
     * @return
     */
    List<LoadingScanPlatformDTO> getPlatformScanInfo(LoadingScanQueryVO vo);

    /**
     * 获取派车单扫描信息
     * @param vo
     * @return
     */
    LoadingScanLoadingBillDTO getLoadingBillScanInfo(LoadingScanQueryVO vo);

    /**
     * 获取运单扫描信息
     * @param vo
     * @return
     */
    LoadingScanShipBillDTO getShipBillScanInfo(LoadingScanQueryVO vo);

    /**
     * 获取运单明细扫描信息
     * @param vo
     * @return
     */
    LoadingScanShipBillDTO getShipBillDetailScanInfo(LoadingScanQueryVO vo);

    /**
     * 扫描单号
     * @param vo
     * @return
     */
    LoadingScanInfoDTO scanCode(LoadingScanCodeVO vo);


    /**
     * 装车确认
     * @param confirmVO
     * @return
     */
    LoadingScanConfirmDTO scanConfirm(LoadingScanConfirmVO confirmVO);

    /**
     * 运单剔除
     * @param confirmVO
     * @return
     */
    void shipBillOut(LoadingScanConfirmVO confirmVO);

    /**
     * 保存商品的扫描件数
     * @param vo
     * @return
     */
    void  saveItemScanPcs(LoadingScanShipbillDetailVO vo);

    /**
     * 部分装车确认
     * @param confirmVO
     * @return
     */
    LoadingScanConfirmDTO partScanConfirm(LoadingScanConfirmVO confirmVO);

}
