package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsRawOutstock;
import com.hw.wms.domain.WmsRawOutstockDetail;

/**
 * 原材料出库记录Mapper接口
 *
 * @author xs
 * @date 2023-12-20
 */
public interface WmsRawOutstockMapper
{
    /**
     * 查询原材料出库记录
     *
     * @param rawOutstockId 原材料出库记录主键
     * @return 原材料出库记录
     */
    public WmsRawOutstock selectWmsRawOutstockByRawOutstockId(Long rawOutstockId);

    /**
     * 查询原材料出库记录列表
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 原材料出库记录集合
     */
    public List<WmsRawOutstock> selectWmsRawOutstockList(WmsRawOutstock wmsRawOutstock);

    /**
     * 新增原材料出库记录
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 结果
     */
    public int insertWmsRawOutstock(WmsRawOutstock wmsRawOutstock);

    /**
     * 修改原材料出库记录
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 结果
     */
    public int updateWmsRawOutstock(WmsRawOutstock wmsRawOutstock);

    /**
     * 删除原材料出库记录
     *
     * @param rawOutstockId 原材料出库记录主键
     * @return 结果
     */
    public int deleteWmsRawOutstockByRawOutstockId(Long rawOutstockId);

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

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

    /**
     * 批量新增原材料出库记录明细
     *
     * @param wmsRawOutstockDetailList 原材料出库记录明细列表
     * @return 结果
     */
    public int batchWmsRawOutstockDetail(List<WmsRawOutstockDetail> wmsRawOutstockDetailList);


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


    /**
     * 查询原材料出库记录列表,join仓库信息
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 原材料出库记录集合
     */
    public List<WmsRawOutstock> selectWmsRawOutstockJoinList(WmsRawOutstock wmsRawOutstock);


    /**
     * 批量新增原材料出库记录
     *
     * @param wmsRawOutstockList 原材料出库记录明细列表
     * @return 结果
     */
    public int batchWmsRawOutstock(List<WmsRawOutstock> wmsRawOutstockList);


    /**
     * 查询原材料出库记录列表,join仓库信息
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 原材料出库记录集合
     */
    public List<WmsRawOutstock> selectWmsRawOutstockJoinList4Audit(WmsRawOutstock wmsRawOutstock);


    /**
     * 查询原材料出库记录列表,join material
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 原材料出库记录集合
     */
    public List<WmsRawOutstock> selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock);


    /**
     * 根据任务编号审核原材料出库记录
     *
     * @param wmsRawOutstock 原材料出库记录
     * @return 结果
     */
    public int auditWmsRawOutstockByTaskCode(WmsRawOutstock wmsRawOutstock);


    /**
     * 查询原材料出库记录,Join material
     *
     * @param rawOutstockId 原材料出库记录主键
     * @return 原材料出库记录
     */
    public WmsRawOutstock selectWmsRawOutstockJoinMaterialById(Long rawOutstockId);

}
