package com.boman.web.core.mapper;

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.VaccineInfoOperation;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 疫苗信息Mapper接口
 * 
 * @author ruoyi
 * @date 2021-09-05
 */
public interface VaccineInfoMapper 
{
    /**
     * 查询疫苗信息
     * 
     * @param id 疫苗信息ID
     * @return 疫苗信息
     */
    public VaccineInfoOperation selectVaccineInfoById(Long id);

    /**
     * 根据身份证号查询该信息是否存在
     * @param idCard
     * @return
     */
    public VaccineInfoOperation selectVaccineInfoByIdCard(String idCard);

    public List<VaccineInfoOperation> selectVaccineInfoByIds(Long[] ids);

    /**
     * 查询疫苗信息列表
     * 
     * @param vaccineInfo 疫苗信息
     * @return 疫苗信息集合
     */
    public List<VaccineInfoOperation> selectVaccineInfoList(VaccineInfoOperation vaccineInfo);

    public List<VaccineInfoOperation> listByRlry(VaccineInfoOperation vaccineInfo);


    public List<VaccineInfoOperation> selectVaccineInfoListByPage(@Param("startNum") int startNum, @Param("endNum") int endNum);
    public List<VaccineInfoOperation> selectVaccineInfoListById(@Param("id") int id);


    /**
     * 新增疫苗信息
     * 
     * @param vaccineInfo 疫苗信息
     * @return 结果
     */
    public int insertVaccineInfo(VaccineInfoOperation vaccineInfo);

    /**
     * 修改疫苗信息
     * 
     * @param vaccineInfo 疫苗信息
     * @return 结果
     */
    public int updateVaccineInfo(VaccineInfoOperation vaccineInfo);
    public int updateAgeBirthday(VaccineInfoOperation vaccineInfo);

    int update(VaccineInfoOperation info);

    /**
     * 删除疫苗信息
     * 
     * @param id 疫苗信息ID
     * @return 结果
     */
    public int deleteVaccineInfoById(Long id);

    /**
     * 批量删除疫苗信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteVaccineInfoByIds(Long[] ids);

    /**
     * 根据身份证号查询用户信息
     * @param vaccineInfo
     * @return
     */
    public VaccineInfoOperation findHjInfo(VaccineInfoOperation vaccineInfo);


    /**
     * 根据dict_label 查询 dict_value
     * @param vaccineName
     * @return
     */
    public String selectSysDictDataByDictLabel(String vaccineName);

    List<VaccineInfoOperation> listByTotalTaskCnt();

    /**
     * 功能描述: 安康码根据身份证号码查询信息
     *
     * @param idCard idCard
     * @return com.alibaba.fastjson.JSONObject
     */
    VaccineInfoOperation getByIdCard(String idCard);

    int stsByYrl(@Param("deptIdList") List<Long> deptIdList, @Param("userName") String userName);

    int stsByWrl(@Param("deptIdList") List<Long> deptIdList, @Param("userName") String userName);

    int deleteCzrk(VaccineInfoOperation vaccineInfoOperation);

    List<VaccineInfoOperation> listByJs(VaccineInfoOperation condition);
    List<VaccineInfoOperation> listByXz(VaccineInfoOperation condition);
    int countByJs(VaccineInfoOperation condition);
    int countByXz(VaccineInfoOperation condition);

    /**
     * 功能描述: 根据deptIdList查找多少已经认领的（常住人口数量）
     *
     * @param condition deptIdList
     * @return int
     */
    int countCzrk(VaccineInfoOperation condition);
    int countIdCard(String idCard);

    List<VaccineInfoOperation> listByCode(String code);

    int reduction(String id);

    List<VaccineInfoOperation> handleData();

    List<JSONObject> getHouseType();

    int setHouseType(@Param("idCard") String idCard, @Param("code") String code
    , @Param("yhzgx") String yhzgx, @Param("houseType") String houseType);



}
