package com.hxhq.business.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxhq.business.domain.GspFfjl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxhq.business.domain.GspRkjl;
import com.hxhq.business.domain.GyzjFfjl;
import com.hxhq.business.dto.gsp.GspFfjlListDto;
import com.hxhq.business.dto.gyzj.FfjlListDto;
import org.apache.ibatis.annotations.Param;

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

/**
 * 供试品发放记录Mapper接口
 *
 * @author hxhq
 * @date 2025-12-30
 */
public interface GspFfjlMapper extends BaseMapper<GspFfjl>
{

    /**
     * 查询列表
     * @param queryWrapper
     * @return
     */
    List<GspFfjlListDto> queryList(@Param("ew") Wrapper<GspFfjl> queryWrapper);

    /**
     * 供试品发放记录详情
     * @param id    供试品发放记录id
     * @return
     */
    GspFfjlListDto queryInfo(Long id);

    /**
     * 出库量、入库量、使用量 出现频率最高的单位
     * @return
     */
    String getCklUnit(@Param("ew") Wrapper<GspFfjl> queryWrapper);
    String getSylUnit(@Param("ew") Wrapper<GspFfjl> queryWrapper);
    String getRklUnit(@Param("ew") Wrapper<GspFfjl> queryWrapper);
    Map<String, Double> getStatistics(@Param("ew") Wrapper<GspFfjl> queryWrapper, @Param("rkldw") String rkldw, @Param("ckldw") String ckldw, @Param("syldw") String syldw);


    /**
     * 入库量 统计
     * @param queryWrapper
     * @return
     */
    BigDecimal sumRkl(@Param("ew") Wrapper<GspFfjl> queryWrapper);

    /**
     * 出库量 统计
     * @param queryWrapper
     * @return
     */
    BigDecimal sumCkl(@Param("ew") Wrapper<GspFfjl> queryWrapper);

    /**
     * 使用量 统计
     * @param queryWrapper
     * @return
     */
    BigDecimal sumSyl(@Param("ew") Wrapper<GspFfjl> queryWrapper);

}
