package com.jsh.erp.datasource.mappers;

import com.jsh.erp.datasource.entities.MaterialBatch;
import com.jsh.erp.datasource.entities.MaterialVo4Unit;
import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

public interface MaterialBatchMapper extends BaseMapperX<MaterialBatch> {


    /**
     * 根据商品id获取商品批次库存不为0的数据
     * 按生产日期顺序排序
     * @param mid 商品id
     */
    List<MaterialBatch> getMaterialBatchByMaterialId(@Param("mid") Long mid,
                                                     @Param("depotID") Long depotID);

    /**
     * 根据仓库id和商品id查询商品批次库存
     * @param depotList 仓库id
     * @param mid   商品id
     */
    BigDecimal getInventorySumByDepotAndMid(@Param("depotList") List<Long> depotList,
                                            @Param("mid") Long mid);

    List<MaterialVo4Unit> findBySelectWithBarCode(@Param("q") String q,
                                                  @Param("standardOrModel") String standardOrModel,
                                                  @Param("color") String color,
                                                  @Param("brand") String brand,
                                                  @Param("mfrs") String mfrs,
                                                  @Param("enableSerialNumber") String enableSerialNumber,
                                                  @Param("enableBatchNumber") String enableBatchNumber,
                                                  @Param("offset") Integer offset,
                                                  @Param("rows") Integer rows,
                                                  @Param("depotId") Long depotId);

    /**
     * 根据批次号数据查询盘点商品批次信息
     * @param batchNumberArray 批次号数组
     */
    List<TaskStocktakingItemVO> getMaterialByBatchNumber(@Param("batchNumberArray") String [] batchNumberArray);

}
