package com.prolog.upcloud.base.wh.operate.service;

import com.prolog.framework.core.pojo.Page;
import com.prolog.upcloud.base.wh.operate.model.WmsCargoChange;
import com.prolog.upcloud.base.wh.operate.vo.CargoChangeQueryVO;
import com.prolog.upcloud.base.wh.operate.vo.OmsCnsConversionListVO;
import com.prolog.upcloud.base.wh.operate.vo.WmsCargoChangeDetailListVO;
import com.prolog.upcloud.base.wh.operate.vo.WmsCargoChangeListVO;

import java.util.List;
import java.util.Set;

/**
 * @author wujunjie
 * @date 2021-09-15
 */
public interface CargoChangeService {
    /**
     * 提取源转换单(去重)
     *
     * @return 源单列表
     */
    Page<OmsCnsConversionListVO> getSourceHeaderList(String warehouseId);

    /**
     * 将源转换单转换为WMS转换单
     *
     * @param billNos 源单id列表
     */
    void changeSourceList(String[] billNos);

    /**
     * 转换
     *
     * @param paramsVO 货主转换单主表ID列表
     */
    void change(List<WmsCargoChange> paramsVO);

    /**
     * 更新转换单状态
     *
     * @param headerIds 头表ID
     */
    void changeCargoComplete(Set<String> headerIds);

    /**
     * 取消货主转换单
     *
     * @param headerIds 货主转换单主表ID列表
     */
    void cancel(String[] headerIds);

    /**
     * 查询头表列表
     *
     * @return
     */
    Page<WmsCargoChangeListVO> getCargoChangeList(CargoChangeQueryVO queryVO);

    /**
     * 查询子表
     *
     * @return
     */
    Page<WmsCargoChangeDetailListVO> getCargoChangeDetailList(String headerId);
}
