Ver Fonte

1、优化简历解析

rayson há 7 meses atrás
pai
commit
0bff03164c
15 ficheiros alterados com 467 adições e 1178 exclusões
  1. 10 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSeekStatusEnum.java
  2. 9 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobTypeEnum.java
  3. 9 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/person/PersonSexEnum.java
  4. 2 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailExtendRespVO.java
  5. 204 1121
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/resume/resumesdk/TemResumeContent.java
  6. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/TalentMapDetailRespVO.java
  7. 21 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoPageReqVO.java
  8. 28 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoRespVO.java
  9. 21 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoSaveReqVO.java
  10. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpPageReqVO.java
  11. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpRespVO.java
  12. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpSaveReqVO.java
  13. 31 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/talent/TalentMapInfoDO.java
  14. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/talent/TalentMapWorkExpDO.java
  15. 124 50
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/resume/OnlineResumeServiceImpl.java

+ 10 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSeekStatusEnum.java

@@ -1,5 +1,6 @@
 package com.citu.module.menduner.system.enums.job;
 
+import com.citu.module.menduner.system.enums.person.PersonSexEnum;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -22,4 +23,13 @@ public enum JobSeekStatusEnum {
      * 状态名
      */
     private final String name;
+
+    public static JobSeekStatusEnum getEnumByName(String name) {
+        for (JobSeekStatusEnum statusEnum : JobSeekStatusEnum.values()) {
+            if (statusEnum.getName().equals(name)) {
+                return statusEnum;
+            }
+        }
+        return NOT_CONSIDER;
+    }
 }

+ 9 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobTypeEnum.java

@@ -26,4 +26,13 @@ public enum JobTypeEnum {
      */
     private final String name;
 
+    public static JobTypeEnum getEnumByName(String name) {
+        for (JobTypeEnum statusEnum : JobTypeEnum.values()) {
+            if (statusEnum.getName().equals(name)) {
+                return statusEnum;
+            }
+        }
+        return FULL_TIME;
+    }
+
 }

+ 9 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/person/PersonSexEnum.java

@@ -14,4 +14,13 @@ public enum PersonSexEnum {
     FEMALE("2", "女");
     private final String type;
     private final String name;
+
+    public static PersonSexEnum getEnumByName(String name) {
+        for (PersonSexEnum sexEnum : PersonSexEnum.values()) {
+            if (sexEnum.getName().equals(name)) {
+                return sexEnum;
+            }
+        }
+        return UNKNOWN;
+    }
 }

+ 2 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/person/info/PersonDetailExtendRespVO.java

@@ -3,12 +3,13 @@ package com.citu.module.menduner.system.controller.base.person.info;
 
 import com.citu.module.menduner.system.controller.base.resume.resumesdk.TemResumeContent;
 import com.citu.module.menduner.system.controller.base.resume.resumesdk.TemResumeResVo;
+import com.citu.module.menduner.system.controller.base.talent.TalentMapDetailRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 @Schema(description = "menduner - 人才详情扩展信息 Response VO")
 @Data
-public class PersonDetailExtendRespVO extends PersonDetailRespVO {
+public class PersonDetailExtendRespVO extends TalentMapDetailRespVO {
 
     @Schema(description = "解析的简历信息")
     private TemResumeContent resume;

+ 204 - 1121
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/resume/resumesdk/TemResumeContent.java

@@ -1,25 +1,27 @@
 package com.citu.module.menduner.system.controller.base.resume.resumesdk;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
 
 import java.util.List;
 
+@Data
 public class TemResumeContent {
 
     /**
      * 姓名	string	人名,比如“姚明”
      */
-   private String  name;
+    private String name;
 
     /**
-     * 	姓氏	string	姓氏,比如“姚”
+     * 姓氏	string	姓氏,比如“姚”
      */
     private String surname;
 
     /**
      * 性别	string	男、女、male、female
      */
-    private String  gender;
+    private String gender;
 
     /**
      * 性别(推断)	string	男、女。如简历中无性别,则根据简历信息建模推断出性别,约9成多的准确率。
@@ -30,21 +32,21 @@ public class TemResumeContent {
     /**
      * 年龄	string	年龄,比如“25”
      */
-    private Integer   age;
+    private Integer age;
 
     /**
      * 年龄(推断)	string	如简历中无年龄,则从简历信息推断出该字段,有一定的误差率。
      */
     @JSONField(name = "age_inf")
-    private Integer    age_inf;
+    private Integer age_inf;
 
     /**
-     * 	身高	string	180cm
+     * 身高	string	180cm
      */
     private String height;
 
     /**
-     * 	体重	string	75kg
+     * 体重	string	75kg
      */
     private String weight;
 
@@ -52,7 +54,7 @@ public class TemResumeContent {
      * 婚姻状态	string	已婚、未婚、已结婚、未结婚、已婚已育、未婚未育、保密等
      */
     @JSONField(name = "marital_status")
-    private String  maritalStatus;
+    private String maritalStatus;
 
     /**
      * 出生日期	string	比如:2019.10.01或者2019.10
@@ -60,22 +62,22 @@ public class TemResumeContent {
     private String birthday;
 
     /**
-     * 	户口地址	string	用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
+     * 户口地址	string	用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
      */
     @JSONField(name = "hukou_address")
-    private String  hukouAddress;
+    private String hukouAddress;
 
     /**
-     * 	户口地址(规范化)	string	规范化到“区县”一级,比如“中国-上海市-虹口区”
+     * 户口地址(规范化)	string	规范化到“区县”一级,比如“中国-上海市-虹口区”
      */
     @JSONField(name = "hukou_address_norm")
-    private String   hukouAddressNorm;
+    private String hukouAddressNorm;
 
     /**
      * 籍贯地址	string	用户填写的地址,比如“上海市虹口区广粤路xx弄x号xxx室”
      */
     @JSONField(name = "hometown_address")
-    private String   hometownAddress;
+    private String hometownAddress;
     /**
      * 籍贯地址(规范化)
      * 规范化到“区县”一级,比如“中国-上海市-虹口区”
@@ -448,7 +450,6 @@ public class TemResumeContent {
 //    期望工作作为result结构体下的一级字段存在。包含的字段如下:
 
 
-
     /**
      * 期望工作
      * 职位名称
@@ -592,1171 +593,253 @@ public class TemResumeContent {
     private String resumeIntegrity;
 
 
-
 //             3.1.5 基本信息—头像信息
 //    头像信息作为result结构体下的一级字段存在。包含的字段如下(注:两个字段最多只有1个有结果):
 
-        /**
-         * 个人头像图片url
-         * 以url形式存在的个人头像,比如有些html简历,头像就是一个url链接。
-         */
-        @JSONField(name = "avatar_url")
-        private String avatarUrl;
-
-        /**
-         * 个人头像图片数据
-         * 以图片形式嵌入在简历中的个人头像,解析后的结果为:“data:image/#ext;base64, #data”,
-         * 其中#ext为图片格式,#data为经base64编码的实际图片数据。
-         * 注:如果要转成图片文件,则用Base64对#data进行decode,然后存成#ext格式的图片。
-         */
-        @JSONField(name = "avatar_data")
-        private String avatarData;
+    /**
+     * 个人头像图片url
+     * 以url形式存在的个人头像,比如有些html简历,头像就是一个url链接。
+     */
+    @JSONField(name = "avatar_url")
+    private String avatarUrl;
+
+    /**
+     * 个人头像图片数据
+     * 以图片形式嵌入在简历中的个人头像,解析后的结果为:“data:image/#ext;base64, #data”,
+     * 其中#ext为图片格式,#data为经base64编码的实际图片数据。
+     * 注:如果要转成图片文件,则用Base64对#data进行decode,然后存成#ext格式的图片。
+     */
+    @JSONField(name = "avatar_data")
+    private String avatarData;
 
 //            3.1.6 基本信息—文本内容
 //    文本内容作为result结构体下的一级字段存在。包含的字段如下:
 
 
-        /**
-         * 基本信息文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_basic_info")
-        private String contBasicInfo;
-
-        /**
-         * 期望工作文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_expect_job")
-        private String contExpectJob;
-
-        /**
-         * 教育经历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_education")
-        private String contEducation;
-
-        /**
-         * 工作经历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_job_exp")
-        private String contJobExp;
-
-        /**
-         * 项目经历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_proj_exp")
-        private String contProjExp;
-
-        /**
-         * 实习经历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_internship")
-        private String contInternship;
-
-        /**
-         * 社会实践文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_social_exp")
-        private String contSocialExp;
-
-        /**
-         * 在校活动文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_campus_exp")
-        private String contCampusExp;
-
-        /**
-         * 个人技能文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_job_skill")
-        private String contJobSkill;
-
-        /**
-         * 自我评价文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_my_desc")
-        private String contMyDesc;
-
-        /**
-         * 兴趣爱好文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_hobby")
-        private String contHobby;
-
-        /**
-         * 语言技能文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_language")
-        private String contLanguage;
-
-        /**
-         * 所获证书文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_certificate")
-        private String contCertificate;
-
-        /**
-         * 所获奖励文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_award")
-        private String contAward;
-
-        /**
-         * 培训经历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_training")
-        private String contTraining;
-
-        /**
-         * 所学课程文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_course")
-        private String contCourse;
-
-        /**
-         * 科研实践文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_research")
-        private String contResearch;
-
-        /**
-         * 论文著作文本内容
-         * 文本内容(20240408新增)
-         */
-        @JSONField(name = "cont_publications")
-        private String contPublications;
-
-        /**
-         * 个人作品文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_my_project")
-        private String contMyProject;
-
-        /**
-         * 求职信文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_cover_letter")
-        private String contCoverLetter;
-
-        /**
-         * 附加信息文本内容
-         * 文本内容
-         */
-        @JSONField(name = "cont_extra_info")
-        private String contExtraInfo;
-
-        /**
-         * 原始简历文本内容
-         * 文本内容
-         */
-        @JSONField(name = "raw_text")
-        private String rawText;
-
-
-
     /**
-     * 3.2 教育经历
-     *     教育经历存放于result结构体下的一级字段education_objs中,每一段教育经历包含的字段如下:
+     * 基本信息文本内容
+     * 文本内容
      */
-    @JSONField(name = "education_objs")
-    private List<TemResumeEduVo> educationObjs;
+    @JSONField(name = "cont_basic_info")
+    private String contBasicInfo;
 
     /**
-     * 3.3 工作经历及实习经历
-     *     工作经历及实习经历存放于result结构体下的一级字段job_exp_objs中,其中实习经历通过job_nature="实习"进行标识。
-     *     每一段工作经历包含的字段如下:
+     * 期望工作文本内容
+     * 文本内容
      */
-    @JSONField(name = "job_exp_objs")
-    private List<TemResumeWorkVo> jobExpObjs;
-
-
-
-
-  /**
-   *  3.4 社会及学校实践经历
-   *     社会及学校实践经历存放于result结构体下的一级字段social_exp_objs中(若要解析实践经历,需要在请求接口中增加参数need_social_exp=1)。
-   *     每一段实践经历包含的字段和工作经历的字段信息相同,具体字段如下:
-   */
-   @JSONField(name = "social_exp_objs")
-   private List<TemResumePracticeVo> socialExpObjs;
-
+    @JSONField(name = "cont_expect_job")
+    private String contExpectJob;
 
     /**
-     * 3.5 项目经历
-     *    项目经历存放于result结构体下的一级字段proj_exp_objs中,每一段项目经历包含的字段如下:
+     * 教育经历文本内容
+     * 文本内容
      */
-    @JSONField(name = "proj_exp_objs")
-    private List<TemResumetProjectVo> projExpObjs;
-
-
-
+    @JSONField(name = "cont_education")
+    private String contEducation;
 
     /**
-     * 3.6 培训经历
-     *     培训经历存放于result结构体下的一级字段training_objs中,每一段培训经历包含的字段如下:
+     * 工作经历文本内容
+     * 文本内容
      */
-    @JSONField(name = "training_objs")
-    private List<TemResumetTrainingVo> trainingObjs;
-
-
+    @JSONField(name = "cont_job_exp")
+    private String contJobExp;
 
     /**
-     * 3.7 技能列表
-     *    技能列表存放于result结构体下的一级字段skills_objs中,每一个技能包含的字段如下:
+     * 项目经历文本内容
+     * 文本内容
      */
-    @JSONField(name = "skills_objs")
-    private List<TemResumeSkillsVo> skillsObjs;
-
-
+    @JSONField(name = "cont_proj_exp")
+    private String contProjExp;
 
     /**
-     * 3.8 语言技能
-     *     语言技能存放于result结构体下的一级字段lang_objs中,每一个语言技能包含的字段如下:
+     * 实习经历文本内容
+     * 文本内容
      */
-    @JSONField(name = "lang_objs")
-    private List<TemResumeLanguageVo>  langObjs;
+    @JSONField(name = "cont_internship")
+    private String contInternship;
 
     /**
-     * 3.9 语言证书列表
-     *     语言证书列表存放于result结构体下的一级字段cert_objs中,每一个语言证书包含的字段如下:
+     * 社会实践文本内容
+     * 文本内容
      */
-   @JSONField(name = "cert_objs")
-   private List<TemResumeCertInfoVo> certObjs;
+    @JSONField(name = "cont_social_exp")
+    private String contSocialExp;
 
-    /** 3.10  所有证书及奖项
-     *      所有证书及奖项(包括语言证书、职业证书、奖项名称等)
-     *    存放于result结构体下的一级字段all_cert_objs中,每一个证书包含的字段如下:
+    /**
+     * 在校活动文本内容
+     * 文本内容
      */
-    @JSONField(name = "all_cert_objs")
-    private List<TemResumeCertVo> allCertObjs;
-
- public String getName() {
-  return name;
- }
-
- public void setName(String name) {
-  this.name = name;
- }
-
- public String getSurname() {
-  return surname;
- }
-
- public void setSurname(String surname) {
-  this.surname = surname;
- }
-
- public String getGender() {
-  return gender;
- }
-
- public void setGender(String gender) {
-  this.gender = gender;
- }
-
- public String getGenderInf() {
-  return genderInf;
- }
-
- public void setGenderInf(String genderInf) {
-  this.genderInf = genderInf;
- }
-
- public Integer getAge() {
-  return age;
- }
-
- public void setAge(Integer age) {
-  this.age = age;
- }
-
- public Integer getAge_inf() {
-  return age_inf;
- }
-
- public void setAge_inf(Integer age_inf) {
-  this.age_inf = age_inf;
- }
-
- public String getHeight() {
-  return height;
- }
-
- public void setHeight(String height) {
-  this.height = height;
- }
-
- public String getWeight() {
-  return weight;
- }
-
- public void setWeight(String weight) {
-  this.weight = weight;
- }
-
- public String getMaritalStatus() {
-  return maritalStatus;
- }
-
- public void setMaritalStatus(String maritalStatus) {
-  this.maritalStatus = maritalStatus;
- }
-
- public String getBirthday() {
-  return birthday;
- }
-
- public void setBirthday(String birthday) {
-  this.birthday = birthday;
- }
-
- public String getHukouAddress() {
-  return hukouAddress;
- }
-
- public void setHukouAddress(String hukouAddress) {
-  this.hukouAddress = hukouAddress;
- }
-
- public String getHukouAddressNorm() {
-  return hukouAddressNorm;
- }
-
- public void setHukouAddressNorm(String hukouAddressNorm) {
-  this.hukouAddressNorm = hukouAddressNorm;
- }
-
- public String getHometownAddress() {
-  return hometownAddress;
- }
-
- public void setHometownAddress(String hometownAddress) {
-  this.hometownAddress = hometownAddress;
- }
-
- public String getHometownAddressNorm() {
-  return hometownAddressNorm;
- }
-
- public void setHometownAddressNorm(String hometownAddressNorm) {
-  this.hometownAddressNorm = hometownAddressNorm;
- }
-
- public String getIdCard() {
-  return idCard;
- }
-
- public void setIdCard(String idCard) {
-  this.idCard = idCard;
- }
-
- public String getRace() {
-  return race;
- }
-
- public void setRace(String race) {
-  this.race = race;
- }
-
- public String getNationality() {
-  return nationality;
- }
-
- public void setNationality(String nationality) {
-  this.nationality = nationality;
- }
-
- public String getPolitStatus() {
-  return politStatus;
- }
-
- public void setPolitStatus(String politStatus) {
-  this.politStatus = politStatus;
- }
-
- public String getBloodType() {
-  return bloodType;
- }
-
- public void setBloodType(String bloodType) {
-  this.bloodType = bloodType;
- }
-
- public String getStarSign() {
-  return starSign;
- }
-
- public void setStarSign(String starSign) {
-  this.starSign = starSign;
- }
-
- public String getLanguages() {
-  return languages;
- }
-
- public void setLanguages(String languages) {
-  this.languages = languages;
- }
-
- public String getEnglishLevel() {
-  return englishLevel;
- }
-
- public void setEnglishLevel(String englishLevel) {
-  this.englishLevel = englishLevel;
- }
-
- public String getComputerLevel() {
-  return computerLevel;
- }
-
- public void setComputerLevel(String computerLevel) {
-  this.computerLevel = computerLevel;
- }
-
- public String getBlog() {
-  return blog;
- }
-
- public void setBlog(String blog) {
-  this.blog = blog;
- }
-
- public String getApplyJob() {
-  return applyJob;
- }
-
- public void setApplyJob(String applyJob) {
-  this.applyJob = applyJob;
- }
-
- public String getApplyCpy() {
-  return applyCpy;
- }
-
- public void setApplyCpy(String applyCpy) {
-  this.applyCpy = applyCpy;
- }
-
- public String getWorkYear() {
-  return workYear;
- }
-
- public void setWorkYear(String workYear) {
-  this.workYear = workYear;
- }
-
- public String getWorkYearNorm() {
-  return workYearNorm;
- }
-
- public void setWorkYearNorm(String workYearNorm) {
-  this.workYearNorm = workYearNorm;
- }
-
- public String getWorkYearInf() {
-  return workYearInf;
- }
-
- public void setWorkYearInf(String workYearInf) {
-  this.workYearInf = workYearInf;
- }
-
- public String getWorkStartTime() {
-  return workStartTime;
- }
-
- public void setWorkStartTime(String workStartTime) {
-  this.workStartTime = workStartTime;
- }
-
- public String getWorkStartTimeInf() {
-  return workStartTimeInf;
- }
-
- public void setWorkStartTimeInf(String workStartTimeInf) {
-  this.workStartTimeInf = workStartTimeInf;
- }
-
- public String getWorkPosition() {
-  return workPosition;
- }
-
- public void setWorkPosition(String workPosition) {
-  this.workPosition = workPosition;
- }
-
- public String getWorkPosTypeP() {
-  return workPosTypeP;
- }
-
- public void setWorkPosTypeP(String workPosTypeP) {
-  this.workPosTypeP = workPosTypeP;
- }
-
- public String getWorkCompany() {
-  return workCompany;
- }
-
- public void setWorkCompany(String workCompany) {
-  this.workCompany = workCompany;
- }
-
- public String getWorkIndustry() {
-  return workIndustry;
- }
-
- public void setWorkIndustry(String workIndustry) {
-  this.workIndustry = workIndustry;
- }
-
- public String getWorkStatus() {
-  return workStatus;
- }
-
- public void setWorkStatus(String workStatus) {
-  this.workStatus = workStatus;
- }
-
- public String getWorkSalary() {
-  return workSalary;
- }
-
- public void setWorkSalary(String workSalary) {
-  this.workSalary = workSalary;
- }
-
- public String getWorkSalaryMin() {
-  return workSalaryMin;
- }
-
- public void setWorkSalaryMin(String workSalaryMin) {
-  this.workSalaryMin = workSalaryMin;
- }
-
- public String getWorkSalaryMax() {
-  return workSalaryMax;
- }
-
- public void setWorkSalaryMax(String workSalaryMax) {
-  this.workSalaryMax = workSalaryMax;
- }
-
- public String getWorkLocation() {
-  return workLocation;
- }
-
- public void setWorkLocation(String workLocation) {
-  this.workLocation = workLocation;
- }
-
- public String getWorkLocationNorm() {
-  return workLocationNorm;
- }
-
- public void setWorkLocationNorm(String workLocationNorm) {
-  this.workLocationNorm = workLocationNorm;
- }
-
- public String getWorkJobNature() {
-  return workJobNature;
- }
-
- public void setWorkJobNature(String workJobNature) {
-  this.workJobNature = workJobNature;
- }
-
- public String getHasOverseaEdu() {
-  return hasOverseaEdu;
- }
-
- public void setHasOverseaEdu(String hasOverseaEdu) {
-  this.hasOverseaEdu = hasOverseaEdu;
- }
-
- public String getHasOverseaExp() {
-  return hasOverseaExp;
- }
-
- public void setHasOverseaExp(String hasOverseaExp) {
-  this.hasOverseaExp = hasOverseaExp;
- }
-
- public String getGradTime() {
-  return gradTime;
- }
-
- public void setGradTime(String gradTime) {
-  this.gradTime = gradTime;
- }
-
- public String getCollege() {
-  return college;
- }
-
- public void setCollege(String college) {
-  this.college = college;
- }
-
- public String getCollegeType() {
-  return collegeType;
- }
-
- public void setCollegeType(String collegeType) {
-  this.collegeType = collegeType;
- }
-
- public String getCollegeRank() {
-  return collegeRank;
- }
-
- public void setCollegeRank(String collegeRank) {
-  this.collegeRank = collegeRank;
- }
-
- public String getCollegeDept() {
-  return collegeDept;
- }
-
- public void setCollegeDept(String collegeDept) {
-  this.collegeDept = collegeDept;
- }
-
- public String getMajor() {
-  return major;
- }
-
- public void setMajor(String major) {
-  this.major = major;
- }
-
- public String getDegree() {
-  return degree;
- }
-
- public void setDegree(String degree) {
-  this.degree = degree;
- }
-
- public String getRecruit() {
-  return recruit;
- }
-
- public void setRecruit(String recruit) {
-  this.recruit = recruit;
- }
-
- public String getEmail() {
-  return email;
- }
-
- public void setEmail(String email) {
-  this.email = email;
- }
-
- public String getPhone() {
-  return phone;
- }
-
- public void setPhone(String phone) {
-  this.phone = phone;
- }
-
- public String getVirtualPhone() {
-  return virtualPhone;
- }
-
- public void setVirtualPhone(String virtualPhone) {
-  this.virtualPhone = virtualPhone;
- }
-
- public String getVirtualPhoneTime() {
-  return virtualPhoneTime;
- }
+    @JSONField(name = "cont_campus_exp")
+    private String contCampusExp;
 
- public void setVirtualPhoneTime(String virtualPhoneTime) {
-  this.virtualPhoneTime = virtualPhoneTime;
- }
-
- public String getQq() {
-  return qq;
- }
-
- public void setQq(String qq) {
-  this.qq = qq;
- }
-
- public String getWeixin() {
-  return weixin;
- }
-
- public void setWeixin(String weixin) {
-  this.weixin = weixin;
- }
-
- public String getPostalCode() {
-  return postalCode;
- }
-
- public void setPostalCode(String postalCode) {
-  this.postalCode = postalCode;
- }
-
- public String getCity() {
-  return city;
- }
-
- public void setCity(String city) {
-  this.city = city;
- }
-
- public String getCityNorm() {
-  return cityNorm;
- }
-
- public void setCityNorm(String cityNorm) {
-  this.cityNorm = cityNorm;
- }
-
- public String getLivingAddress() {
-  return livingAddress;
- }
-
- public void setLivingAddress(String livingAddress) {
-  this.livingAddress = livingAddress;
- }
-
- public String getLivingAddressNorm() {
-  return livingAddressNorm;
- }
-
- public void setLivingAddressNorm(String livingAddressNorm) {
-  this.livingAddressNorm = livingAddressNorm;
- }
-
- public String getExpectJob() {
-  return expectJob;
- }
-
- public void setExpectJob(String expectJob) {
-  this.expectJob = expectJob;
- }
-
- public String getExpectCpy() {
-  return expectCpy;
- }
-
- public void setExpectCpy(String expectCpy) {
-  this.expectCpy = expectCpy;
- }
-
- public String getExpectSalary() {
-  return expectSalary;
- }
-
- public void setExpectSalary(String expectSalary) {
-  this.expectSalary = expectSalary;
- }
-
- public String getExpectSalaryMin() {
-  return expectSalaryMin;
- }
-
- public void setExpectSalaryMin(String expectSalaryMin) {
-  this.expectSalaryMin = expectSalaryMin;
- }
-
- public String getExpectSalaryMax() {
-  return expectSalaryMax;
- }
-
- public void setExpectSalaryMax(String expectSalaryMax) {
-  this.expectSalaryMax = expectSalaryMax;
- }
-
- public String getExpectIndustry() {
-  return expectIndustry;
- }
-
- public void setExpectIndustry(String expectIndustry) {
-  this.expectIndustry = expectIndustry;
- }
-
- public String getExpectTime() {
-  return expectTime;
- }
-
- public void setExpectTime(String expectTime) {
-  this.expectTime = expectTime;
- }
-
- public String getExpectJNature() {
-  return expectJNature;
- }
-
- public void setExpectJNature(String expectJNature) {
-  this.expectJNature = expectJNature;
- }
-
- public String getExpectJStatus() {
-  return expectJStatus;
- }
-
- public void setExpectJStatus(String expectJStatus) {
-  this.expectJStatus = expectJStatus;
- }
-
- public String getExpectJLocation() {
-  return expectJLocation;
- }
-
- public void setExpectJLocation(String expectJLocation) {
-  this.expectJLocation = expectJLocation;
- }
-
- public String getExpectJLocationNorm() {
-  return expectJLocationNorm;
- }
-
- public void setExpectJLocationNorm(String expectJLocationNorm) {
-  this.expectJLocationNorm = expectJLocationNorm;
- }
-
- public String getResumeType() {
-  return resumeType;
- }
-
- public void setResumeType(String resumeType) {
-  this.resumeType = resumeType;
- }
-
- public String getResumeSource() {
-  return resumeSource;
- }
-
- public void setResumeSource(String resumeSource) {
-  this.resumeSource = resumeSource;
- }
-
- public String getResumeId() {
-  return resumeId;
- }
-
- public void setResumeId(String resumeId) {
-  this.resumeId = resumeId;
- }
-
- public String getResumeName() {
-  return resumeName;
- }
-
- public void setResumeName(String resumeName) {
-  this.resumeName = resumeName;
- }
-
- public String getResumeParseTime() {
-  return resumeParseTime;
- }
-
- public void setResumeParseTime(String resumeParseTime) {
-  this.resumeParseTime = resumeParseTime;
- }
-
- public String getResumeUpdateTime() {
-  return resumeUpdateTime;
- }
-
- public void setResumeUpdateTime(String resumeUpdateTime) {
-  this.resumeUpdateTime = resumeUpdateTime;
- }
-
- public String getResumeIntegrity() {
-  return resumeIntegrity;
- }
-
- public void setResumeIntegrity(String resumeIntegrity) {
-  this.resumeIntegrity = resumeIntegrity;
- }
-
- public String getAvatarUrl() {
-  return avatarUrl;
- }
-
- public void setAvatarUrl(String avatarUrl) {
-  this.avatarUrl = avatarUrl;
- }
-
- public String getAvatarData() {
-  return avatarData;
- }
-
- public void setAvatarData(String avatarData) {
-  this.avatarData = avatarData;
- }
-
- public String getContBasicInfo() {
-  return contBasicInfo;
- }
-
- public void setContBasicInfo(String contBasicInfo) {
-  this.contBasicInfo = contBasicInfo;
- }
-
- public String getContExpectJob() {
-  return contExpectJob;
- }
-
- public void setContExpectJob(String contExpectJob) {
-  this.contExpectJob = contExpectJob;
- }
-
- public String getContEducation() {
-  return contEducation;
- }
-
- public void setContEducation(String contEducation) {
-  this.contEducation = contEducation;
- }
-
- public String getContJobExp() {
-  return contJobExp;
- }
-
- public void setContJobExp(String contJobExp) {
-  this.contJobExp = contJobExp;
- }
-
- public String getContProjExp() {
-  return contProjExp;
- }
-
- public void setContProjExp(String contProjExp) {
-  this.contProjExp = contProjExp;
- }
-
- public String getContInternship() {
-  return contInternship;
- }
-
- public void setContInternship(String contInternship) {
-  this.contInternship = contInternship;
- }
-
- public String getContSocialExp() {
-  return contSocialExp;
- }
-
- public void setContSocialExp(String contSocialExp) {
-  this.contSocialExp = contSocialExp;
- }
-
- public String getContCampusExp() {
-  return contCampusExp;
- }
-
- public void setContCampusExp(String contCampusExp) {
-  this.contCampusExp = contCampusExp;
- }
-
- public String getContJobSkill() {
-  return contJobSkill;
- }
-
- public void setContJobSkill(String contJobSkill) {
-  this.contJobSkill = contJobSkill;
- }
-
- public String getContMyDesc() {
-  return contMyDesc;
- }
-
- public void setContMyDesc(String contMyDesc) {
-  this.contMyDesc = contMyDesc;
- }
-
- public String getContHobby() {
-  return contHobby;
- }
-
- public void setContHobby(String contHobby) {
-  this.contHobby = contHobby;
- }
-
- public String getContLanguage() {
-  return contLanguage;
- }
-
- public void setContLanguage(String contLanguage) {
-  this.contLanguage = contLanguage;
- }
-
- public String getContCertificate() {
-  return contCertificate;
- }
-
- public void setContCertificate(String contCertificate) {
-  this.contCertificate = contCertificate;
- }
-
- public String getContAward() {
-  return contAward;
- }
-
- public void setContAward(String contAward) {
-  this.contAward = contAward;
- }
-
- public String getContTraining() {
-  return contTraining;
- }
-
- public void setContTraining(String contTraining) {
-  this.contTraining = contTraining;
- }
-
- public String getContCourse() {
-  return contCourse;
- }
-
- public void setContCourse(String contCourse) {
-  this.contCourse = contCourse;
- }
-
- public String getContResearch() {
-  return contResearch;
- }
+    /**
+     * 个人技能文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_job_skill")
+    private String contJobSkill;
 
- public void setContResearch(String contResearch) {
-  this.contResearch = contResearch;
- }
+    /**
+     * 自我评价文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_my_desc")
+    private String contMyDesc;
 
- public String getContPublications() {
-  return contPublications;
- }
+    /**
+     * 兴趣爱好文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_hobby")
+    private String contHobby;
 
- public void setContPublications(String contPublications) {
-  this.contPublications = contPublications;
- }
+    /**
+     * 语言技能文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_language")
+    private String contLanguage;
 
- public String getContMyProject() {
-  return contMyProject;
- }
+    /**
+     * 所获证书文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_certificate")
+    private String contCertificate;
 
- public void setContMyProject(String contMyProject) {
-  this.contMyProject = contMyProject;
- }
+    /**
+     * 所获奖励文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_award")
+    private String contAward;
 
- public String getContCoverLetter() {
-  return contCoverLetter;
- }
+    /**
+     * 培训经历文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_training")
+    private String contTraining;
 
- public void setContCoverLetter(String contCoverLetter) {
-  this.contCoverLetter = contCoverLetter;
- }
+    /**
+     * 所学课程文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_course")
+    private String contCourse;
 
- public String getContExtraInfo() {
-  return contExtraInfo;
- }
+    /**
+     * 科研实践文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_research")
+    private String contResearch;
 
- public void setContExtraInfo(String contExtraInfo) {
-  this.contExtraInfo = contExtraInfo;
- }
+    /**
+     * 论文著作文本内容
+     * 文本内容(20240408新增)
+     */
+    @JSONField(name = "cont_publications")
+    private String contPublications;
 
- public String getRawText() {
-  return rawText;
- }
+    /**
+     * 个人作品文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_my_project")
+    private String contMyProject;
 
- public void setRawText(String rawText) {
-  this.rawText = rawText;
- }
+    /**
+     * 求职信文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_cover_letter")
+    private String contCoverLetter;
 
- public List<TemResumeEduVo> getEducationObjs() {
-  return educationObjs;
- }
+    /**
+     * 附加信息文本内容
+     * 文本内容
+     */
+    @JSONField(name = "cont_extra_info")
+    private String contExtraInfo;
 
- public void setEducationObjs(List<TemResumeEduVo> educationObjs) {
-  this.educationObjs = educationObjs;
- }
+    /**
+     * 原始简历文本内容
+     * 文本内容
+     */
+    @JSONField(name = "raw_text")
+    private String rawText;
 
- public List<TemResumeWorkVo> getJobExpObjs() {
-  return jobExpObjs;
- }
 
- public void setJobExpObjs(List<TemResumeWorkVo> jobExpObjs) {
-  this.jobExpObjs = jobExpObjs;
- }
+    /**
+     * 3.2 教育经历
+     * 教育经历存放于result结构体下的一级字段education_objs中,每一段教育经历包含的字段如下:
+     */
+    @JSONField(name = "education_objs")
+    private List<TemResumeEduVo> educationObjs;
 
- public List<TemResumePracticeVo> getSocialExpObjs() {
-  return socialExpObjs;
- }
+    /**
+     * 3.3 工作经历及实习经历
+     * 工作经历及实习经历存放于result结构体下的一级字段job_exp_objs中,其中实习经历通过job_nature="实习"进行标识。
+     * 每一段工作经历包含的字段如下:
+     */
+    @JSONField(name = "job_exp_objs")
+    private List<TemResumeWorkVo> jobExpObjs;
 
- public void setSocialExpObjs(List<TemResumePracticeVo> socialExpObjs) {
-  this.socialExpObjs = socialExpObjs;
- }
 
- public List<TemResumetProjectVo> getProjExpObjs() {
-  return projExpObjs;
- }
+    /**
+     * 3.4 社会及学校实践经历
+     * 社会及学校实践经历存放于result结构体下的一级字段social_exp_objs中(若要解析实践经历,需要在请求接口中增加参数need_social_exp=1)。
+     * 每一段实践经历包含的字段和工作经历的字段信息相同,具体字段如下:
+     */
+    @JSONField(name = "social_exp_objs")
+    private List<TemResumePracticeVo> socialExpObjs;
 
- public void setProjExpObjs(List<TemResumetProjectVo> projExpObjs) {
-  this.projExpObjs = projExpObjs;
- }
 
- public List<TemResumetTrainingVo> getTrainingObjs() {
-  return trainingObjs;
- }
+    /**
+     * 3.5 项目经历
+     * 项目经历存放于result结构体下的一级字段proj_exp_objs中,每一段项目经历包含的字段如下:
+     */
+    @JSONField(name = "proj_exp_objs")
+    private List<TemResumetProjectVo> projExpObjs;
 
- public void setTrainingObjs(List<TemResumetTrainingVo> trainingObjs) {
-  this.trainingObjs = trainingObjs;
- }
 
- public List<TemResumeSkillsVo> getSkillsObjs() {
-  return skillsObjs;
- }
+    /**
+     * 3.6 培训经历
+     * 培训经历存放于result结构体下的一级字段training_objs中,每一段培训经历包含的字段如下:
+     */
+    @JSONField(name = "training_objs")
+    private List<TemResumetTrainingVo> trainingObjs;
 
- public void setSkillsObjs(List<TemResumeSkillsVo> skillsObjs) {
-  this.skillsObjs = skillsObjs;
- }
 
- public List<TemResumeLanguageVo> getLangObjs() {
-  return langObjs;
- }
+    /**
+     * 3.7 技能列表
+     * 技能列表存放于result结构体下的一级字段skills_objs中,每一个技能包含的字段如下:
+     */
+    @JSONField(name = "skills_objs")
+    private List<TemResumeSkillsVo> skillsObjs;
 
- public void setLangObjs(List<TemResumeLanguageVo> langObjs) {
-  this.langObjs = langObjs;
- }
 
- public List<TemResumeCertInfoVo> getCertObjs() {
-  return certObjs;
- }
+    /**
+     * 3.8 语言技能
+     * 语言技能存放于result结构体下的一级字段lang_objs中,每一个语言技能包含的字段如下:
+     */
+    @JSONField(name = "lang_objs")
+    private List<TemResumeLanguageVo> langObjs;
 
- public void setCertObjs(List<TemResumeCertInfoVo> certObjs) {
-  this.certObjs = certObjs;
- }
+    /**
+     * 3.9 语言证书列表
+     * 语言证书列表存放于result结构体下的一级字段cert_objs中,每一个语言证书包含的字段如下:
+     */
+    @JSONField(name = "cert_objs")
+    private List<TemResumeCertInfoVo> certObjs;
 
- public List<TemResumeCertVo> getAllCertObjs() {
-  return allCertObjs;
- }
+    /**
+     * 3.10  所有证书及奖项
+     * 所有证书及奖项(包括语言证书、职业证书、奖项名称等)
+     * 存放于result结构体下的一级字段all_cert_objs中,每一个证书包含的字段如下:
+     */
+    @JSONField(name = "all_cert_objs")
+    private List<TemResumeCertVo> allCertObjs;
 
- public void setAllCertObjs(List<TemResumeCertVo> allCertObjs) {
-  this.allCertObjs = allCertObjs;
- }
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/TalentMapDetailRespVO.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.controller.base.talent;
 import com.citu.module.menduner.system.controller.base.talent.edu.TalentMapEduExpRespVO;
 import com.citu.module.menduner.system.controller.base.talent.info.TalentMapInfoRespVO;
 import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpRespVO;
+import com.citu.module.menduner.system.controller.base.trainexp.TrainExpRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -20,4 +21,7 @@ public class TalentMapDetailRespVO {
 
     @Schema(description = "人才工作经历")
     private List<TalentMapWorkExpRespVO> workList;
+
+    @Schema(description = "人才培训经历")
+    private List<TrainExpRespVO> trainList;
 }

+ 21 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoPageReqVO.java

@@ -27,12 +27,18 @@ public class TalentMapInfoPageReqVO extends PageParam {
     @Schema(description = "用户性别")
     private String sex;
 
+    @Schema(description = "用户性别文本")
+    private String sexStr;
+
     @Schema(description = "联系手机号")
     private String phone;
 
     @Schema(description = "用户邮箱")
     private String email;
 
+    @Schema(description = "qq")
+    private String qq;
+
     @Schema(description = "微信号")
     private String wxCode;
 
@@ -45,6 +51,9 @@ public class TalentMapInfoPageReqVO extends PageParam {
     @Schema(description = "婚姻状况(0未婚 1已婚 2离异 3保密)", example = "2")
     private String maritalStatus;
 
+    @Schema(description = "婚姻状况文本", example = "2")
+    private String maritalStatusStr;
+
     @Schema(description = "现居住地", example = "21528")
     private Long areaId;
 
@@ -60,9 +69,15 @@ public class TalentMapInfoPageReqVO extends PageParam {
     @Schema(description = "求职类型(0全职 1兼职 2临时 3实习)", example = "1")
     private String jobType;
 
+    @Schema(description = "求职类型文本", example = "1")
+    private String jobTypeStr;
+
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "2")
     private String jobStatus;
 
+    @Schema(description = "求职状态文本", example = "2")
+    private String jobStatusStr;
+
     @Schema(description = "首次工作时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] firstWorkTime;
@@ -70,9 +85,15 @@ public class TalentMapInfoPageReqVO extends PageParam {
     @Schema(description = "工作经验", example = "2")
     private String expType;
 
+    @Schema(description = "工作经验文本", example = "2")
+    private String expTypeStr;
+
     @Schema(description = "学历", example = "2")
     private String eduType;
 
+    @Schema(description = "学历文本", example = "2")
+    private String eduTypeStr;
+
     @Schema(description = "是否有筹备经验")
     private Boolean prepareExp;
 

+ 28 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoRespVO.java

@@ -37,6 +37,10 @@ public class TalentMapInfoRespVO {
     @ExcelProperty("用户性别")
     private String sex;
 
+    @Schema(description = "用户性别文本")
+    @ExcelProperty("用户性别文本")
+    private String sexStr;
+
     @Schema(description = "头像地址")
     @ExcelProperty("头像地址")
     private String avatar;
@@ -49,6 +53,10 @@ public class TalentMapInfoRespVO {
     @ExcelProperty("用户邮箱")
     private String email;
 
+    @Schema(description = "qq")
+    @ExcelProperty("qq")
+    private String qq;
+
     @Schema(description = "微信号")
     @ExcelProperty("微信号")
     private String wxCode;
@@ -69,6 +77,10 @@ public class TalentMapInfoRespVO {
     @ExcelProperty("婚姻状况(0未婚 1已婚 2离异 3保密)")
     private String maritalStatus;
 
+    @Schema(description = "婚姻状况文本", example = "2")
+    @ExcelProperty("婚姻状况文本")
+    private String maritalStatusStr;
+
     @Schema(description = "现居住地", example = "21528")
     @ExcelProperty("现居住地")
     private Long areaId;
@@ -89,10 +101,18 @@ public class TalentMapInfoRespVO {
     @ExcelProperty("求职类型(0全职 1兼职 2临时 3实习)")
     private String jobType;
 
+    @Schema(description = "求职类型文本", example = "1")
+    @ExcelProperty("求职类型文本")
+    private String jobTypeStr;
+
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "2")
     @ExcelProperty("求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)")
     private String jobStatus;
 
+    @Schema(description = "求职状态文本", example = "2")
+    @ExcelProperty("求职状态文本")
+    private String jobStatusStr;
+
     @Schema(description = "首次工作时间")
     @ExcelProperty("首次工作时间")
     private LocalDateTime firstWorkTime;
@@ -105,10 +125,18 @@ public class TalentMapInfoRespVO {
     @ExcelProperty("工作经验")
     private String expType;
 
+    @Schema(description = "工作经验文本", example = "2")
+    @ExcelProperty("工作经验文本")
+    private String expTypeStr;
+
     @Schema(description = "学历", example = "2")
     @ExcelProperty("学历")
     private String eduType;
 
+    @Schema(description = "学历文本", example = "2")
+    @ExcelProperty("学历文本")
+    private String eduTypeStr;
+
     @Schema(description = "是否有筹备经验")
     @ExcelProperty("是否有筹备经验")
     private Boolean prepareExp;

+ 21 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/info/TalentMapInfoSaveReqVO.java

@@ -27,6 +27,9 @@ public class TalentMapInfoSaveReqVO {
     @Schema(description = "用户性别")
     private String sex;
 
+    @Schema(description = "用户性别文本")
+    private String sexStr;
+
     @Schema(description = "头像地址")
     private String avatar;
 
@@ -36,6 +39,9 @@ public class TalentMapInfoSaveReqVO {
     @Schema(description = "用户邮箱")
     private String email;
 
+    @Schema(description = "qq")
+    private String qq;
+
     @Schema(description = "微信号")
     private String wxCode;
 
@@ -51,6 +57,9 @@ public class TalentMapInfoSaveReqVO {
     @Schema(description = "婚姻状况(0未婚 1已婚 2离异 3保密)", example = "2")
     private String maritalStatus;
 
+    @Schema(description = "婚姻状况文本", example = "2")
+    private String maritalStatusStr;
+
     @Schema(description = "现居住地", example = "21528")
     private Long areaId;
 
@@ -66,9 +75,15 @@ public class TalentMapInfoSaveReqVO {
     @Schema(description = "求职类型(0全职 1兼职 2临时 3实习)", example = "1")
     private String jobType;
 
+    @Schema(description = "求职类型文本", example = "1")
+    private String jobTypeStr;
+
     @Schema(description = "求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)", example = "2")
     private String jobStatus;
 
+    @Schema(description = "求职状态文本", example = "2")
+    private String jobStatusStr;
+
     @Schema(description = "首次工作时间")
     private LocalDateTime firstWorkTime;
 
@@ -78,9 +93,15 @@ public class TalentMapInfoSaveReqVO {
     @Schema(description = "工作经验", example = "2")
     private String expType;
 
+    @Schema(description = "工作经验文本", example = "2")
+    private String expTypeStr;
+
     @Schema(description = "学历", example = "2")
     private String eduType;
 
+    @Schema(description = "学历文本", example = "2")
+    private String eduTypeStr;
+
     @Schema(description = "是否有筹备经验")
     private Boolean prepareExp;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpPageReqVO.java

@@ -37,7 +37,7 @@ public class TalentMapWorkExpPageReqVO extends PageParam {
     private String type;
 
     @Schema(description = "是否在职")
-    private Integer currentlyEmployed;
+    private Boolean currentlyEmployed;
 
     @Schema(description = "所属行业", example = "27790")
     private Long industryId;

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpRespVO.java

@@ -44,7 +44,7 @@ public class TalentMapWorkExpRespVO {
 
     @Schema(description = "是否在职")
     @ExcelProperty("是否在职")
-    private Integer currentlyEmployed;
+    private Boolean currentlyEmployed;
 
     @Schema(description = "所属行业", example = "27790")
     @ExcelProperty("所属行业")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/talent/work/TalentMapWorkExpSaveReqVO.java

@@ -35,7 +35,7 @@ public class TalentMapWorkExpSaveReqVO {
     private String type;
 
     @Schema(description = "是否在职")
-    private Integer currentlyEmployed;
+    private Boolean currentlyEmployed;
 
     @Schema(description = "所属行业", example = "27790")
     private Long industryId;

+ 31 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/talent/TalentMapInfoDO.java

@@ -45,14 +45,18 @@ public class TalentMapInfoDO extends TenantBaseDO {
      * 外文名
      */
     private String foreignName;
+    /**
+     * 头像地址
+     */
+    private String avatar;
     /**
      * 用户性别
      */
     private String sex;
     /**
-     * 头像地址
+     * 用户性别文本
      */
-    private String avatar;
+    private String sexStr;
     /**
      * 联系手机号
      */
@@ -63,6 +67,11 @@ public class TalentMapInfoDO extends TenantBaseDO {
      */
     @TableField(updateStrategy = FieldStrategy.ALWAYS)
     private String email;
+    /**
+     * qq
+     */
+    @TableField(updateStrategy = FieldStrategy.ALWAYS)
+    private String qq;
     /**
      * 微信号
      */
@@ -84,6 +93,10 @@ public class TalentMapInfoDO extends TenantBaseDO {
      * 婚姻状况(0未婚 1已婚 2离异 3保密)
      */
     private String maritalStatus;
+    /**
+     * 婚姻状况文本
+     */
+    private String maritalStatusStr;
     /**
      * 现居住地
      */
@@ -108,10 +121,18 @@ public class TalentMapInfoDO extends TenantBaseDO {
      * 求职类型(0全职 1兼职 2临时 3实习)
      */
     private String jobType;
+    /**
+     * 求职类型文本
+     */
+    private String jobTypeStr;
     /**
      * 求职状态(0离职-随时到岗 1在职-月内到岗 2在职-考虑机会 3在职-暂不考虑)
      */
     private String jobStatus;
+    /**
+     * 求职状态文本
+     */
+    private String jobStatusStr;
     /**
      * 首次工作时间
      */
@@ -124,10 +145,18 @@ public class TalentMapInfoDO extends TenantBaseDO {
      * 工作经验
      */
     private String expType;
+    /**
+     * 工作经验文本
+     */
+    private String expTypeStr;
     /**
      * 学历
      */
     private String eduType;
+    /**
+     * 学历文本
+     */
+    private String eduTypeStr;
     /**
      * 是否有筹备经验
      */

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/talent/TalentMapWorkExpDO.java

@@ -60,7 +60,7 @@ public class TalentMapWorkExpDO extends TenantBaseDO {
     /**
      * 是否在职
      */
-    private Integer currentlyEmployed;
+    private Boolean currentlyEmployed;
     /**
      * 所属行业
      */

+ 124 - 50
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/resume/OnlineResumeServiceImpl.java

@@ -3,16 +3,20 @@ package com.citu.module.menduner.system.service.resume;
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.http.HttpUtil;
-import com.citu.module.menduner.system.controller.base.eduexp.EduExpRespVO;
 import com.citu.module.menduner.system.controller.base.job.interested.JobInterestedRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonDetailExtendRespVO;
-import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.controller.base.projectexp.ProjectExpRespVO;
 import com.citu.module.menduner.system.controller.base.resume.resumesdk.*;
+import com.citu.module.menduner.system.controller.base.talent.edu.TalentMapEduExpRespVO;
+import com.citu.module.menduner.system.controller.base.talent.info.TalentMapInfoRespVO;
+import com.citu.module.menduner.system.controller.base.talent.work.TalentMapWorkExpRespVO;
 import com.citu.module.menduner.system.controller.base.trainexp.TrainExpRespVO;
-import com.citu.module.menduner.system.controller.base.workexp.WorkExpRespVO;
+import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
 import com.citu.module.menduner.system.enums.eduexp.EducationTypeEnum;
+import com.citu.module.menduner.system.enums.job.JobSeekStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobTypeEnum;
 import com.citu.module.menduner.system.enums.person.MaritalStatusEnum;
+import com.citu.module.menduner.system.enums.person.PersonSexEnum;
 import com.citu.module.menduner.system.enums.workexp.ExpTypeEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
 import org.apache.commons.lang3.StringUtils;
@@ -58,9 +62,9 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         // TODO 解析出简历对象后 赋值给resp
         // TODO 没有的信息可不填
         // TODO resp.info 人员基本信息 areaId、regId 需要取出省市区id,工作年限、工作经验通过 EducationTypeEnum|ExpTypeEnum 判断赋type值,其他基本信息根据情况填
-        resp.setPerson(temResumeResVoConvertToPersonInfoRespVO(temResumeResVo));
+        resp.setPerson(temResumeResVoConvertToPersonInfoRespVO(temResumeResVo, fileUrl));
         // TODO resp.interestedList 大概率取不出,但是可以填positionName
-        resp.setInterestedList(temResumeResVoConvertToJobInterestedRespVO(temResumeResVo));
+        // resp.setInterestedList(temResumeResVoConvertToJobInterestedRespVO(temResumeResVo));
         // TODO resp.skillList 完全配不出格式,先不用管
         // resp.setSkillList()
         // TODO resp.eduList 可填schoolName、educationType(EducationTypeEnum)、major、startTime、endTime
@@ -68,7 +72,7 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         // TODO resp.workList 可填enterpriseName、positionName、startTime、endTime、content
         resp.setWorkList(temResumeResVoConvertToWorkExpRespVO(temResumeResVo));
         // TODO resp.projectList 自行评估有没有
-        resp.setProjectList(temResumeResVoConvertToProjectExpRespVO(temResumeResVo));
+        // resp.setProjectList(temResumeResVoConvertToProjectExpRespVO(temResumeResVo));
         // TODO resp.trainList 大概率没有
         resp.setTrainList(temResumeResVoConvertToTrainExpRespVO(temResumeResVo));
         // TODO resp.resume 将temResumeResVo丢进来
@@ -77,69 +81,131 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
     }
 
 
-    PersonInfoRespVO temResumeResVoConvertToPersonInfoRespVO(TemResumeContent temResumeResVo) {
-        PersonInfoRespVO personInfoRespVO = new PersonInfoRespVO();
-        personInfoRespVO.setName(temResumeResVo.getName());
-//        personInfoRespVO.setForeignName(temResumeResVo.getNameEn());
-        personInfoRespVO.setSex(temResumeResVo.getGender());
-        personInfoRespVO.setAvatar(temResumeResVo.getAvatarUrl());
-        personInfoRespVO.setPhone(temResumeResVo.getPhone());
-        personInfoRespVO.setEmail(temResumeResVo.getEmail());
-        personInfoRespVO.setWxCode(temResumeResVo.getWeixin());
-        personInfoRespVO.setBirthday(convertDate(temResumeResVo.getBirthday()));
-        personInfoRespVO.setMaritalStatus("3");
+    private TalentMapInfoRespVO temResumeResVoConvertToPersonInfoRespVO(TemResumeContent temResumeResVo, String fileUrl) {
+        TalentMapInfoRespVO talentMapInfoRespVO = new TalentMapInfoRespVO();
+        talentMapInfoRespVO.setResumeUrl(fileUrl);
+        talentMapInfoRespVO.setName(temResumeResVo.getName());
+        // talentMapInfoRespVO.setForeignName(temResumeResVo.getNameEn());
+        PersonSexEnum sexEnum = PersonSexEnum.getEnumByName(temResumeResVo.getGenderInf());
+        if (!PersonSexEnum.UNKNOWN.equals(sexEnum)) {
+            talentMapInfoRespVO.setSex(sexEnum.getType());
+            talentMapInfoRespVO.setSexStr(sexEnum.getName());
+        }
+
+        // 图片地址为空就用base64
+        talentMapInfoRespVO.setAvatar(StringUtils.isEmpty(temResumeResVo.getAvatarUrl())
+                ? temResumeResVo.getAvatarData() : temResumeResVo.getAvatarUrl());
+        talentMapInfoRespVO.setPhone(temResumeResVo.getPhone());
+        talentMapInfoRespVO.setEmail(temResumeResVo.getEmail());
+        talentMapInfoRespVO.setQq(temResumeResVo.getQq());
+        talentMapInfoRespVO.setWxCode(temResumeResVo.getWeixin());
+        talentMapInfoRespVO.setBirthday(convertDate(temResumeResVo.getBirthday()));
+        // 是否党员
+        if (StringUtils.isNotBlank(temResumeResVo.getPolitStatus())) {
+            if ("党员".equals(temResumeResVo.getPolitStatus())
+                    || "共产党员".equals(temResumeResVo.getPolitStatus())
+                    || "共产党党员".equals(temResumeResVo.getPolitStatus())) {
+                talentMapInfoRespVO.setPartyMember(true);
+            } else {
+                talentMapInfoRespVO.setPartyMember(false);
+            }
+        } else {
+            talentMapInfoRespVO.setPartyMember(false);
+        }
+
+        // 婚姻状态
+        talentMapInfoRespVO.setMaritalStatus(MaritalStatusEnum.NOT_DISCLOSED.getType());
         if (StringUtils.isNotBlank(temResumeResVo.getMaritalStatus())) {
+
             String maritalStatus = temResumeResVo.getMaritalStatus().replaceAll(" ", "");
-            Map<String, String> maritalStatusMap = new HashMap<>();
-            maritalStatusMap.put("未婚", MaritalStatusEnum.SINGLE.getType());
-            maritalStatusMap.put("未结婚", MaritalStatusEnum.SINGLE.getType());
-            maritalStatusMap.put("未婚未育", MaritalStatusEnum.SINGLE.getType());
-            maritalStatusMap.put("暂未结婚",MaritalStatusEnum.SINGLE.getType());
-            maritalStatusMap.put("已婚", MaritalStatusEnum.MARRIED.getType());
-            maritalStatusMap.put("已经结婚", MaritalStatusEnum.MARRIED.getType());
-            maritalStatusMap.put("已结婚", MaritalStatusEnum.MARRIED.getType());
-            maritalStatusMap.put("已婚已育",MaritalStatusEnum.MARRIED.getType());
-            personInfoRespVO.setMaritalStatus(maritalStatusMap.getOrDefault(maritalStatus, MaritalStatusEnum.NOT_DISCLOSED.getType()));
+            Map<String, MaritalStatusEnum> maritalStatusMap = new HashMap<>();
+            maritalStatusMap.put("未婚", MaritalStatusEnum.SINGLE);
+            maritalStatusMap.put("未结婚", MaritalStatusEnum.SINGLE);
+            maritalStatusMap.put("未婚未育", MaritalStatusEnum.SINGLE);
+            maritalStatusMap.put("暂未结婚", MaritalStatusEnum.SINGLE);
+            maritalStatusMap.put("已婚", MaritalStatusEnum.MARRIED);
+            maritalStatusMap.put("已经结婚", MaritalStatusEnum.MARRIED);
+            maritalStatusMap.put("已结婚", MaritalStatusEnum.MARRIED);
+            maritalStatusMap.put("已婚已育", MaritalStatusEnum.MARRIED);
+            MaritalStatusEnum maritalStatusEnum = maritalStatusMap.getOrDefault(maritalStatus, MaritalStatusEnum.NOT_DISCLOSED);
+            talentMapInfoRespVO.setMaritalStatus(maritalStatusEnum.getType());
+            talentMapInfoRespVO.setMaritalStatus(maritalStatusEnum.getName());
         }
 
+        // 所在城市
         if (StringUtils.isNotBlank(temResumeResVo.getCityNorm())) {
             String cityNorm = temResumeResVo.getCityNorm().replaceAll(" ", "");
             String[] split = cityNorm.split("-");// 规范化的城市名,到“区县”一级: 中国-广东省 中国-湖南省-岳阳市 中国-湖南省-岳阳市-华容县
             // 只有省级别
             if (split.length == 2) {
-                personInfoRespVO.setAreaId(areaService.getAreaByName(split[1]).getId());
+                AreaDO areaDO = areaService.getAreaByName(split[1]);
+                if (null != areaDO) {
+                    talentMapInfoRespVO.setAreaId(areaDO.getId());
+                    talentMapInfoRespVO.setAreaStr(areaDO.getName());
+                }
             }
             // 只有市级别
             if (split.length == 3) {
-                personInfoRespVO.setAreaId(areaService.getAreaByName(split[2]).getId());
+                AreaDO areaDO = areaService.getAreaByName(split[2]);
+                if (null != areaDO) {
+                    talentMapInfoRespVO.setAreaId(areaDO.getId());
+                    talentMapInfoRespVO.setAreaStr(areaDO.getName());
+                }
             }
         }
 
+        // 户籍地
         if (StringUtils.isNotBlank(temResumeResVo.getHukouAddressNorm())) {
             String hukouAddressNorm = temResumeResVo.getHukouAddressNorm().replaceAll(" ", "");
             String[] split = hukouAddressNorm.split("-");// 规范化的城市名,到“区县”一级: 中国-广东省 中国-湖南省-岳阳市 中国-湖南省-岳阳市-华容县
             // 只有省级别
             if (split.length == 2) {
-                personInfoRespVO.setRegId(areaService.getAreaByName(split[1]).getId());
+                AreaDO areaDO = areaService.getAreaByName(split[1]);
+                if (null != areaDO) {
+                    talentMapInfoRespVO.setRegId(areaDO.getId());
+                    talentMapInfoRespVO.setRegStr(areaDO.getName());
+                }
             }
             // 只有市级别
             if (split.length == 3) {
-                personInfoRespVO.setRegId(areaService.getAreaByName(split[2]).getId());
+                AreaDO areaDO = areaService.getAreaByName(split[2]);
+                if (null != areaDO) {
+                    talentMapInfoRespVO.setRegId(areaDO.getId());
+                    talentMapInfoRespVO.setRegStr(areaDO.getName());
+                }
             }
+            // 国籍
+            talentMapInfoRespVO.setNationality(split[0]);
         }
-//        personInfoRespVO.setJobType(); //	expect_jnature 期望工作性质
-//        personInfoRespVO.setJobStatus();// //	expect_jstatus 期望工作性质
+        // talentMapInfoRespVO.setJobType(); //	expect_jnature 期望工作性质
+        //  talentMapInfoRespVO.setJobStatus();// //	expect_jstatus 期望工作性质
 
-        personInfoRespVO.setFirstWorkTime(convertDate(temResumeResVo.getWorkStartTime()));
-        if (null == personInfoRespVO.getFirstWorkTime()) {
-            personInfoRespVO.setFirstWorkTime(convertDate(temResumeResVo.getWorkStartTimeInf()));
+        talentMapInfoRespVO.setFirstWorkTime(convertDate(temResumeResVo.getWorkStartTime()));
+        if (null == talentMapInfoRespVO.getFirstWorkTime()) {
+            talentMapInfoRespVO.setFirstWorkTime(convertDate(temResumeResVo.getWorkStartTimeInf()));
         }
-        personInfoRespVO.setAdvantage(temResumeResVo.getContMyDesc());
-        personInfoRespVO.setEduType(EducationTypeEnum.getEnumByOcrName(temResumeResVo.getDegree()).getType());
-        String type = ExpTypeEnum.getOCREnumByYear(temResumeResVo.getWorkYearNorm()).getType();
-        String type2 = ExpTypeEnum.getOCREnumByYear(temResumeResVo.getWorkYearInf()).getType();
-        personInfoRespVO.setExpType(null == type ? type2 : null);// expect_work_year 期望工作年限
-        return personInfoRespVO;
+        talentMapInfoRespVO.setAdvantage(temResumeResVo.getContMyDesc());
+        // 学历
+        EducationTypeEnum educationTypeEnum = EducationTypeEnum.getEnumByOcrName(temResumeResVo.getDegree());
+        talentMapInfoRespVO.setEduType(educationTypeEnum.getType());
+        talentMapInfoRespVO.setEduTypeStr(educationTypeEnum.getName());
+
+        // 工作年限
+        ExpTypeEnum type = ExpTypeEnum.getOCREnumByYear(temResumeResVo.getWorkYearNorm());
+        ExpTypeEnum type2 = ExpTypeEnum.getOCREnumByYear(temResumeResVo.getWorkYearInf());
+        talentMapInfoRespVO.setExpType(null == type ? type2.getType() : type.getType());// expect_work_year 期望工作年限
+        talentMapInfoRespVO.setExpTypeStr(null == type ? type2.getName() : type.getName());
+
+        // 求职状态
+        JobSeekStatusEnum jobStatusEnum = JobSeekStatusEnum.getEnumByName(temResumeResVo.getWorkStatus());
+        talentMapInfoRespVO.setJobStatus(jobStatusEnum.getStatus());
+        talentMapInfoRespVO.setJobStatusStr(jobStatusEnum.getName());
+
+        // 求职类型
+        JobTypeEnum jobTypeEnum = JobTypeEnum.getEnumByName(temResumeResVo.getWorkJobNature());
+        talentMapInfoRespVO.setJobType(jobTypeEnum.getType());
+        talentMapInfoRespVO.setJobTypeStr(jobTypeEnum.getName());
+        return talentMapInfoRespVO;
     }
 
     List<JobInterestedRespVO> temResumeResVoConvertToJobInterestedRespVO(TemResumeContent temResumeResVo) {
@@ -157,14 +223,16 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         return interestedList;
     }
 
-    List<EduExpRespVO> temResumeResVoConvertToEduExpRespVO(TemResumeContent temResumeResVo) {
-        List<EduExpRespVO> respVOS = new ArrayList<>();
+    private List<TalentMapEduExpRespVO> temResumeResVoConvertToEduExpRespVO(TemResumeContent temResumeResVo) {
+        List<TalentMapEduExpRespVO> respVOS = new ArrayList<>();
 
         for (TemResumeEduVo educationObj : temResumeResVo.getEducationObjs()) {
             //可填schoolName、educationType(EducationTypeEnum)、major、startTime、endTime
-            EduExpRespVO eduExpRespVO = new EduExpRespVO();
+            TalentMapEduExpRespVO eduExpRespVO = new TalentMapEduExpRespVO();
             eduExpRespVO.setSchoolName(educationObj.getEduCollege());
-            eduExpRespVO.setEducationType(EducationTypeEnum.getEnumByOcrName(educationObj.getEduDegreeNorm()).getType());
+            EducationTypeEnum educationTypeEnum = EducationTypeEnum.getEnumByOcrName(educationObj.getEduDegreeNorm());
+            eduExpRespVO.setEducationType(educationTypeEnum.getType());
+            eduExpRespVO.setEducationTypeStr(educationTypeEnum.getName());
             eduExpRespVO.setMajor(educationObj.getEduMajor());
             eduExpRespVO.setStartTime(convertDate(educationObj.getStartDate()));
             eduExpRespVO.setEndTime(convertDate(educationObj.getEndDate()));
@@ -174,15 +242,21 @@ public class OnlineResumeServiceImpl implements OnlineResumeService {
         return respVOS;
     }
 
-    List<WorkExpRespVO> temResumeResVoConvertToWorkExpRespVO(TemResumeContent temResumeResVo) {
-        List<WorkExpRespVO> respVOS = new ArrayList<>();
+    List<TalentMapWorkExpRespVO> temResumeResVoConvertToWorkExpRespVO(TemResumeContent temResumeResVo) {
+        List<TalentMapWorkExpRespVO> respVOS = new ArrayList<>();
         //可填enterpriseName、positionName、startTime、endTime、content
         for (TemResumeWorkVo jobExpObj : temResumeResVo.getJobExpObjs()) {
-            WorkExpRespVO workExpRespVO = new WorkExpRespVO();
+            TalentMapWorkExpRespVO workExpRespVO = new TalentMapWorkExpRespVO();
             workExpRespVO.setEnterpriseName(jobExpObj.getJobCpy());
             workExpRespVO.setPositionName(jobExpObj.getJobPosition());
             workExpRespVO.setStartTime(convertDate(jobExpObj.getStartDate()));
-            workExpRespVO.setEndTime(convertDate(jobExpObj.getEndDate()));
+            LocalDateTime endTime = convertDate(jobExpObj.getEndDate());
+            workExpRespVO.setEndTime(endTime);
+            if (null == endTime) {
+                workExpRespVO.setCurrentlyEmployed(true);
+            } else {
+                workExpRespVO.setCurrentlyEmployed(false);
+            }
             workExpRespVO.setContent(jobExpObj.getJobContent());
             workExpRespVO.setDeptName(jobExpObj.getJobDept());
             respVOS.add(workExpRespVO);