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

import com.prolog.framework.core.pojo.Page;
import com.prolog.rdc.tms.app.model.dto.ShipbillManageDTO;
import com.prolog.rdc.tms.app.model.dto.ShipbillNodeTrackingDTO;
import com.prolog.rdc.tms.app.model.dto.business.ShipbillManageItemDTO;
import com.prolog.rdc.tms.app.model.dto.business.ShipbillManagePackDTO;
import com.prolog.rdc.tms.app.model.vo.ShipbillAdjustVO;
import com.prolog.rdc.tms.app.model.vo.ShipbillManageQueryVO;

import java.util.List;

/**
 * 运单管理
 *
 * @author xiaoyf
 * @since 2022-04-13 14:32:31
 */
public interface ShipbillManageService {

    /**
     * 运单管理分页查询
     *
     * @param
     * @return
     */
    Page<ShipbillManageDTO> queryPage(ShipbillManageQueryVO vo) throws Exception;

    // STD-DEVELOP20220823 lhb 计算件重体 20220913 start
    /**
     * 运单管理分页查询
     *
     * @param
     * @return
     */
    Page<ShipbillManageDTO> adjustQuery(ShipbillManageQueryVO vo) throws Exception;
    // STD-DEVELOP20220823 lhb 计算件重体 20220913 end

    /**
     * 运单详情查询
     *
     * @param
     * @return
     */
    ShipbillManageDTO queryDetail(ShipbillManageQueryVO vo) throws Exception;

    /**
     * 运单商品查询
     *
     * @param
     * @return
     */
    Page<ShipbillManageItemDTO> queryItem(ShipbillManageQueryVO vo) throws Exception;

    /**
     * 运单包裹查询
     *
     * @param
     * @return
     */
    Page<ShipbillManagePackDTO> queryPack(ShipbillManageQueryVO vo) throws Exception;

    /**
     * 运单节点查询
     *
     * @param
     * @return
     */
    List<ShipbillNodeTrackingDTO> queryShipbillNode(ShipbillManageQueryVO vo) throws Exception;

    /**
     * 修改运单
     *
     * @param adjustVOs
     * @return
     */
    void shipbillUpdate(List<ShipbillAdjustVO> adjustVOs);
}
