package com.srs.stureg.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.common.core.domain.AjaxResult;
import com.srs.comprehensive.domain.Vo.CphSearch;
import com.srs.comprehensive.domain.Vo.DataScreen;
import com.srs.stureg.domain.GxsdxySjzx009Temp2024xsxx;
import com.srs.stureg.domain.SrsStuReg;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

/**
 * 新生报到学生注册信息Service接口
 *
 * @author srs
 * @date 2023-07-24
 */
public interface ISrsStuRegService extends IService<SrsStuReg> {

    public AjaxResult syncClassCode();

    public List<GxsdxySjzx009Temp2024xsxx> listXsxxTemp(GxsdxySjzx009Temp2024xsxx param);

    public List<Map<String,Object>> countRoomBed();

    public List<Map<String,Object>> countStuXb();

    public List<Map<String,Object>> listNewBaodao();

    public List<Map<String,Object>> countDeptBaodao();

    public List<DataScreen> countBaodao();

    public List<Map<String,Object>> countCityStu();

    public List<DataScreen> countDeptStuMoney();

    public List<Map<String,Object>> countDept();

    public List<DataScreen> countArea();
    public Map<String,Object> countNowAt();

    List<DataScreen> countMajorTop10();
    List<DataScreen> countGender();
    public List<SrsStuReg> listView(CphSearch param);

    public int changePwdIs(SrsStuReg stu);
    public SrsStuReg getOwnInfoByKsh(String ksh);

    public Map<String, Integer> selectCountByRegStatus();


    /**
     * 查询新生报到学生注册信息
     *
     * @param id 新生报到学生注册信息主键
     * @return 新生报到学生注册信息
     */
    public SrsStuReg selectSrsStuRegById(Long id);

    /**
     * 通过学号查询注册信息
     *
     * @param stuNo
     * @return
     */
    public SrsStuReg selectSrsStuRegByStuNo(String stuNo);

    /**
     * 查询新生报到学生注册信息列表
     *
     * @param srsStuReg 新生报到学生注册信息
     * @return 新生报到学生注册信息集合
     */
    public List<SrsStuReg> selectSrsStuRegList(SrsStuReg srsStuReg);

    /**
     * 新增新生报到学生注册信息
     *
     * @param srsStuReg 新生报到学生注册信息
     * @return 结果
     */
    public int insertSrsStuReg(SrsStuReg srsStuReg);

    /**
     * 修改新生报到学生注册信息
     *
     * @param srsStuReg 新生报到学生注册信息
     * @return 结果
     */
    public int updateSrsStuReg(SrsStuReg srsStuReg);

    /**
     * 批量删除新生报到学生注册信息
     *
     * @param ids 需要删除的新生报到学生注册信息主键集合
     * @return 结果
     */
    public int deleteSrsStuRegByIds(List<Long> ids);

    /**
     * 删除新生报到学生注册信息信息
     *
     * @param id 新生报到学生注册信息主键
     * @return 结果
     */
    public int deleteSrsStuRegById(Long id);

    List<SrsStuReg> addSrsStuRegList(List<Map<String, Object>> srsStuRegs,String fileName);

    Map insertStuRegList(Map<String, Object> jsonMap);

    Map verifyXX(Map<String, Object> jsonMap);

    Map verifyPhone(Map<String, Object> jsonMap);


    int addDbf(MultipartFile file, String tableName);

    int updateSrsStuRegByKSH(SrsStuReg srsStuReg);

    List<Map<String, Object>> insertDBF(MultipartFile file);

    List<Map<String, Object>> addSrsStuRegDbfList(List<Map<String, Object>> srsStuRegs, String fileName);

    Map verifyPwd(Map<String, Object> jsonMap);

    Map checkPwd(Map<String, Object> jsonMap);

    int addSrsStuRegs(List<SrsStuReg> srsStuRegs);
}
