package com.yh.saas.plugin.yiliangyiyun.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.yh.saas.plugin.yiliangyiyun.entity.InOutWarehouseTask;
import com.baomidou.mybatisplus.service.IService;

import java.util.List;


/**
 * <p>
 * 出入库任务 服务类
 * </p>
 *
 * @author Gongdc
 * @since 2021-06-22
 */
public interface IInOutWarehouseTaskService extends IService<InOutWarehouseTask> {
    /**
     * 出入库任务新增 编辑
     *
     * @param inOutWarehouseTask
     * @return
     */
    String insertOrUpdateInOutTask(InOutWarehouseTask inOutWarehouseTask);

    /**
     * 判断移库编号
     *
     * @param moveTaskNo
     * @return
     */
    boolean selectTaskNo(String moveTaskNo);

    /**
     * 出入库任务列表
     * @param inOutWarehouseTask
     * @return
     */
    Page<InOutWarehouseTask> selectInOutWarehouseTask(InOutWarehouseTask inOutWarehouseTask);

    /**
     * 查看出入库任务
     * @param relevanceId
     * @return
     */
    List<InOutWarehouseTask> getInOutWarehouseTask(String relevanceId);

    /**
     * 删除出入库任务
     * @param id
     */
    void deleteInOutWarehouseTask(String id, String relevanceId);

    /**
     * 更改状态
     * @param id
     * @return
     */
    String editStatus(String id);

    /**
     * 移库任务列表
     * @param inOutWarehouseTask
     * @return
     */
    Page<InOutWarehouseTask> selectInOutWarehouseTaskRelocation(InOutWarehouseTask inOutWarehouseTask);

    /**
     * 查看移库任务详情
     * @param moveTaskNo
     * @return
     */
    List<InOutWarehouseTask> getInOutWarehouseTaskRelocation(String moveTaskNo);
    /**
     * 出入库任务审核 编辑
     *
     * @param inOutWarehouseTask
     * @return
     */
    String checkOrUpdateInOutTask(InOutWarehouseTask inOutWarehouseTask);
    /**
     * 根据ID查看任务
     * @param id
     * @return
     */
    InOutWarehouseTask getTask(String id);
    /**
     * 任务列表
     * @param inOutWarehouseTask
     * @return
     */
    Page<InOutWarehouseTask> selectWarehouseTask(InOutWarehouseTask inOutWarehouseTask);
    /**
     * 查出入库任务编号
     * @param inOutWarehouseTask
     * @return
     */
    List<InOutWarehouseTask> selectInOutWarehouseNo(InOutWarehouseTask inOutWarehouseTask);

    /**
     *
     * @param compId,warehouseName
     * @return
     */
    InOutWarehouseTask getContractNo(String compId, String warehouseName);
}
