package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsProductOutstock;
import com.hw.wms.domain.WmsProductOutstockDetail;

/**
 * 成品出库记录Mapper接口
 *
 * @author xs
 * @date 2023-12-20
 */
public interface WmsProductOutstockMapper
{
    /**
     * 查询成品出库记录
     *
     * @param productOutstockId 成品出库记录主键
     * @return 成品出库记录
     */
    public WmsProductOutstock selectWmsProductOutstockByProductOutstockId(Long productOutstockId);

    /**
     * 查询成品出库记录列表
     *
     * @param wmsProductOutstock 成品出库记录
     * @return 成品出库记录集合
     */
    public List<WmsProductOutstock> selectWmsProductOutstockList(WmsProductOutstock wmsProductOutstock);

    /**
     * 新增成品出库记录
     *
     * @param wmsProductOutstock 成品出库记录
     * @return 结果
     */
    public int insertWmsProductOutstock(WmsProductOutstock wmsProductOutstock);

    /**
     * 修改成品出库记录
     *
     * @param wmsProductOutstock 成品出库记录
     * @return 结果
     */
    public int updateWmsProductOutstock(WmsProductOutstock wmsProductOutstock);

    /**
     * 删除成品出库记录
     *
     * @param productOutstockId 成品出库记录主键
     * @return 结果
     */
    public int deleteWmsProductOutstockByProductOutstockId(Long productOutstockId);

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

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

    /**
     * 批量新增成品出库记录明细
     *
     * @param wmsProductOutstockDetailList 成品出库记录明细列表
     * @return 结果
     */
    public int batchWmsProductOutstockDetail(List<WmsProductOutstockDetail> wmsProductOutstockDetailList);


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





    /**
     * 查询成品出库记录列表,Join material，warehouse
     *
     * @param wmsProductOutstock 成品出库记录
     * @return 成品出库记录集合
     */
    public List<WmsProductOutstock> selectWmsProductOutstockJoinList(WmsProductOutstock wmsProductOutstock);

    /**
     * 查询成品出库记录,join warehouse,material,获取出库总数量
     *
     * @param productOutstockId 成品出库记录主键
     * @return 成品出库记录
     */
    public WmsProductOutstock selectWmsProductOutstockJoinByOutstockId(Long productOutstockId);

    /**
     * 查询成品出库记录
     *
     * @param productOutstockId 成品出库记录主键
     * @return 成品出库记录
     */
    public WmsProductOutstock selectOnlyWmsProductOutstockByOutstockId(Long productOutstockId);

}
