package com.zjrs.ggfw.rlzysc.bpo;

import org.mohrss.leaf.core.framework.persistens.PageResult;
import com.zjrs.ggfw.rlzysc.dto.*;
import com.zjrs.ggfw.rlzysc.dto.common.PageDTO;
import com.zjrs.ggfw.rlzysc.dto.grzxjlxx.*;
import com.zjrs.ggfw.rlzysc.po.*;

import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

public interface GrqzBPO {

    public Map<String, String> uploadPhoto(GrqzGrtxUploadDTO dto);
    public JlxxPO queryPhoto(GrqzGrxxQueryDTO dto);
    public Map<String, String> uploadVideo(GrqzGrspUploadDTO dto);
    public JlxxPO queryVideo(GrqzGrxxQueryDTO dto);
    //获取岗位信息列表
    public PageResult queryGwxxList(GrqzGwxxQueryDTO dto, int page, int rows);
    //删除岗位信息
    public void deleteGwxx(String id);
    //关注公司列表
    public PageResult queryGzgsList(GrqzGzgsQueryDTO dto, int page, int rows);
    //关注公司
    public void addGzgs(GrqzGzgsDTO dto);
    //取消关注公司
    public void deleteGzgs(String id);
    //屏蔽设置列表
    public PageResult queryPbszList(GrqzPbszQueryDTO dto, int page, int rows);
    //新增屏蔽设置
    public void addPbsz(GrqzPbszDTO dto);
    //取消屏蔽设置
    public void deletePbsz(String id);
    //职业搜索器列表
    public PageResult queryZyssqList(GrqzZyssqDTO dto, int page, int rows);
    //新增职业搜索器
    public void addZyssq(GrqzZyssqDTO dto);
    //更新职业搜索器
    public void updateZyssq(GrqzZyssqDTO dto);
    //获取职业搜索器BYID
    public ZyssqPO getZyssqById(String id);
    //删除职业搜索器BYID
    public void deleteZyssqById(String id);
    //职业搜索器不能超过10
    public int countZyssq();

    PageResult getgzjyWhList(int page, int rows,JlxxWDTO dto);

    PageResult getjyjlWhList(int page, int rows,JlxxWDTO dto);

    PageResult getpxjlWhList(int page, int rows,JlxxWDTO dto);

    PageResult getzyjnWhList(int page, int rows,JlxxWDTO dto);

    PageResult getshzsWhList(int page, int rows,JlxxWDTO dto);

    PageResult getHjqkWhList(int page, int rows,JlxxWDTO dto);

    PageResult getZcqkWhList(int page, int rows,JlxxWDTO dto);

    void deleteById(String id);

    void deleteJyjlById(String id);

    void deletePxjlById(String id);

    void deleteZyjnById(String id);

    void deleteShzsById(String id);

    void deleteHjqkById(String id);

    void deleteZcqkById(String id);

    RsRlzyGzjyPO saveGzjyXx(JlxxGzjyUDTO dto);

    RsRlzyJyjlPO saveJyjlXx(JlxxJyjlUDTO dto);

    RsRlzyPxjlPO savePxjlXx(JlxxPxjlUDTO dto);

    RsRlzyZyjnPO saveZyjnXx(JlxxZyjnUDTO dto);

    RsRlzyShzsPO saveShzsXx(JlxxShzsUDTO dto);

    RsRlzyHjqkPO saveHjqkXx(JlxxHjqkUDTO dto);

    RsRlzyZcqkPO saveZcqkXx(JlxxZcqkUDTO dto);

    void deleteGzjyWhById(SelectJlxxDTO dto); //删除工作经验维护信息

    void deleteJyjlWhById(SelectJlxxDTO dto); //删除教育经历维护信息

    void deletePxjlWhById(SelectJlxxDTO dto); //删除培训经历维护信息

    void deleteZyjnWhById(SelectJlxxDTO dto); //删除职业技能维护信息

    void deleteShzsWhById(SelectJlxxDTO dto); //删除所获证书维护信息

    void deleteHjqkWhById(SelectJlxxDTO dto); //删除获奖情况维护信息

    void deleteZcqkWhById(SelectJlxxDTO dto); //删除获奖情况维护信息

    Map getJlgzjy(ZjQueryDTO dto); //获取工作经验信息
    Map getJljyjl(ZjQueryDTO dto);//获取教育经历信息
    Map getJlpxjl(ZjQueryDTO dto);//获取培训经历信息
    Map getJlzyjn(ZjQueryDTO dto);//获取职业技能信息
    Map getJlshzs(ZjQueryDTO dto);//获取所获证书信息
    Map getJlhjqk(ZjQueryDTO dto);//获取获奖情况信息
    Map getJlzcqk(ZjQueryDTO dto);//获取职称情况信息
    public PageResult getMyJlxxlist(PageDTO dto);
    public PageResult getMyJlxxMrlist(PageDTO dto);
    public void deleteMyJlxx(String id);
    public void updateMyJlmrzt(MrjlUDTO dto);
    public void copyMyJlxx(CopyJlDTO dto) throws Exception;
    public void exportMyJlxx(ExportJlDTO dto, HttpServletResponse res) throws IllegalAccessException, IOException, InvocationTargetException;
    public Map getJlxx(JltotalDTO dto);
    public JlxxPO saveJljbxx(GrqzWdjlJbxxDTO dto);
    public JlxxPO saveJljbxx(GrJlxxDTO dto); //职位申请时保存简历的基本信息
    public Map getJljbxx(JljbxxDTO dto);
    public Map getJljbxxForDw(ZjQueryDTO dto);
    public RsRlzyQzyxPO saveJlqzyx(GrqzWdjlQzyxDTO dto);
    public Map getJlqzyx(ZjQueryDTO dto);
    public Map getJlqzyxForDw(ZjQueryDTO dto);
    public void updateFbzt(ZjUDTO dto);
    public void toNwsh(ZjDTO dto);


    List<JlxxGzjyUDTO> getgzjyList(JlxxWhDTO dto);//获取工作经验列表
    List<JlxxJyjlUDTO> getjyjlList(JlxxWhDTO dto);//获取教育经历列表
    List<JlxxPxjlUDTO> getpxjlList(JlxxWhDTO dto);//获取培训经历列表
    List<JlxxZyjnUDTO> getzyjnList(JlxxWhDTO dto);//获取职业技能列表
    List<JlxxShzsUDTO> getshzsList(JlxxWhDTO dto);//获取所获证书列表
    List<JlxxHjqkUDTO> gethjqkList(JlxxWhDTO dto);//获取获奖情况列表
    List<JlxxZcqkUDTO> getzcqkList(JlxxWhDTO dto);//获取职称情况列表

    List<RsRlzyGzjyPO> getGzjyNrById(String id);//获取工作经验内容（过滤在当前简历已存在的工作经验信息）
    List<RsRlzyJyjlPO> getJyjlNrById(String id);
    List<RsRlzyPxjlPO> getPxjlNrById(String id);
    List<RsRlzyZyjnPO> getZyjnNrById(String id);
    List<RsRlzyShzsPO> getShzsNrById(String id);
    List<RsRlzyHjqkPO> getHjqkNrById(String id);
    List<RsRlzyZcqkPO> getZcqkNrById(String id);

    void addgzjynr(SelectJlxxDTO dto);//新增工作经验
    void addjyjlnr(SelectJlxxDTO dto);
    void addpxjlnr(SelectJlxxDTO dto);
    void addzyjnnr(SelectJlxxDTO dto);
    void addshzsnr(SelectJlxxDTO dto);
    void addhjqknr(SelectJlxxDTO dto);
    void addzcqknr(SelectJlxxDTO dto);

    public List<RsRlzyZwxxPO> getZwzntjList();//获取智能推荐职位
    public List<RsRlzyZwxxPO> getRgtjzw();//获取人工推荐职位
    public int getGzgsNum(); //统计关注的公司数量
    public int getSczwNum(); //统计收藏的公司数量
    public int getSqzwNum(); //统计申请职位的数量

    public void getSczw(GrqzSczwDTO dto);  //收藏职位
    public void Sqzw(GrqzSczwDTO dto); //申请职位


    public void toGrspTjsh(DwTxSpQueryDTO dto); //提交个人视频审核
    public void toGrtxTjsh(DwTxSpQueryDTO dto); //提交个人头像审核
    public JlxxPO getMrjllsh();//获取用户的默认简历


    public JlxxPO getzxJlxx();//获取用户最新简历

    public Map getGrzxJljbxx(ZjQueryDTO dto1);


}

