package com.hw.wms.mapper;

import java.util.List;
import com.hw.wms.domain.WmsMove;
import com.hw.wms.domain.WmsMoveDetail;

/**
 * 移库合库记录Mapper接口
 *
 * @author xins
 * @date 2024-01-09
 */
public interface WmsMoveMapper
{
    /**
     * 查询移库合库记录
     *
     * @param moveId 移库合库记录主键
     * @return 移库合库记录
     */
    public WmsMove selectWmsMoveByMoveId(Long moveId);

    /**
     * 查询移库合库记录列表
     *
     * @param wmsMove 移库合库记录
     * @return 移库合库记录集合
     */
    public List<WmsMove> selectWmsMoveList(WmsMove wmsMove);

    /**
     * 新增移库合库记录
     *
     * @param wmsMove 移库合库记录
     * @return 结果
     */
    public int insertWmsMove(WmsMove wmsMove);

    /**
     * 修改移库合库记录
     *
     * @param wmsMove 移库合库记录
     * @return 结果
     */
    public int updateWmsMove(WmsMove wmsMove);

    /**
     * 删除移库合库记录
     *
     * @param moveId 移库合库记录主键
     * @return 结果
     */
    public int deleteWmsMoveByMoveId(Long moveId);

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

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

    /**
     * 批量新增移库合库记录明细;原材料入库记录对应的明细信息
     *
     * @param wmsMoveDetailList 移库合库记录明细;原材料入库记录对应的明细信息列表
     * @return 结果
     */
    public int batchWmsMoveDetail(List<WmsMoveDetail> wmsMoveDetailList);


    /**
     * 通过移库合库记录主键删除移库合库记录明细;原材料入库记录对应的明细信息信息
     *
     * @param moveId 移库合库记录ID
     * @return 结果
     */
    public int deleteWmsMoveDetailByMoveId(Long moveId);






    /**
     * 查询移库合库记录列表，group by wm.task_code,wm.warehouse_id,wm.ori_location_code,wm.target_location_code
     *
     * @param wmsMove 移库合库记录
     * @return 移库合库记录集合
     */
    public List<WmsMove> selectWmsMoveGroupJoinList(WmsMove wmsMove);


    /**
     * 批量新增移库合库记录;
     *
     * @param wmsMoveList 移库合库记录;
     * @return 结果
     */
    public int batchWmsMove(List<WmsMove> wmsMoveList);


    /**
     * 查询移库合库记录列表，Join material,warehouse
     *
     * @param wmsMove 移库合库记录
     * @return 移库合库记录集合
     */
    public List<WmsMove> selectWmsMoveJoinList(WmsMove wmsMove);
}
