From 1eb5d791a32186ddba711a2e0421cbfffa67d300 Mon Sep 17 00:00:00 2001 From: 284718418@qq.com <youlinrc321> Date: Sun, 24 Apr 2022 15:39:13 +0800 Subject: [PATCH] ResumeSDK 本地测试 --- src/main/java/cn/timer/api/controller/zpgl/ZpglController.java | 3 ++- src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglService.java | 9 ++++++++- src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------- src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java | 11 ++++++++--- src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java | 2 +- src/main/java/cn/timer/api/dto/resumesdk/Result.java | 91 ------------------------------------------------------------------------------------------- src/main/java/cn/timer/api/dto/resumesdk/ReumeSdkResult.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/enumresume/ResumeSdk.java | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 375 insertions(+), 119 deletions(-) delete mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Result.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/ReumeSdkResult.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/enumresume/ResumeSdk.java diff --git a/src/main/java/cn/timer/api/controller/zpgl/ZpglController.java b/src/main/java/cn/timer/api/controller/zpgl/ZpglController.java index cc238d5..61c070c 100644 --- a/src/main/java/cn/timer/api/controller/zpgl/ZpglController.java +++ b/src/main/java/cn/timer/api/controller/zpgl/ZpglController.java @@ -467,7 +467,8 @@ public class ZpglController { return ResultUtil.error("导入简历失败,目前支持pdf,doc,docx,wps,txt,jpg,jpeg,png,bmp,tif格式~"); } importCandidateDto.setSuffix(suffix); - return zpglService.addResumeImportCandidate(userBean, file, importCandidateDto); + // return zpglService.addResumeImportCandidate(userBean, file, importCandidateDto); + return zpglService.addCandidateByResumeSDK(userBean, file, importCandidateDto); } catch (CustomException e) { e.printStackTrace(); throw e; diff --git a/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglService.java b/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglService.java index 0006eef..2b7ac56 100644 --- a/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglService.java +++ b/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglService.java @@ -30,12 +30,19 @@ public interface ZpglService { SysRegion getSysRegion(Integer keyId); /** - * + * BaiduTicResume * @param file * @return */ Result<Object> addResumeImportCandidate(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto); + /** + * ResumeSDK + * @param file + * @return + */ + Result<Object> addCandidateByResumeSDK(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto); + /** * 招聘-更改招聘职位 diff --git a/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java b/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java index 873f4c9..78634d9 100644 --- a/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java +++ b/src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java @@ -1,7 +1,6 @@ package cn.timer.api.controller.zpgl.sevice; import cn.timer.api.bean.clazz.SysRegion; -import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.wechat.MessageTemplate; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.zpgl.*; @@ -11,8 +10,8 @@ import cn.timer.api.config.enuminterface.JxglEnumInterface; import cn.timer.api.controller.kqgl.ClockInTool; import cn.timer.api.dto.baidu.*; import cn.timer.api.bean.clazz.NationClass; -import cn.timer.api.dto.email.SendMessageDto; -import cn.timer.api.dto.resumesdk.ResumeSdkDto; +import cn.timer.api.dto.resumesdk.*; +import cn.timer.api.dto.resumesdk.enumresume.ResumeSdk; import cn.timer.api.dto.template.InterviewNotice; import cn.timer.api.dto.zpgl.ImportCandidateDto; import cn.timer.api.dto.zpgl.ZpglRcxxDto; @@ -35,7 +34,6 @@ import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; -import javax.annotation.Resource; import javax.transaction.Transactional; import java.text.SimpleDateFormat; import java.util.Date; @@ -266,21 +264,11 @@ public class ZpglServiceImpl implements ZpglService { @Override public Result<Object> addResumeImportCandidate(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto) { - /*BaiduTicResumeDto baiduTicResumeDto = BaiduTicResumeDto.builder().filename(file.getOriginalFilename()).filetype(importCandidateDto.getSuffix()).filedata(Base64.getStrFromPath(file)).build(); - ResponseEntity<String> resumeString = baiduTicUtil.getResumeByCvParser(baiduTicResumeDto);*/ - ResumeSdkDto resumeSdkDto = ResumeSdkDto.builder().ocr_type(1).need_avatar(0).file_name(file.getOriginalFilename()).file_cont(Base64.getStrFromPath(file)).build(); - String resumeString = ""; - try { - resumeString = resumeSDKUtil.getResumeByCvParser(resumeSdkDto, RESUMESDK_APPCODE); - }catch (Exception e){ - e.printStackTrace(); - } - - - JSONObject json = (JSONObject) JSONObject.parse(resumeString); - log.info("招聘-导入候选人简历{}", resumeString); - return ResultUtil.success(); - /*ResumeExtract resumeExtract = null; + BaiduTicResumeDto baiduTicResumeDto = BaiduTicResumeDto.builder().filename(file.getOriginalFilename()).filetype(importCandidateDto.getSuffix()).filedata(Base64.getStrFromPath(file)).build(); + ResponseEntity<String> resumeString = baiduTicUtil.getResumeByCvParser(baiduTicResumeDto); + JSONObject json = (JSONObject) JSONObject.parse(resumeString.getBody()); + log.info("招聘-导入候选人简历{}", resumeString.getBody()); + ResumeExtract resumeExtract = null; if ("success".equals(json.get("error_msg"))) { if (StringUtils.isEmpty(json.get("results"))) { log.info("招聘-导入候选人简历:results is null"); @@ -304,10 +292,37 @@ public class ZpglServiceImpl implements ZpglService { importCandidateDto.setFilePath(data.getData()); importCandidateDto.setFileName(file.getOriginalFilename()); } - return this.addZpglRcxx(userBean, resumeExtract, importCandidateDto);*/ + return this.addZpglRcxx(userBean, resumeExtract, importCandidateDto); } @Override + public Result<Object> addCandidateByResumeSDK(UserBean userBean, MultipartFile file, ImportCandidateDto importCandidateDto) { + ResumeSdkDto resumeSdkDto = ResumeSdkDto.builder().ocr_type(1).need_avatar(0).file_name(file.getOriginalFilename()).file_cont(Base64.getStrFromPath(file)).build(); + String resumeString = ""; + try { + resumeString = resumeSDKUtil.getResumeByCvParser(resumeSdkDto, RESUMESDK_APPCODE); + }catch (Exception e){ + e.printStackTrace(); + } + JSONObject json = (JSONObject) JSONObject.parse(resumeString); + log.info("招聘-导入候选人简历{}", resumeString); + if(StringUtils.isEmpty(json)){ + log.error("招聘-导入候选人简历: resumeSDKUtil.getResumeByCvParser return null. "); + return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); + } + Status statusEntity = JSONObject.toJavaObject((JSONObject) json.get("status"), Status.class); + if(StringUtils.isEmpty(statusEntity) || !ResumeSdk.StatusCodeEnum.SUCCESSS.getType().equals(statusEntity.getCode())){ + log.error("招聘-导入候选人简历:{}",ResumeSdk.StatusCodeEnum.getName(statusEntity.getCode())); + return ResultUtil.error("导入简历失败,请联系管理员~("+ResumeSdk.StatusCodeEnum.getName(statusEntity.getCode())+")"); + } + Result<String> data = ossService.upload(userBean.getOrgCode(), "zpgl", file); + if(!StringUtils.isEmpty(data) && !StringUtils.isEmpty(data.getData())){ + importCandidateDto.setFilePath(data.getData()); + importCandidateDto.setFileName(file.getOriginalFilename()); + } + return this.addZpglRcxx(userBean, json, importCandidateDto); + } + @Override public boolean updateZpglRcxxZwxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { ZpglRcxx zpglRcxx = ZpglRcxx.builder().id(zpglRcxxDto.getId()).zpglZwxxId(zpglRcxxDto.getZpglZwxxId()).build(); ZpglMslcLog zpglMslcLog = new ZpglMslcLog(); @@ -439,6 +454,164 @@ public class ZpglServiceImpl implements ZpglService { } /** + * 导入简历 + * 同步人才信息 教育资讯 基本信息 其他信息 项目信息 工作信息 + * @sdkdocs http://www.resumesdk.com/docs/rs-parser.html + * @param json + * @param importCandidateDto + */ + private Result<Object> addZpglRcxx(UserBean userBean, JSONObject json, ImportCandidateDto importCandidateDto) { + ReumeSdkResult reumeSdkResult = JSONObject.toJavaObject((JSONObject) json.get("result"), ReumeSdkResult.class); + if(StringUtils.isEmpty(reumeSdkResult)){ + log.info("招聘-导入候选人简历:results is null"); + return ResultUtil.error("导入简历失败,请检查是否为简历文件~"); + } + ZpglRcxx zpglRcxx = ZpglRcxx.builder().build(); + zpglRcxx.setZpglZwxxId(importCandidateDto.getZpglZwxxId()); + zpglRcxx.setStatus(importCandidateDto.getStatus()); + zpglRcxx.setZpglZpqdId(importCandidateDto.getZpglZpqdId()); + zpglRcxx.setOrgCode(userBean.getOrgCode().toString()); + zpglRcxx.setFileName(importCandidateDto.getFileName()); + zpglRcxx.setFilePath(importCandidateDto.getFilePath()); + // 添加人才信息 + zpglRcxx.setName(reumeSdkResult.getName()); + String phone = reumeSdkResult.getPhone(); + if (StringUtils.isEmpty(phone)) { + return ResultUtil.error("导入简历失败,手机号码不存在~"); + } + // 查询简历是否重复导入 + ZpglRcxx zpglRcxxEntiyt = ZpglRcxx.builder().build().selectOne(new QueryWrapper<ZpglRcxx>().lambda().eq(ZpglRcxx::getMobile, phone).eq(ZpglRcxx::getDeleteFlag, 0)); + if (!StringUtils.isEmpty(zpglRcxxEntiyt)) { + return ResultUtil.error("简历已入库,请勿重复导入"); + } + zpglRcxx.setMobile(phone); + zpglRcxx.setMail(reumeSdkResult.getEmail()); + zpglRcxx.setWeixin(reumeSdkResult.getWeixin()); + zpglRcxx.setIdCard(reumeSdkResult.getId_card()); + if (!StringUtils.isEmpty(reumeSdkResult.getGender())) { + zpglRcxx.setSex(reumeSdkResult.getGender().indexOf("男") != -1 ? 0 : 1); + } + //出生日期,格式化为 年.月,如2000.01,若只有年,则只显示年,如2000 + if (!StringUtils.isEmpty(reumeSdkResult.getBirthday()) && reumeSdkResult.getBirthday().length() > 0) { + zpglRcxx.setDatebirth(this.getDate(reumeSdkResult.getBirthday())); + } + if (!StringUtils.isEmpty(reumeSdkResult.getRace())) { + NationClass nationClass = NationClass.builder().build().selectOne(new QueryWrapper<NationClass>().lambda().like(NationClass::getName, reumeSdkResult.getRace())); + if (!StringUtils.isEmpty(nationClass)) { + zpglRcxx.setNationClassId(nationClass.getId()); + } + } + // 身高 + if(!StringUtils.isEmpty(reumeSdkResult.getHeight())){ + String[] height = reumeSdkResult.getHeight().split("cm"); + if(height.length > 0){ + zpglRcxx.setHeight(Integer.parseInt(height[0])); + } + } + // 体重 + if(!StringUtils.isEmpty(reumeSdkResult.getWeight())){ + String[] height = reumeSdkResult.getWeight().split("kg"); + if(height.length > 0){ + zpglRcxx.setWeight(Integer.parseInt(height[0])); + } + } + zpglRcxx.setNativePlace(reumeSdkResult.getNationality()); + zpglRcxx.setAddress(reumeSdkResult.getLiving_address()); + zpglRcxx.setUniversitie(reumeSdkResult.getCollege()); + if(!StringUtils.isEmpty(reumeSdkResult.getDegree())){ + zpglRcxx.setHighesteducation(this.getEducation(reumeSdkResult.getDegree())+""); + } + if (!StringUtils.isEmpty(reumeSdkResult.getWork_year_norm())) { + if(reumeSdkResult.getWork_year_norm().indexOf(".") != -1){ + zpglRcxx.setWorkyears(Integer.parseInt(reumeSdkResult.getWork_year_norm().split(".")[0])+1); + }else { + zpglRcxx.setWorkyears(Integer.parseInt(reumeSdkResult.getWork_year_norm())); + } + } + if(!StringUtils.isEmpty(reumeSdkResult.getExpect_salary_max())){ + zpglRcxx.setSalary(Integer.parseInt(reumeSdkResult.getExpect_salary_max())); + } + zpglRcxx.setCompany(reumeSdkResult.getWork_company()); + + zpglRcxx.setZjzw(reumeSdkResult.getWork_position()); + zpglRcxx.insert(); + if (!StringUtils.isEmpty(zpglRcxx.getId())) { + // 添加教育经历 + if (!StringUtils.isEmpty(reumeSdkResult.getEducation_objs())) { + ZpglRcxxStudy zpglRcxxStudy = ZpglRcxxStudy.builder().zpglRcxxId(zpglRcxx.getId()).build(); + List<Education_objs> list = reumeSdkResult.getEducation_objs(); + for (Education_objs entity : list) { + if (!StringUtils.isEmpty(entity.getStart_date()) && entity.getStart_date().length() > 0) { + zpglRcxxStudy.setStartTime(this.getDate(entity.getStart_date())); + } + if (!StringUtils.isEmpty(entity.getEnd_date()) && entity.getEnd_date().length() > 0) { + zpglRcxxStudy.setEndTime(this.getDate(entity.getEnd_date())); + } + zpglRcxxStudy.setSubject(entity.getEdu_major()); + zpglRcxxStudy.setSchoolName(entity.getEdu_college()); + zpglRcxxStudy.setEducation(this.getEducation(entity.getEdu_degree_norm())); + zpglRcxxStudy.insert(); + } + } + // 添加工作经验 + if (!StringUtils.isEmpty(reumeSdkResult.getJob_exp_objs())) { + ZpglRcxxExperience zpglRcxxExperience = ZpglRcxxExperience.builder().zpglRcxxId(zpglRcxx.getId()).build(); + List<Job_exp_objs> list = reumeSdkResult.getJob_exp_objs(); + for (Job_exp_objs entity : list) { + zpglRcxxExperience.setCompany(entity.getJob_cpy()); + zpglRcxxExperience.setJobName(entity.getJob_position()); + zpglRcxxExperience.setDepartment(entity.getJob_dept()); + zpglRcxxExperience.setWorkContent(entity.getJob_content()); + zpglRcxxExperience.setReason(entity.getJob_why_leave()); + if (!StringUtils.isEmpty(entity.getEnd_date()) && entity.getEnd_date().length() > 0) { + zpglRcxxExperience.setEndTime(this.getDate(entity.getEnd_date())); + } + if (!StringUtils.isEmpty(entity.getStart_date()) && entity.getStart_date().length() > 0) { + zpglRcxxExperience.setStartTime(this.getDate(entity.getStart_date())); + } + + zpglRcxxExperience.insert(); + } + } + // 添加项目信息 + if (!StringUtils.isEmpty(reumeSdkResult.getProj_exp_objs())) { + ZpglRcxxProject zpglRcxxProject = ZpglRcxxProject.builder().zpglRcxxId(zpglRcxx.getId()).build(); + List<Proj_exp_objs> list = reumeSdkResult.getProj_exp_objs(); + for (Proj_exp_objs entity : list) { + zpglRcxxProject.setProjectDescribe(entity.getProj_content()); + zpglRcxxProject.setDuty(entity.getProj_resp()); + zpglRcxxProject.setJob(entity.getProj_position()); + zpglRcxxProject.setProjectName(entity.getProj_name()); + if (!StringUtils.isEmpty(entity.getStart_date()) && entity.getStart_date().length() > 0) { + zpglRcxxProject.setStartTime(this.getDate(entity.getStart_date())); + } + if (!StringUtils.isEmpty(entity.getEnd_date()) && entity.getEnd_date().length() > 0) { + zpglRcxxProject.setEndTime(this.getDate(entity.getEnd_date())); + } + zpglRcxxProject.insert(); + } + } + // 添加培训经历 + if (!StringUtils.isEmpty(reumeSdkResult.getTraining_objs())) { + ZpglRcxxTrain zpglRcxxTrain = ZpglRcxxTrain.builder().zpglRcxxId(zpglRcxx.getId()).build(); + List<Training_objs> list = reumeSdkResult.getTraining_objs(); + for (Training_objs entity : list) { + zpglRcxxTrain.setTrainCompany(entity.getTrain_org()); + zpglRcxxTrain.setTrainContent(entity.getTrain_cont()); + if (!StringUtils.isEmpty(entity.getStart_date()) && entity.getStart_date().length() > 0) { + zpglRcxxTrain.setStartTime(this.getDate(entity.getStart_date())); + } + if (!StringUtils.isEmpty(entity.getEnd_date()) && entity.getEnd_date().length() > 0) { + zpglRcxxTrain.setEndTime(this.getDate(entity.getEnd_date())); + } + zpglRcxxTrain.insert(); + } + } + } + return ResultUtil.success(); + } + + /** * 根据string时间获取date(2019-10或2019) * * @param date @@ -446,6 +619,7 @@ public class ZpglServiceImpl implements ZpglService { */ private Date getDate(String date) { String datebirth = ""; + date.replace(".","-"); String[] num = date.split("-"); if (num.length == 1) { datebirth = num[0] + "-1-1"; @@ -467,13 +641,16 @@ public class ZpglServiceImpl implements ZpglService { return education; } // 博士研究生/硕士研究生/本科/专科/高中/中专/初中 + // 小学、初中、高中、中专、大专、本科、硕士研究生、博士研究生、博士后、mba if (str.indexOf("初中") != -1) { education = 2; - } else if (str.indexOf("中专") != -1) { + } else if (str.indexOf("小学") != -1) { + education = 1; + }else if (str.indexOf("中专") != -1) { education = 4; } else if (str.indexOf("高中") != -1) { education = 3; - } else if (str.indexOf("专科") != -1) { + } else if (str.indexOf("专科") != -1 || str.indexOf("大专") != -1) { education = 5; } else if (str.indexOf("本科") != -1) { education = 6; diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java index fb82aaa..3710f09 100644 --- a/src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java +++ b/src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java @@ -55,7 +55,12 @@ public class Job_exp_objs implements Serializable { * 工作性质 全职、兼职、实习 */ private String job_nature; - - - + /** + * 所在部门,部门名称 + */ + private String job_dept; + /** + * 离职原因 + */ + private String job_why_leave; } diff --git a/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java b/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java index 993d891..7bd079b 100644 --- a/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java +++ b/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java @@ -19,7 +19,7 @@ import java.io.Serializable; public class JsonRootBean implements Serializable { private Status status; - private Result result; + private ReumeSdkResult result; private Eval eval; private Tags tags; diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Result.java b/src/main/java/cn/timer/api/dto/resumesdk/Result.java deleted file mode 100644 index 6d5b79c..0000000 --- a/src/main/java/cn/timer/api/dto/resumesdk/Result.java +++ /dev/null @@ -1,91 +0,0 @@ -package cn.timer.api.dto.resumesdk; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -/** - * @author wuqingjun - * @email 284718418@qq.com - * @date 2022/4/22 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class Result implements Serializable { - - private String name; - private String gender; - private String age; - private String marital_status; - private String polit_status; - private String major; - private String surname; - private String height; - private String weight; - private Date birthday; - private String city_norm; - private String college; - private String college_type; - private String college_rank; - private String has_oversea_edu; - private String has_oversea_exp; - private String city; - private String grad_time; - private String degree; - private String race; - private String nationality; - private String english_level; - private String computer_level; - private String work_position; - private String work_company; - private String work_industry; - private String work_start_time; - private String work_year_norm; - private String work_year; - private String work_job_nature; - private String work_start_time_inf; - private String phone; - private String email; - private String postal_code; - private String qq; - private String weixin; - private String expect_salary; - private String expect_salary_min; - private String expect_salary_max; - private String expect_job; - private String expect_industry; - private String living_address; - private String living_address_norm; - private String hukou_address_norm; - private String hukou_address; - private String hometown_address_norm; - private String hometown_address; - private String resume_type; - private String resume_source; - private String resume_integrity; - private Date resume_parse_time; - private String resume_name; - private String avatar_data; - private List<Education_objs> education_objs; - private List<Job_exp_objs> job_exp_objs; - private List<Proj_exp_objs> proj_exp_objs; - private List<Training_objs> training_objs; - private List<Cert_objs> cert_objs; - private List<Lang_objs> lang_objs; - private List<Skills_objs> skills_objs; - private String cont_basic_info; - private String cont_expect_job; - private String cont_education; - private String cont_job_exp; - private String cont_proj_exp; - private String cont_job_skill; - private String raw_text; - -} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/ReumeSdkResult.java b/src/main/java/cn/timer/api/dto/resumesdk/ReumeSdkResult.java new file mode 100644 index 0000000..a5c2727 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/ReumeSdkResult.java @@ -0,0 +1,92 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReumeSdkResult implements Serializable { + + private String name; + private String gender; + private String age; + private String marital_status; + private String polit_status; + private String major; + private String surname; + private String height; + private String weight; + private String birthday; + private String city_norm; + private String college; + private String college_type; + private String college_rank; + private String has_oversea_edu; + private String has_oversea_exp; + private String city; + private String grad_time; + private String degree; + private String id_card; + private String race; + private String nationality; + private String english_level; + private String computer_level; + private String work_position; + private String work_company; + private String work_industry; + private String work_start_time; + private String work_year_norm; + private String work_year; + private String work_job_nature; + private String work_start_time_inf; + private String phone; + private String email; + private String postal_code; + private String qq; + private String weixin; + private String expect_salary; + private String expect_salary_min; + private String expect_salary_max; + private String expect_job; + private String expect_industry; + private String living_address; + private String living_address_norm; + private String hukou_address_norm; + private String hukou_address; + private String hometown_address_norm; + private String hometown_address; + private String resume_type; + private String resume_source; + private String resume_integrity; + private Date resume_parse_time; + private String resume_name; + private String avatar_data; + private List<Education_objs> education_objs; + private List<Job_exp_objs> job_exp_objs; + private List<Proj_exp_objs> proj_exp_objs; + private List<Training_objs> training_objs; + private List<Cert_objs> cert_objs; + private List<Lang_objs> lang_objs; + private List<Skills_objs> skills_objs; + private String cont_basic_info; + private String cont_expect_job; + private String cont_education; + private String cont_job_exp; + private String cont_proj_exp; + private String cont_job_skill; + private String raw_text; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/enumresume/ResumeSdk.java b/src/main/java/cn/timer/api/dto/resumesdk/enumresume/ResumeSdk.java new file mode 100644 index 0000000..d85100b --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/enumresume/ResumeSdk.java @@ -0,0 +1,65 @@ +package cn.timer.api.dto.resumesdk.enumresume; + +import lombok.Getter; +import org.eclipse.jetty.websocket.api.StatusCode; +import org.springframework.util.StringUtils; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/24 + */ +public interface ResumeSdk { + /** + * 200 正常状态,表示解析成功 + * 250 账号(uid)或密码(pwd)错误 + * 251 账号剩余用量为0(需及时充值) + * 260 请求参数错误 + * 261 简历内容为空 + * 262 简历内容过长 + * 263 不支持的简历文件格式 + * 264 base64解码出错 + * 265 图片文件过大,或者长宽大小超过限制 + * 266 输入参数file_name缺少文件后缀名(请带上正确的文件后缀,如果是纯文本则为.txt) + * 267 输入的json结构体有误(即解码失败) + * 240 简历解析内部错误 + * 280 人岗匹配内部错误 + */ + @Getter + enum StatusCodeEnum implements ResumeSdk { + SUCCESSS(200, "解析成功"), + ERROR250(250, "账号(uid)或密码(pwd)错误"), + ERROR251(251, "账号剩余用量为0(需及时充值)"), + ERROR260(260, "请求参数错误"), + ERROR261(261, "简历内容为空"), + ERROR262(262, "简历内容过长"), + ERROR263(263, "不支持的简历文件格式"), + ERROR264(264, "base64解码出错"), + ERROR265(265, "图片文件过大,或者长宽大小超过限制"), + ERROR266(266, "输入参数file_name缺少文件后缀名(请带上正确的文件后缀,如果是纯文本则为.txt)"), + ERROR267(267, "输入的json结构体有误(即解码失败)"), + ERROR240(240, "简历解析内部错误"), + ERROR280(280, "人岗匹配内部错误"); + + private Integer type; + + private String name; + + StatusCodeEnum(Integer type, String name) { + this.type = type; + this.name = name; + } + public static String getName(Integer type){ + if(type < 0){ + return ""; + } + for(StatusCodeEnum.StatusCodeEnum statusCodeEnum : StatusCodeEnum.StatusCodeEnum.values()){ + if(statusCodeEnum.getType() == type){ + return statusCodeEnum.name; + } + } + return ""; + } + + } +} -- libgit2 0.26.0