package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsRawReturn;
import com.hw.wms.domain.WmsRawReturnDetail;

/**
 * 原材料退库记录Mapper接口
 *
 * @author xs
 * @date 2023-12-20
 */
public interface WmsRawReturnMapper
{
    /**
     * 查询原材料退库记录
     *
     * @param rawReturnId 原材料退库记录主键
     * @return 原材料退库记录
     */
    public WmsRawReturn selectWmsRawReturnByRawReturnId(Long rawReturnId);

    /**
     * 查询原材料退库记录列表
     *
     * @param wmsRawReturn 原材料退库记录
     * @return 原材料退库记录集合
     */
    public List<WmsRawReturn> selectWmsRawReturnList(WmsRawReturn wmsRawReturn);

    /**
     * 新增原材料退库记录
     *
     * @param wmsRawReturn 原材料退库记录
     * @return 结果
     */
    public int insertWmsRawReturn(WmsRawReturn wmsRawReturn);

    /**
     * 修改原材料退库记录
     *
     * @param wmsRawReturn 原材料退库记录
     * @return 结果
     */
    public int updateWmsRawReturn(WmsRawReturn wmsRawReturn);

    /**
     * 删除原材料退库记录
     *
     * @param rawReturnId 原材料退库记录主键
     * @return 结果
     */
    public int deleteWmsRawReturnByRawReturnId(Long rawReturnId);

    /**
     * 批量删除原材料退库记录
     *
     * @param rawReturnIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsRawReturnByRawReturnIds(Long[] rawReturnIds);

    /**
     * 批量删除原材料退库记录明细
     *
     * @param rawReturnIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsRawReturnDetailByRawReturnIds(Long[] rawReturnIds);

    /**
     * 批量新增原材料退库记录明细
     *
     * @param wmsRawReturnDetailList 原材料退库记录明细列表
     * @return 结果
     */
    public int batchWmsRawReturnDetail(List<WmsRawReturnDetail> wmsRawReturnDetailList);


    /**
     * 通过原材料退库记录主键删除原材料退库记录明细信息
     *
     * @param rawReturnId 原材料退库记录ID
     * @return 结果
     */
    public int deleteWmsRawReturnDetailByRawReturnId(Long rawReturnId);



    /**
     * 查询原材料退库记录列表,提供给手持审核使用
     *
     * @param wmsRawReturn 原材料退库记录
     * @return 原材料退库记录集合
     */
    public List<WmsRawReturn> selectWmsRawReturnJoinList(WmsRawReturn wmsRawReturn);

    /**
     * 查询原材料退库记录,without details
     *
     * @param rawReturnId 原材料退库记录主键
     * @return 原材料退库记录
     */
    public WmsRawReturn selectOnlyWmsRawReturnByRawReturnId(Long rawReturnId);


    /**
     * 批量新增原材料退库记录
     *
     * @param wmsRawReturnList 原材料退库记录列表
     * @return 结果
     */
    public int batchWmsRawReturn(List<WmsRawReturn> wmsRawReturnList);

}
