package com.hw.wms.service;

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

/**
 * 移库合库记录Service接口
 *
 * @author xins
 * @date 2024-01-09
 */
public interface IWmsMoveService
{
    /**
     * 查询移库合库记录
     *
     * @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 moveIds 需要删除的移库合库记录主键集合
     * @return 结果
     */
    public int deleteWmsMoveByMoveIds(Long[] moveIds);

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






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

    /**
     * 申请移库
     * @param wmsMoveApplyVo
     * @return
     */
    public int applyMove(WmsMoveApplyVo wmsMoveApplyVo);

    /**
     * 获取移库合库记录明细，join material
     * @param wmsMoveDetail
     * @return
     */
    public List<WmsMoveDetail> selectWmsMoveDetailJoinList(WmsMoveDetail wmsMoveDetail);

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

    /**
     * 人工移库出库
     * @param wmsMoveVo
     * @return
     */
    public int moveOutstock(WmsMoveVo wmsMoveVo);

    /**
     * 人工移库入库
     * @param wmsMoveVo
     * @return
     */
    public int moveInstock(WmsMoveVo wmsMoveVo);

}
