package com.unis.crk.cplbusiness.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.unis.crk.cplbusiness.entity.DataKcglCplkcswDefault;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.unis.crk.cplbusiness.entity.DataKcglCplxckcDefault;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 成品粮库存实物 Mapper 接口
 * </p>
 *
 * @author TangSong
 * @since 2022-03-21
 */
public interface DataKcglCplkcswDefaultMapper extends BaseMapper<DataKcglCplkcswDefault> {
        /**
         * 自定义sql分页
         * @param page
         * @param queryWrapper 看这里看这里，如果自定义的方法中需要用到wrapper查询条件，需要这样写
         * @return
         */
        IPage<Map<String,Object>> selectMyMapsPage(IPage<DataKcglCplkcswDefault> page, @Param(Constants.WRAPPER) QueryWrapper<DataKcglCplkcswDefault> queryWrapper);
        /**
         * 更新库存数量
         *
         * @param kcsl
         * @param zje
         * @param datId
         * @return
         */
        int addStoreByXckc(@Param("kcsl")double kcsl,
                           @Param("zje")double zje,
                           @Param("dataId")String datId);

        List<Map<String,Object>> getKcsw(@Param("ch")String ch, @Param("hwh")String hwh, @Param("unitid")String unitid);

        /**
         * 根据货位号、商品编号，规格查询库存对应的库存相关信息
         * @param hwh
         * @param spbh
         * @param gg
         * @return
         */
        List<Map<String,Object>> getKcswInfoBySpbh(@Param("hwh")String hwh,
                                             @Param("spbh")String spbh,
                                             @Param("gg")String gg);

        /**
         * 根据货位号查询库存对应的库存相关信息
         * @param hwh
         * @return
         */
        List<Map<String,Object>> getKcswInfoByHwh(@Param("hwh")String hwh);
        /**
         * 根据货位号查询库存对应的库存相关信息
         * @param ch
         * @return
         */
        List<Map<String,Object>> getKcswInfoByCh(@Param("ch")String ch);

        /**
         * 根据商品编号，规格查询库存对应的仓房相关信息
         * @param unitid
         * @param ppbh
         * @param pzbh
         * @param spbh
         * @param gg
         * @return
         */
        List<Map<String,Object>> getChInfo(@Param("unitid")String unitid,
                                           @Param("ppbh")String ppbh,
                                           @Param("pzbh")String pzbh,
                                           @Param("spbh") String spbh,
                                           @Param("gg") String gg);

        /**
         * 得到仓房信息以及库存总件数
         * @param unitid
         * @return
         */
        List<Map<String,Object>> getChSumInfo(@Param("unitid")String unitid);

        IPage<Map<String, Object>> findPageKcyj(Page<DataKcglCplkcswDefault> p, @Param(Constants.WRAPPER) QueryWrapper<DataKcglCplkcswDefault> queryWrapper);
}
