package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsTransfer;
import com.hw.wms.domain.WmsTransferDetail;

/**
 * 转库记录Mapper接口
 *
 * @author xins
 * @date 2024-01-12
 */
public interface WmsTransferMapper
{
    /**
     * 查询转库记录
     *
     * @param transferId 转库记录主键
     * @return 转库记录
     */
    public WmsTransfer selectWmsTransferByTransferId(Long transferId);

    /**
     * 查询转库记录列表
     *
     * @param wmsTransfer 转库记录
     * @return 转库记录集合
     */
    public List<WmsTransfer> selectWmsTransferList(WmsTransfer wmsTransfer);

    /**
     * 新增转库记录
     *
     * @param wmsTransfer 转库记录
     * @return 结果
     */
    public int insertWmsTransfer(WmsTransfer wmsTransfer);

    /**
     * 修改转库记录
     *
     * @param wmsTransfer 转库记录
     * @return 结果
     */
    public int updateWmsTransfer(WmsTransfer wmsTransfer);

    /**
     * 删除转库记录
     *
     * @param transferId 转库记录主键
     * @return 结果
     */
    public int deleteWmsTransferByTransferId(Long transferId);

    /**
     * 批量删除转库记录
     *
     * @param transferIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsTransferByTransferIds(Long[] transferIds);

    /**
     * 批量删除转库记录明细;移库合库记录对应的明细信息
     *
     * @param transferIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsTransferDetailByTransferIds(Long[] transferIds);

    /**
     * 批量新增转库记录明细;移库合库记录对应的明细信息
     *
     * @param wmsTransferDetailList 转库记录明细;移库合库记录对应的明细信息列表
     * @return 结果
     */
    public int batchWmsTransferDetail(List<WmsTransferDetail> wmsTransferDetailList);


    /**
     * 通过转库记录主键删除转库记录明细;移库合库记录对应的明细信息信息
     *
     * @param transferId 转库记录ID
     * @return 结果
     */
    public int deleteWmsTransferDetailByTransferId(Long transferId);




    /**
     * 查询转库记录列表,Join原仓库，目标仓库和物料
     *
     * @param wmsTransfer 转库记录
     * @return 转库记录集合
     */
    public List<WmsTransfer> selectWmsTransferJoinList(WmsTransfer wmsTransfer);

}
