package com.sw.mes.store.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.sw.mes.core.dto.store.WarehouseOutputBillDetailBo;
import com.sw.mes.core.response.Result;
import com.sw.mes.store.dto.WmsOutputBillDto;
import com.sw.mes.store.entity.WarehouseOutputBill;
import com.sw.mes.store.entity.WarehouseOutputBillDetail;

import java.util.List;

/**
 * @Author wupeng
 * @Description 出库单
 * @Date 20:34 2023/8/2
 * @Param
 * @return
 **/
public interface WarehouseOutputBillService extends IService<WarehouseOutputBill> {
    void saveOutputBill(WarehouseOutputBill warehouseOutputBill);
    String saveOutputBills(WarehouseOutputBill warehouseOutputBill);

    void auditDeduction(WarehouseOutputBill warehouseOutputBill);

    void statusReception(WmsOutputBillDto dto);

    void auditDeductionAtomic(WarehouseOutputBill warehouseOutputBill);

    void autoDeductionAtomic(WarehouseOutputBill warehouseOutputBill);

    void autoDeduction(WarehouseOutputBill warehouseOutputBill);

    void cancelApply(String billNo);

    WarehouseOutputBill getByBillNo(String billNo);

    void rejectApply(WarehouseOutputBill warehouseOutputBill);

    List<WarehouseOutputBillDetailBo> findWarehouseOutputBillDetailByMaterialCode(String materialCode);
    WarehouseOutputBill findWarehouseOutputBillByCode(String outputBillNo);
    WarehouseOutputBill findWarehouseOutputBillByInputBillCode(String inputBillCode);

    Result wmsInitiate(List<WarehouseOutputBillDetail> outputBillDetails, String outputBillNo, String type);
}
