Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
ea1abbcd
Commit
ea1abbcd
authored
Mar 30, 2022
by
284718418@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
百度简历解析TIC
parent
9d942a37
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
123 additions
and
13 deletions
+123
-13
src/main/java/cn/timer/api/controller/zpgl/ZpglController.java
+16
-6
src/main/java/cn/timer/api/dto/baidu/BasicInfo.java
+53
-0
src/main/java/cn/timer/api/dto/baidu/EducationInfo.java
+13
-2
src/main/java/cn/timer/api/dto/baidu/ElseInfo.java
+9
-2
src/main/java/cn/timer/api/dto/baidu/ProjectInfo.java
+11
-1
src/main/java/cn/timer/api/dto/baidu/ResumeExtract.java
+9
-0
src/main/java/cn/timer/api/dto/baidu/WorkInfo.java
+12
-2
No files found.
src/main/java/cn/timer/api/controller/zpgl/ZpglController.java
View file @
ea1abbcd
...
@@ -23,7 +23,6 @@ import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
...
@@ -23,7 +23,6 @@ import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import
cn.timer.api.dao.yggl.YgglMainEmpMapper
;
import
cn.timer.api.dao.yggl.YgglMainEmpMapper
;
import
cn.timer.api.dao.zpgl.ZpglRcxxMapper
;
import
cn.timer.api.dao.zpgl.ZpglRcxxMapper
;
import
cn.timer.api.dto.baidu.BaiduTicResumeDto
;
import
cn.timer.api.dto.baidu.BaiduTicResumeDto
;
import
cn.timer.api.dto.baidu.BasicInfos
;
import
cn.timer.api.dto.zpgl.ZpglRcxxDto
;
import
cn.timer.api.dto.zpgl.ZpglRcxxDto
;
import
cn.timer.api.dto.zpgl.ZpglRcxxEntryDto
;
import
cn.timer.api.dto.zpgl.ZpglRcxxEntryDto
;
import
cn.timer.api.utils.Md5
;
import
cn.timer.api.utils.Md5
;
...
@@ -57,7 +56,6 @@ import org.springframework.validation.annotation.Validated;
...
@@ -57,7 +56,6 @@ import org.springframework.validation.annotation.Validated;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
sun.misc.BASE64Encoder
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.transaction.Transactional
;
import
javax.transaction.Transactional
;
...
@@ -440,15 +438,27 @@ public class ZpglController {
...
@@ -440,15 +438,27 @@ public class ZpglController {
public
Result
<
Object
>
resumeImportCandidate
(
@CurrentUser
UserBean
userBean
,
@RequestParam
(
required
=
true
)
MultipartFile
file
,
public
Result
<
Object
>
resumeImportCandidate
(
@CurrentUser
UserBean
userBean
,
@RequestParam
(
required
=
true
)
MultipartFile
file
,
HttpServletRequest
request
)
{
HttpServletRequest
request
)
{
try
{
try
{
BaiduTicResumeDto
baiduTicResumeDto
=
BaiduTicResumeDto
.
builder
().
filename
(
"邓志鸿.docx"
).
filetype
(
"docx"
).
filedata
(
Base64
.
getStrFromPath
(
file
)).
build
();
// 获取文件 文档类型,目前支持pdf,doc,docx,wps,txt,jpg,jpeg,png,bmp,tif格式
String
suffix
=
file
.
getOriginalFilename
().
substring
(
file
.
getOriginalFilename
().
lastIndexOf
(
"."
)+
1
);
if
(
StringUtils
.
isEmpty
(
suffix
)){
return
ResultUtil
.
error
(
"导入简历失败,请检查是否为简历文件~"
);
}
if
(
"pdf,doc,docx,wps,txt,jpg,jpeg,png,bmp,tif"
.
indexOf
(
suffix
)
==
-
1
){
return
ResultUtil
.
error
(
"导入简历失败,目前支持pdf,doc,docx,wps,txt,jpg,jpeg,png,bmp,tif格式~"
);
}
BaiduTicResumeDto
baiduTicResumeDto
=
BaiduTicResumeDto
.
builder
().
filename
(
file
.
getOriginalFilename
()).
filetype
(
suffix
).
filedata
(
Base64
.
getStrFromPath
(
file
)).
build
();
ResponseEntity
<
String
>
resumeString
=
baiduTicUtil
.
getResumeByCvParser
(
baiduTicResumeDto
);
ResponseEntity
<
String
>
resumeString
=
baiduTicUtil
.
getResumeByCvParser
(
baiduTicResumeDto
);
log
.
info
(
"resumeString:{}"
,
resumeString
.
getBody
());
JSONObject
json
=
(
JSONObject
)
JSONObject
.
parse
(
resumeString
.
getBody
());
JSONObject
json
=
(
JSONObject
)
JSONObject
.
parse
(
resumeString
.
getBody
());
log
.
info
(
"招聘-导入候选人简历{}"
,
resumeString
.
getBody
());
if
(
"success"
.
equals
(
json
.
get
(
"error_msg"
))){
if
(
"success"
.
equals
(
json
.
get
(
"error_msg"
))){
BasicInfos
asicInfos
=
JSONObject
.
toJavaObject
(
JSONObject
.
parse
(
json
.
get
(
"results"
).
toString
()),
BasicInfos
.
class
);
if
(
"results"
.
equals
(
json
.
get
(
"results"
))){
ResumeExtract
resumeExtract
=
JSONObject
.
toJavaObject
(
JSONObject
.
parse
(
json
.
get
(
"results"
).
toString
()),
ResumeExtract
.
class
);
}
else
{
return
ResultUtil
.
error
(
"导入简历失败,请检查是否为简历文件~"
);
}
}
else
{
}
else
{
return
ResultUtil
.
error
(
"
操作失败
"
);
return
ResultUtil
.
error
(
"
导入简历失败,请检查是否为简历文件~
"
);
}
}
...
...
src/main/java/cn/timer/api/dto/baidu/BasicInfo.java
0 → 100644
View file @
ea1abbcd
package
cn
.
timer
.
api
.
dto
.
baidu
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* 基本信息
*
* @author wuqingjun
* @email 284718418@qq.com
* @date 2022/3/30
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
BasicInfo
implements
Serializable
{
private
String
name
;
// 姓名:中文姓名
private
String
gender
;
// 性别:男/女
private
String
age
;
// 年龄:当前年龄,整数
private
String
cur_duration
;
// 工作年限:当前工作年限,整数,多段工作年限会累加并向下取整
private
String
highest_degree
;
// 学历:最高学历(包括在读),格式统一为博士/硕士/学士
private
String
work_begin_year
;
// 开始工作年限:第一份工作的开始年份,四位数年份,如2013
private
String
id_number
;
// 身份证号:中国居民身份证号码,纯数字
private
String
birth_date
;
// 生日:出生日期,格式化为 年-月,如2000-01,若只有年,则只显示年,如2000
private
String
nation
;
// 民族:中国56个民族, 如 汉族,壮族
private
String
location
;
// 所在地:所在地城市或区域,如 深圳市,深圳市南山区
private
String
home_location
;
// 详细地址:具体家庭居住地,如 深圳市南山区华联花园6栋2-224
private
String
cur_company
;
// 当前公司
private
String
cur_job
;
// 当前职位
private
String
school
;
// 毕业学校:最高学历学校
private
String
major
;
// 专业:最高学历对应的专业
private
String
job_intention
;
// 求职意向
private
String
cur_package
;
// 当前薪水:当前工资或当前工资范围,如10-20万人民币等,以简历为准
private
String
desire_package
;
// 期望薪水:期望工资或期望工资范围,如20k-30k等,以简历为准
private
String
industry
;
// 所属行业:最新工作的所属行业
private
String
job_status
;
// 求职状态:在职/正在找工作(在职)/考虑好的职业机会(在职)/已离职/暂不考虑其他机会/应届生,输出为原文
private
String
politic
;
// 政治面貌:党员/团员/群众,输出为原文
private
String
marriage
;
// 婚姻状况:未婚/已婚,输出为原文
private
String
birth_place
;
// 籍贯:籍贯地区,如 广东汕头,上海,江苏南通。以简历描述为准,输出为原文
private
String
desire_loc
;
// 期望工作地区:期望工作城市或区域,多个地区则以英文逗号分隔,如 北京,上海,广州,深圳,输出为原文
private
String
phone_numbers
;
// 联系方式:国内11位手机号,格式化为纯数字
private
String
email_address
;
// 邮箱:合格邮箱地址
private
String
landline
;
// 固定电话:国内8位座机号
private
String
qq
;
// QQ号:QQ号码
private
String
wechat
;
// 微信号:微信账号
}
src/main/java/cn/timer/api/dto/baidu/
WorkInfos
.java
→
src/main/java/cn/timer/api/dto/baidu/
EducationInfo
.java
View file @
ea1abbcd
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 教育信息
*
* @author wuqingjun
* @author wuqingjun
* @email 284718418@qq.com
* @email 284718418@qq.com
* @date 2022/3/30
* @date 2022/3/30
...
@@ -16,6 +18,15 @@ import java.io.Serializable;
...
@@ -16,6 +18,15 @@ import java.io.Serializable;
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
WorkInfos
implements
Serializable
{
public
class
EducationInfo
implements
Serializable
{
private
String
school
;
// 学校
private
String
college
;
// 学院
private
String
major
;
// 专业
private
String
schooling_record
;
// 学历,输出统一为:博士研究生/硕士研究生/本科/专科/高中/中专/初中
private
String
degree
;
// 学位,输出统一为:博士/硕士/学士
private
String
start_time
;
// 开始年份-月份,若只有年则只输出年。如2019-10或2019
private
String
end_time
;
// 结束年份-月份,若只有年则只输出年。如2019-10或2019
private
String
is_in
;
// 是否仍在校:1表示在,0表示不在
private
String
gpa
;
// Gpa
private
String
rank
;
// 排名
}
}
src/main/java/cn/timer/api/dto/baidu/
BasicInfos
.java
→
src/main/java/cn/timer/api/dto/baidu/
ElseInfo
.java
View file @
ea1abbcd
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 其他信息
*
* @author wuqingjun
* @author wuqingjun
* @email 284718418@qq.com
* @email 284718418@qq.com
* @date 2022/3/30
* @date 2022/3/30
...
@@ -16,6 +18,11 @@ import java.io.Serializable;
...
@@ -16,6 +18,11 @@ import java.io.Serializable;
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
BasicInfos
implements
Serializable
{
public
class
ElseInfo
implements
Serializable
{
private
String
self_evaluation
;
// 个人评价
private
String
skills
;
// 技能:掌握技能列表,用竖线分隔
private
String
honor
;
// 所获奖项:用竖线分隔
private
String
lang
;
// 外语:掌握外语水平,用竖线分隔
private
String
lang_level
;
// 外语水平,格式为 语言-水平:分数,如 英语-CET4:502,英语-雅思:6.5,用竖线分隔
private
String
certificate
;
// 获得证书,用竖线分隔
}
}
src/main/java/cn/timer/api/dto/baidu/
EducationInfos
.java
→
src/main/java/cn/timer/api/dto/baidu/
ProjectInfo
.java
View file @
ea1abbcd
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 项目信息
*
* @author wuqingjun
* @author wuqingjun
* @email 284718418@qq.com
* @email 284718418@qq.com
* @date 2022/3/30
* @date 2022/3/30
...
@@ -16,5 +18,13 @@ import java.io.Serializable;
...
@@ -16,5 +18,13 @@ import java.io.Serializable;
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
EducationInfos
implements
Serializable
{
public
class
ProjectInfo
implements
Serializable
{
private
String
project_name
;
// 项目名称
private
String
job
;
// 项目角色:职位名称/职位名
private
String
describe
;
// 工作描述:项目详情介绍
private
String
duty
;
// 个人在该项目负责的具体工作详情
private
String
location
;
// 项目地点城市或区域
private
String
start_time
;
// 开始年份-月份,若只有年则只输出年。如2019-10或2019
private
String
end_time
;
// 结束年份-月份,若只有年则只输出年。如2019-10或2019
private
String
is_in
;
// 是否仍在:1表示在,0表示不在
}
}
src/main/java/cn/timer/api/dto/baidu/ResumeExtract.java
View file @
ea1abbcd
...
@@ -6,8 +6,11 @@ import lombok.Data;
...
@@ -6,8 +6,11 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
/**
/**
* 简历摘录
*
* @author wuqingjun
* @author wuqingjun
* @email 284718418@qq.com
* @email 284718418@qq.com
* @date 2022/3/30
* @date 2022/3/30
...
@@ -18,4 +21,10 @@ import java.io.Serializable;
...
@@ -18,4 +21,10 @@ import java.io.Serializable;
@AllArgsConstructor
@AllArgsConstructor
public
class
ResumeExtract
implements
Serializable
{
public
class
ResumeExtract
implements
Serializable
{
private
BasicInfo
basic_infos
;
private
List
<
EducationInfo
>
education_infos
;
private
ElseInfo
else_infos
;
private
List
<
ProjectInfo
>
project_infos
;
private
List
<
WorkInfo
>
work_infos
;
}
}
src/main/java/cn/timer/api/dto/baidu/
ProjectInfos
.java
→
src/main/java/cn/timer/api/dto/baidu/
WorkInfo
.java
View file @
ea1abbcd
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
...
@@ -8,6 +8,8 @@ import lombok.NoArgsConstructor;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
* 工作信息
*
* @author wuqingjun
* @author wuqingjun
* @email 284718418@qq.com
* @email 284718418@qq.com
* @date 2022/3/30
* @date 2022/3/30
...
@@ -16,6 +18,14 @@ import java.io.Serializable;
...
@@ -16,6 +18,14 @@ import java.io.Serializable;
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
public
class
ProjectInfos
implements
Serializable
{
public
class
WorkInfo
implements
Serializable
{
private
String
company
;
// 公司名称
private
String
department
;
// 部门名称/所在部门
private
String
location
;
// 工作城市/工作地点
private
String
job
;
// 职位名称
private
String
package
;
// 该岗位工资水平,如,3000-5000元/月,输出为原文
private
String
start_time
;
// 开始年份-月份,若只有年则只输出年。如2019-10或2019
private
String
end_time
;
// 结束年份-月份,若只有年则只输出年。如2019-10或2019
private
String
is_in
;
// 是否仍在:1表示在,0表示不在
private
String
describe
;
// 工作内容
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment