package com.boman.web.core.service.vaccineInfo;

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.Czrk;
import com.boman.domain.dto.AjaxResult;
import com.boman.domain.VaccineInfoOperation;

import java.util.List;

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

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

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

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

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

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

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

    /**
     * 功能描述: 统计
     *
     * @return java.util.List<com.alibaba.fastjson.JSONObject>
     */
    AjaxResult statistic();

    List<JSONObject> list();

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

    VaccineInfoOperation getById(Long id);

    JSONObject stsByApplet(Long townId, Long villageId, String userName);

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

    AjaxResult deleteCzrk(VaccineInfoOperation vaccineInfoOperation);

    List<VaccineInfoOperation> family(String code);

    /**
     * 功能描述: 回收站的还原功能
     *
     * @param id id
     * @return int
     */
    int reduction(String id);
}
