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

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.Czrk;
import com.boman.domain.ThirdPartInfo;
import com.boman.domain.dto.AjaxResult;
import com.boman.web.core.domain.AccountingData;
import com.boman.web.core.domain.JsonRequest;

import java.util.List;

/**
 * 常住人口Service接口
 *
 * @author ruoyi
 * @date 2022-01-14
 */
public interface ICzrkService {


    /**
     * 2022/3/24修复户籍人员认领接口列表,逻辑:所有人都能看到所有没有确认,没有认领的人员
     * @param czrk
     * @return
     */
    List<Czrk> listByRlryHj(Czrk czrk);

    /**
     * 2022/3/24修复常住人员认领接口列表,逻辑:所有人都能看到所有没有确认,没有认领的人员
     * @param czrk
     * @return
     */
    List<Czrk> listByRlryCz(Czrk czrk);

    /**
     * 2022/3/22重新修复的PC人员信息查看户籍人口接口
     * @param czrk
     * @return
     */
    List<Czrk> listByCzrk(Czrk czrk);

    /**
     * 查询非正常人员列表(死亡,失踪)
     * @param czrk
     * @return
     */
    List<Czrk> unusualList(Czrk czrk);

    List<Czrk> listByXz(Czrk czrk);
    List<Czrk> listByJs(Czrk czrk);
    /**
     * 查询常住人口
     *
     * @param id 常住人口主键
     * @return 常住人口
     */
    Czrk selectCzrkById(Long id);

    /**
     * 新增户籍人口
     *
     * @param czrk 户籍人口
     * @return 结果
     */
    AjaxResult insertCzrk(Czrk czrk);

    /**
     * 修改常住人口
     *
     * @param czrk 常住人口
     * @return 结果
     */
    AjaxResult updateCzrk(Czrk czrk);

    /**
     * 批量删除常住人口
     *
     * @param ids 需要删除的常住人口主键集合
     * @return 结果
     */
//    int deleteCzrkByIds(Long[] ids);

    /**
     * 删除常住人口信息
     *
     * @param id 常住人口主键
     * @return 结果
     */
    int deleteCzrkById(Long id);

    int deleteCzrk(Czrk czrk);
    int reduction(String id);
    List<Czrk> family(String code);

    Czrk getById(Long id);

    AjaxResult addRlry(Czrk czrk);
    AjaxResult editRlry(Czrk czrk);

    JSONObject stsByApplet(Czrk czrk);
    JSONObject stsByCzrk();
    JSONObject stsByCzrkHomePage();

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

    JSONObject hjczLine();

    AjaxResult getInfo(String appKey, String appSecret, String idCard);
    AjaxResult getInfoJson(JsonRequest jsonRequest);

    /**
     * 一键确认家庭成员
     * @param ids
     * @return
     */
    AjaxResult confirmInfoByIds(Long ids[]);

    /***
     * 功能描述: 根据户主修改家庭成员的户籍与居住信息
     * @return com.boman.domain.dto.AjaxResult
     */
    AjaxResult synchronization(String code);

    /**
     * 变更接口
     * @param czrk
     * @return
     */
    AjaxResult changeCzrk(Czrk czrk);

    /**
     * 查询历史变更信息
     * @param czrk
     * @return
     */
    AjaxResult changeCzrkHistory(Czrk czrk);

    List<Czrk> getAllCzrkRegionId(String s);

    List<Czrk> getAllCzrk(Czrk czrk);

    String importUser(List<ThirdPartInfo> thirdPartInfoList,String source);

    List<ThirdPartInfo> listDie(ThirdPartInfo thirdPartInfo);

    AjaxResult delecteDie(String idCard);

    AjaxResult findXsInfo(String id, String idCard);

    AjaxResult addBabyCzrk(Czrk czrk);

    AjaxResult vaccineStatistics(String code,String lenth);

    List<Czrk> exportQianShan();

    List<Czrk> getAllCzrkHjVillage(Czrk czrk);

    int setNoRl();
}
