package com.hzs.scm.ic.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.scm.ic.IcAvailableNum;
import com.hzs.common.domain.scm.ic.ext.IcAvailableNumExt;
import com.hzs.common.domain.scm.ic.ext.IcOnHandNumExt;
import com.hzs.common.domain.scm.pub.ScmItemSpecs;
import com.hzs.scm.ic.param.AvailableNum;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 可用量 Mapper 接口
 */
public interface IcAvailableNumMapper extends BaseMapper<IcAvailableNum> {

    /*
     *  出入口的时候更新原来现存量的数量
     **/
    Integer updateAvailableNumByNum(IcAvailableNum availableNum);

    /*
     *  查询产品是否存在现存量表
     **/
    List<IcAvailableNumExt> queryIcAvailableNumByCondition(@Param("icOnHandNum") IcOnHandNumExt icOnHandNum, @Param("scmItemSpecsList") List<ScmItemSpecs> scmItemSpecsList);

    /*
     *  下单时验证可用量
     **/
    List<IcAvailableNumExt> queryAvailableNumByAvaliable(@Param("availableNumExt") IcAvailableNumExt availableNumExt);

    /*
     *  根据查询条件查询可用量
     **/
    List<IcAvailableNumExt> queryAvailableNumByCondition(AvailableNum availableNum);

    /*
     *  查询可用量
     **/
    IcAvailableNum queryAvailableNumBySpecsId(@Param("pkStorehouse") Integer pkStorehouse, @Param("pkProduct") Integer pkProduct,
                                              @Param("specsIdList") List<Integer> specsIdList);

}
