package com.prolog.cs.biz.outbound.service;

import com.prolog.cs.biz.inbound.vo.CancelOrderOmsVO;
import com.prolog.cs.biz.outbound.model.OmsDoBillHDO;
import com.prolog.cs.biz.outbound.model.dto.LicenseImageDTO;
import com.prolog.cs.biz.outbound.model.dto.OmsDoBillHDTO;
import com.prolog.cs.biz.outbound.model.vo.OmsBillReceiveVo;
import com.prolog.cs.biz.outbound.model.vo.ReceiveDoBillVO;
import com.prolog.framework.common.message.RestMessage;
import com.prolog.framework.core.pojo.Page;

import java.util.List;

public interface IOmsDoBillHService {

    Page<OmsDoBillHDO> queryDoBillHList(OmsDoBillHDO omsDoBillHDO);

    Boolean saveDoBillH(OmsDoBillHDTO omsDoBillHDTO);

    List<OmsDoBillHDO> getDoBillHByBillNos(String[] billNos, String warehouseId);

    Boolean receiveOmsBill(List<OmsBillReceiveVo> omsBillReceiveVoList);

    Boolean receiveDoBill(List<ReceiveDoBillVO> receiveDoBillVOS);

    /**
     * OMS取消订单
     *
     * @param cancelList
     */
    List<CancelOrderOmsVO> cancelOrderOms(List<CancelOrderOmsVO> cancelList);

    RestMessage<List<LicenseImageDTO>> licenseImageDownload(List<LicenseImageDTO> imageList);

    void stockOutInvoice();

    void autoCheckZtBill();

    void cancelBill(String billId);

    List<String> getInvoices(String billno);
}
