From d96976e3a8ac70aa9fa93d090d0c658d6a55948c Mon Sep 17 00:00:00 2001 From: 284718418@qq.com <youlinrc321> Date: Fri, 22 Apr 2022 17:00:15 +0800 Subject: [PATCH] ResumeSDK --- src/main/java/cn/timer/api/controller/zpgl/sevice/ZpglServiceImpl.java | 19 +++++++++++++++---- src/main/java/cn/timer/api/dto/resumesdk/Cert_objs.java | 33 +++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Education_objs.java | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Eval.java | 23 +++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Industries.java | 25 +++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java | 26 ++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Lang_objs.java | 38 ++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Pos_tags.java | 24 ++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Pos_types.java | 24 ++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Proj_exp_objs.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Result.java | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/ResumeSdkDto.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Skills_objs.java | 36 ++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Skills_tags.java | 24 ++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Status.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Tags.java | 28 ++++++++++++++++++++++++++++ src/main/java/cn/timer/api/dto/resumesdk/Training_objs.java | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/cn/timer/api/utils/resumesdk/ResumeSDKUtil.java | 37 +++++++++++++++++++++++++++++++++++++ src/main/resources/application-test.yml | 1 + 20 files changed, 744 insertions(+), 4 deletions(-) create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Cert_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Education_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Eval.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Industries.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Lang_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Pos_tags.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Pos_types.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Proj_exp_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Result.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/ResumeSdkDto.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Skills_objs.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Skills_tags.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Status.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Tags.java create mode 100644 src/main/java/cn/timer/api/dto/resumesdk/Training_objs.java create mode 100644 src/main/java/cn/timer/api/utils/resumesdk/ResumeSDKUtil.java 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 b383661..42d037e 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 @@ -12,6 +12,7 @@ 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.template.InterviewNotice; import cn.timer.api.dto.zpgl.ImportCandidateDto; import cn.timer.api.dto.zpgl.ZpglRcxxDto; @@ -21,6 +22,7 @@ import cn.timer.api.utils.ResultUtil; import cn.timer.api.utils.ZpglMessageTemplate; import cn.timer.api.utils.baidu.BaiduTicUtil; import cn.timer.api.utils.baidu.Base64; +import cn.timer.api.utils.resumesdk.ResumeSDKUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -54,6 +56,8 @@ public class ZpglServiceImpl implements ZpglService { @Autowired private BaiduTicUtil baiduTicUtil; + @Autowired + private ResumeSDKUtil resumeSDKUtil; @Autowired private JavaMailSender mailSender; @@ -67,6 +71,9 @@ public class ZpglServiceImpl implements ZpglService { @Autowired private OSSService ossService; + @Value("${config-8timer.Aliyun.RESUMESDK_APPCODE}") + private String RESUMESDK_APPCODE; + @Override public boolean updateZpglRcxx(UserBean userBean, ZpglRcxxDto zpglRcxxDto) { @@ -259,11 +266,15 @@ 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); + /*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)).filetype(importCandidateDto.getSuffix()).build(); + ResponseEntity<String> resumeString = resumeSDKUtil.getResumeByCvParser(resumeSdkDto, RESUMESDK_APPCODE); + JSONObject json = (JSONObject) JSONObject.parse(resumeString.getBody()); log.info("招聘-导入候选人简历{}", resumeString.getBody()); - ResumeExtract resumeExtract = null; + return ResultUtil.success(); + /*ResumeExtract resumeExtract = null; if ("success".equals(json.get("error_msg"))) { if (StringUtils.isEmpty(json.get("results"))) { log.info("招聘-导入候选人简历:results is null"); @@ -287,7 +298,7 @@ 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 diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Cert_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Cert_objs.java new file mode 100644 index 0000000..e1ef133 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Cert_objs.java @@ -0,0 +1,33 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 语言证书列表 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Cert_objs implements Serializable { + /** + * 语言名称 + */ + private String langcert_lang; + /** + * 证书名称 + */ + private String langcert_name; + /** + * 证书成绩 + */ + private String langcert_score; +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Education_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Education_objs.java new file mode 100644 index 0000000..766164b --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Education_objs.java @@ -0,0 +1,62 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 教育经历 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Education_objs implements Serializable { + /** + * 学校名称 + */ + private String edu_college; + /** + * 专业名称 + */ + private String edu_major; + /** + * 开始时间 + */ + private String start_date; + /** + * 结束时间 + */ + private String end_date; + /** + * 学历 + */ + private String edu_degree; + /** + * 学历:小学、初中、高中、中专、大专、本科、硕士研究生、博士研究生、博士后、mba + */ + private String edu_degree_norm; + /** + * 学校排名:取值1~1000 + */ + private String edu_college_rank; + /** + * 学校类型取值0~7: + * 0:普通院校 + * 1:985 + * 2:211 + * 3:港澳台院校 + * 4:海外院校 + * 5:中学 + * 6:职业教育 + * 7:培训机构 + */ + private String edu_college_type; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Eval.java b/src/main/java/cn/timer/api/dto/resumesdk/Eval.java new file mode 100644 index 0000000..1c8def1 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Eval.java @@ -0,0 +1,23 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Eval implements Serializable { + + private int salary; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Industries.java b/src/main/java/cn/timer/api/dto/resumesdk/Industries.java new file mode 100644 index 0000000..42b0127 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Industries.java @@ -0,0 +1,25 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Industries implements Serializable { + + private double tag_weight; + private String tag_name; + + +} 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 new file mode 100644 index 0000000..fb82aaa --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Job_exp_objs.java @@ -0,0 +1,61 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 工作经历及实习经历 + * 其中实习经历通过job_nature="实习"进行标识 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Job_exp_objs implements Serializable { + /** + * 职位 + */ + private String job_position; + /** + * 结束时间 + */ + private String end_date; + /** + * 工作内容 + */ + private String job_content; + /** + * 公司名称 + */ + private String job_cpy; + /** + * 行业名称 + */ + private String job_industry; + /** + * 公司规模 + */ + private String job_cpy_size; + /** + * 持续时间 比如“1年3个月”、“3年”、“6个月” + */ + private String job_duration; + /** + * 开始时间 + */ + private String start_date; + /** + * 工作性质 全职、兼职、实习 + */ + private String job_nature; + + + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java b/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java new file mode 100644 index 0000000..993d891 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/JsonRootBean.java @@ -0,0 +1,26 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class JsonRootBean implements Serializable { + + private Status status; + private Result result; + private Eval eval; + private Tags tags; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Lang_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Lang_objs.java new file mode 100644 index 0000000..29c7263 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Lang_objs.java @@ -0,0 +1,38 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 语言技能 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Lang_objs implements Serializable { + /** + * 语言名称 + */ + private String language_name; + /** + * 熟练程度 + */ + private String language_level; + /** + * 读写能力 + */ + private String language_read_write; + /** + * 听说能力 + */ + private String language_listen_speak; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Pos_tags.java b/src/main/java/cn/timer/api/dto/resumesdk/Pos_tags.java new file mode 100644 index 0000000..b0cf910 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Pos_tags.java @@ -0,0 +1,24 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Pos_tags implements Serializable { + + private double tag_weight; + private String tag_name; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Pos_types.java b/src/main/java/cn/timer/api/dto/resumesdk/Pos_types.java new file mode 100644 index 0000000..73643de --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Pos_types.java @@ -0,0 +1,24 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Pos_types implements Serializable { + + private double tag_weight; + private String tag_name; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Proj_exp_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Proj_exp_objs.java new file mode 100644 index 0000000..191160e --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Proj_exp_objs.java @@ -0,0 +1,50 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 项目经历 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Proj_exp_objs implements Serializable { + /** + * 开始时间 + */ + private String start_date; + /** + * 结束时间 + */ + private String end_date; + /** + * 项目名称 + */ + private String proj_name; + /** + * 所在公司 + */ + private String proj_cpy; + /** + * 担任职位 + */ + private String proj_position; + /** + * 项目内容 + */ + private String proj_content; + /** + * 项目职责 + */ + private String proj_resp; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Result.java b/src/main/java/cn/timer/api/dto/resumesdk/Result.java new file mode 100644 index 0000000..6d5b79c --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Result.java @@ -0,0 +1,91 @@ +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/ResumeSdkDto.java b/src/main/java/cn/timer/api/dto/resumesdk/ResumeSdkDto.java new file mode 100644 index 0000000..466515e --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/ResumeSdkDto.java @@ -0,0 +1,46 @@ +package cn.timer.api.dto.resumesdk; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 简历相关请求参数,每次一份简历 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ResumeSdkDto implements Serializable { + /** + * 简历文档名称,文件大小不超过10M + */ + private String file_name; + /** + * 简历文档类型,目前支持pdf、doc、docx、wps、txt、jpg、jpeg、png、bmp、tif格式 + */ + private String filetype; + /** + * 必填字段 简历文件内容(以base64编码),其中: + * 1)图片简历:经based64编码后大小建议不超过1M,最短边至少50px,最长边最大4096px, + * 支持jpg/jpeg/png/bmp/tif/gif格式; + * 2)非图片简历:经based64编码后大小不超过10M(注:阿里云接口是不超过8M); + */ + private String file_cont; + /** + * 可选字段 是否需要解析头像,0为不需要,1为需要,默认为0 + */ + private Integer need_avatar; + /** + * 可选字段 ocr(图片解析所用到的文字识别)类型,0为基础版,1为高级版,默认为0。 + * 其中高级版效果更佳,但是收费略有不同,具体请参考报价单; + */ + private Integer ocr_type; +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Skills_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Skills_objs.java new file mode 100644 index 0000000..c4072af --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Skills_objs.java @@ -0,0 +1,36 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 技能列表 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Skills_objs implements Serializable { + + /** + * 熟练程度 + */ + private String skills_level; + /** + * 技能名称 + * 技能名词,比如“java开发”、“市场调研”等 + */ + private String skills_name; + /** + * 技能使用时间 时长 + */ + private String skills_time; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Skills_tags.java b/src/main/java/cn/timer/api/dto/resumesdk/Skills_tags.java new file mode 100644 index 0000000..c7147e4 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Skills_tags.java @@ -0,0 +1,24 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Skills_tags implements Serializable { + + private double tag_weight; + private String tag_name; + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Status.java b/src/main/java/cn/timer/api/dto/resumesdk/Status.java new file mode 100644 index 0000000..5dc2a75 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Status.java @@ -0,0 +1,52 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Status implements Serializable { + /** + * 200 正常状态,表示解析成功 + * 250 账号(uid)或密码(pwd)错误 + * 251 账号剩余用量为0(需及时充值) + * 260 请求参数错误 + * 261 简历内容为空 + * 262 简历内容过长 + * 263 不支持的简历文件格式 + * 264 base64解码出错 + * 265 图片文件过大,或者长宽大小超过限制 + * 266 输入参数file_name缺少文件后缀名(请带上正确的文件后缀,如果是纯文本则为.txt) + * 267 输入的json结构体有误(即解码失败) + * 240 简历解析内部错误 + * 280 人岗匹配内部错误 + */ + private int code; + /** + * 200 正常状态,表示解析成功 + * 250 账号(uid)或密码(pwd)错误 + * 251 账号剩余用量为0(需及时充值) + * 260 请求参数错误 + * 261 简历内容为空 + * 262 简历内容过长 + * 263 不支持的简历文件格式 + * 264 base64解码出错 + * 265 图片文件过大,或者长宽大小超过限制 + * 266 输入参数file_name缺少文件后缀名(请带上正确的文件后缀,如果是纯文本则为.txt) + * 267 输入的json结构体有误(即解码失败) + * 240 简历解析内部错误 + * 280 人岗匹配内部错误 + */ + private String message; +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Tags.java b/src/main/java/cn/timer/api/dto/resumesdk/Tags.java new file mode 100644 index 0000000..ade08db --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Tags.java @@ -0,0 +1,28 @@ +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.List; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Tags implements Serializable { + + private List<Industries> industries; + private List<Pos_types> pos_types; + private List<Pos_tags> pos_tags; + private List<Skills_tags> skills_tags; + + +} diff --git a/src/main/java/cn/timer/api/dto/resumesdk/Training_objs.java b/src/main/java/cn/timer/api/dto/resumesdk/Training_objs.java new file mode 100644 index 0000000..9fb8f47 --- /dev/null +++ b/src/main/java/cn/timer/api/dto/resumesdk/Training_objs.java @@ -0,0 +1,48 @@ +package cn.timer.api.dto.resumesdk; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 培训经历 + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Training_objs implements Serializable { + + /** + * 培训机构 机构名称 + */ + private String train_org; + /** + * 培训内容 + * 内容描述 + */ + private String train_cont; + /** + * 开始时间 比如“2019.09.01”、“2019.09”、“2019” + */ + private String start_date; + /** + * 结束时间 比如“2019.09.01”、“2019.09”、“2019”、“至今” + */ + private String end_date; + /** + * 培训地点 + */ + private String train_loc; + /** + * 所获证书 + */ + private String train_cert; + +} diff --git a/src/main/java/cn/timer/api/utils/resumesdk/ResumeSDKUtil.java b/src/main/java/cn/timer/api/utils/resumesdk/ResumeSDKUtil.java new file mode 100644 index 0000000..100ed93 --- /dev/null +++ b/src/main/java/cn/timer/api/utils/resumesdk/ResumeSDKUtil.java @@ -0,0 +1,37 @@ +package cn.timer.api.utils.resumesdk; + +import cn.timer.api.dto.resumesdk.ResumeSdkDto; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author wuqingjun + * @email 284718418@qq.com + * @date 2022/4/22 + */ +@Component +public class ResumeSDKUtil { + + public ResponseEntity<String> getResumeByCvParser(ResumeSdkDto resumeSdkDto, String appCode){ + String url = "http://resumesdk.market.alicloudapi.com/ResumeParser"; + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + List<String> list = new ArrayList<>(); + list.add("Authorization"); + list.add("APPCODE " + appCode); + list.add("Content-Type"); + list.add("application/json; charset=UTF-8"); + list.add("Content-Type"); + list.add("application/json"); + headers.put("header", list); + HttpEntity requestEntity = new HttpEntity(resumeSdkDto, headers); + return new RestTemplate().exchange(url, HttpMethod.POST,requestEntity, String.class); + } +} diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 1421e73..6cc861c 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -195,6 +195,7 @@ config-8timer: project_package: 8timer2.0/ expirationTime: 3153600000000L expirationTime_pri: 600000L + RESUMESDK_APPCODE: 17e3b67b02ab4bef967025cc4938c072 #ResumeSDK简历解析 AppCode esign: # e签宝 callbackUrl: 'https://test-8timer-pc.youlingrc.com/callback/esign/dev' redirectUrl: 'http://test-8timer-pc.youlingrc.com/#/ElecCon/index' -- libgit2 0.26.0