package com.shkj.wms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shkj.common.core.domain.Result;
import com.shkj.wms.bo.BillTaskAddbo;
import com.shkj.wms.bo.BusinTaskExeBo;
import com.shkj.wms.bo.MachineHandAddBo;
import com.shkj.wms.domain.BasePointDevice;
import com.shkj.wms.vo.BusinBillHeadbodyInVo;

import java.util.List;

/**
 * 出入库相关逻辑
 *
 * @author zjx
 * @date 2023-05-10
 */
public interface IPutInOutStorageService extends IService<BasePointDevice> {

    /** 自动入库*/
    public Result<Long > saveBusinBillTaskData(MachineHandAddBo bo,String type);
    public Result<Long > saveBusinBillTaskData(MachineHandAddBo bo);

    /**
     * 堆垛机入库完成后，增加库存
     */
    public Result<Boolean> productDeposit(Long taskCode);


    public Result<String > exeTaskPutinStorage(BusinTaskExeBo bo);

    /**
     * 补货入库
     * @param billTaskAddbo
     * @return
     */
    public  Result<Boolean>  saveBillTaskIn(BillTaskAddbo billTaskAddbo,String type);

    public Result<Boolean> queryderiveId(BillTaskAddbo billTaskAddbo);

    public Result getnumberderive(BillTaskAddbo billTaskAddbo);


    /**
     * 出库组装线完成出库，减少库存
     */
    public Result<Boolean> reduceInventory(Long taskCode);


    /**
     * 部分取货，减去库存
     */
    public Result<Boolean> reduceInventory(Long taskId,List<String> goods);
}
