package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsProductInstock;
import com.hw.wms.domain.WmsProductInstockDetail;

/**
 * 成品入库记录;成品入库记录Mapper接口
 * 
 * @author xins
 * @date 2023-12-25
 */
public interface WmsProductInstockMapper 
{
    /**
     * 查询成品入库记录;成品入库记录
     * 
     * @param productInstockId 成品入库记录;成品入库记录主键
     * @return 成品入库记录;成品入库记录
     */
    public WmsProductInstock selectWmsProductInstockByProductInstockId(Long productInstockId);

    /**
     * 查询成品入库记录;成品入库记录列表
     * 
     * @param wmsProductInstock 成品入库记录;成品入库记录
     * @return 成品入库记录;成品入库记录集合
     */
    public List<WmsProductInstock> selectWmsProductInstockList(WmsProductInstock wmsProductInstock);

    /**
     * 新增成品入库记录;成品入库记录
     * 
     * @param wmsProductInstock 成品入库记录;成品入库记录
     * @return 结果
     */
    public int insertWmsProductInstock(WmsProductInstock wmsProductInstock);

    /**
     * 修改成品入库记录;成品入库记录
     * 
     * @param wmsProductInstock 成品入库记录;成品入库记录
     * @return 结果
     */
    public int updateWmsProductInstock(WmsProductInstock wmsProductInstock);

    /**
     * 删除成品入库记录;成品入库记录
     * 
     * @param productInstockId 成品入库记录;成品入库记录主键
     * @return 结果
     */
    public int deleteWmsProductInstockByProductInstockId(Long productInstockId);

    /**
     * 批量删除成品入库记录;成品入库记录
     * 
     * @param productInstockIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsProductInstockByProductInstockIds(Long[] productInstockIds);

    /**
     * 批量删除成品入库记录明细
     * 
     * @param productInstockIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWmsProductInstockDetailByProductInstockIds(Long[] productInstockIds);
    
    /**
     * 批量新增成品入库记录明细
     * 
     * @param wmsProductInstockDetailList 成品入库记录明细列表
     * @return 结果
     */
    public int batchWmsProductInstockDetail(List<WmsProductInstockDetail> wmsProductInstockDetailList);
    

    /**
     * 通过成品入库记录;成品入库记录主键删除成品入库记录明细信息
     * 
     * @param productInstockId 成品入库记录;成品入库记录ID
     * @return 结果
     */
    public int deleteWmsProductInstockDetailByProductInstockId(Long productInstockId);
}
