package com.ruoyi.system.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.system.domain.UserInfo;
import com.ruoyi.system.domain.UserNucleicTime;
import org.apache.ibatis.annotations.Param;

/**
 * 导入人员核酸时间记录Mapper接口
 * 
 * @author ruoyi
 * @date 2022-08-15
 */
public interface UserNucleicTimeMapper
{
    /**
     * 查询导入人员核酸时间记录
     * 
     * @param id 导入人员核酸时间记录主键
     * @return 导入人员核酸时间记录
     */
    public UserNucleicTime selectUserNucleicTimeById(Long id);

    /**
     * 查询导入人员核酸时间记录列表
     * 
     * @param userNucleicTime 导入人员核酸时间记录
     * @return 导入人员核酸时间记录集合
     */
    public List<UserNucleicTime> selectUserNucleicTimeList(UserNucleicTime userNucleicTime);

    /**
     * 新增导入人员核酸时间记录
     * 
     * @param userNucleicTime 导入人员核酸时间记录
     * @return 结果
     */
    public int insertUserNucleicTime(UserNucleicTime userNucleicTime);

    /**
     * 修改导入人员核酸时间记录
     * 
     * @param userNucleicTime 导入人员核酸时间记录
     * @return 结果
     */
    public int updateUserNucleicTime(UserNucleicTime userNucleicTime);

    /**
     * 删除导入人员核酸时间记录
     * 
     * @param id 导入人员核酸时间记录主键
     * @return 结果
     */
    public int deleteUserNucleicTimeById(Long id);

    /**
     * 批量删除导入人员核酸时间记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserNucleicTimeByIds(Long[] ids);

    /**
     * 获取本月人数
     * @param monthTime
     * @return
     */
    public int getIndexDataMonth(Date monthTime);

    /**
     * 获取本周人数
     * @param weekTime
     * @return
     */
    public int getIndexDataWeek(Date weekTime);

    /**
     * 获取上周人数
     * @param weekTime
     * @return
     */
    public int getIndexDataLastWeek(Date weekTime);

    List<UserNucleicTime> selectHomeList(@Param("startTime") String startTime, @Param("endTime")String endTime);

    /**
     * 获取首页折线图/柱状图,本周所有人群数据
     * @param weekTime
     * @return
     */
    public List<UserNucleicTime> getJobStyle(Date weekTime);

    public int getHeSuanCount(Long deptId);

    void insertUserNucleicTimeList(@Param("userNucleicTimeList")List<UserNucleicTime> userNucleicTimeList);
}
