BUG修复--千里聆推建模、SDK简历数据解析问题处理

This commit is contained in:
dxfeng 2024-01-12 09:43:11 +08:00
parent 61b42912e4
commit 23cbb70c1a
7 changed files with 296 additions and 56 deletions

View File

@ -4,6 +4,7 @@ import com.engine.recruit.enums.ApplicationStatusEnum;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util; import weaver.general.Util;
import java.util.HashMap; import java.util.HashMap;
@ -98,6 +99,42 @@ public class CheckRepeatResume {
return Util.getIntValue(Util.null2String(map.get("mainId"))); return Util.getIntValue(Util.null2String(map.get("mainId")));
} }
/**
* 插入更新明细表数据
*
* @param detailDataList
* @param tableName
* @param mainId
* @param sourceId
*/
public void insertResumeDetailTable(List<RecruitDataMap<Object>> detailDataList, String tableName, String mainId, String sourceId) {
if (CollectionUtils.isEmpty(detailDataList)) {
return;
}
boolean isUpdate = false;
if (StringUtils.isNotBlank(sourceId)) {
RecordSet rs = new RecordSet();
rs.executeQuery("select * from " + tableName + " where mainid = ? ", sourceId);
isUpdate = rs.getCounts() == 0;
}
try {
for (RecruitDataMap<Object> dataMap : detailDataList) {
// 明细表关联新数据
dataMap.put("mainid", mainId);
RecruitRecordSet.insertData(dataMap, tableName);
// 明细表关联已有数据
if (isUpdate) {
dataMap.put("mainid", sourceId);
RecruitRecordSet.insertData(dataMap, tableName);
}
}
} catch (Exception e) {
new BaseBean().writeLog(tableName + "明细表数据插入失败", e);
}
}
/** /**
* 插入简历数据 * 插入简历数据
* *
@ -250,4 +287,60 @@ public class CheckRepeatResume {
} }
/**
* 获取开始时间和结束时间
*
* @param date
* @return
*/
public static RecruitDataMap<Object> getDateRange(String date, boolean isStudy) {
RecruitDataMap<Object> dataRangeMap = new RecruitDataMap<>();
if (StringUtils.isBlank(date)) {
return dataRangeMap;
}
String[] split = date.split("-");
if (split.length == 2) {
String start = getFormatDate(split[0]);
String end = getFormatDate(split[1]);
if (start.length() == 4) {
if (isStudy) {
start += "-09-01";
} else {
start = "";
}
}
if (end.length() == 4) {
if (isStudy) {
end += "-07-01";
} else {
end = "";
}
}
dataRangeMap.put("kssj", start);
dataRangeMap.put("jssj", end);
}
return dataRangeMap;
}
/**
* 获取yyyy-MM-dd时间格式日期
*
* @param dateStr
* @return
*/
private static String getFormatDate(String dateStr) {
//
dateStr = dateStr.replace(".", "-").replace("\\/", "-");
if (dateStr.length() == 7) {
return dateStr + "-01";
} else if (dateStr.length() == 10) {
return dateStr;
} else if (dateStr.length() == 4) {
return dateStr;
}
return "";
}
} }

View File

@ -1,5 +1,6 @@
package com.engine.recruit.conn; package com.engine.recruit.conn;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
/** /**
@ -36,6 +37,9 @@ public class PositionCommonInfo {
*/ */
public static String getRecruitFlowId(String positionId) { public static String getRecruitFlowId(String positionId) {
String recruitFlowId = ""; String recruitFlowId = "";
if (StringUtils.isBlank(positionId)) {
return recruitFlowId;
}
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();
rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", positionId); rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", positionId);
if (rs.next()) { if (rs.next()) {

View File

@ -61,9 +61,11 @@ public class RecruitRecordSet {
List<String> paramList = new ArrayList<>(); List<String> paramList = new ArrayList<>();
dataMap.forEach((key, value) -> { dataMap.forEach((key, value) -> {
fieldList.add(key); if (null != value) {
dataList.add(value); fieldList.add(key);
paramList.add("?"); dataList.add(value);
paramList.add("?");
}
}); });
String insertSql = " insert into " + tableName + "(" + StringUtils.join(fieldList, ",") + ") values (" + StringUtils.join(paramList, ",") + ")"; String insertSql = " insert into " + tableName + "(" + StringUtils.join(fieldList, ",") + ") values (" + StringUtils.join(paramList, ",") + ")";
RecordSet rs = new RecordSet(); RecordSet rs = new RecordSet();

View File

@ -6,7 +6,9 @@ import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.engine.recruit.conn.CheckRepeatResume;
import com.engine.recruit.conn.ModeBrowserCommonInfo; import com.engine.recruit.conn.ModeBrowserCommonInfo;
import com.engine.recruit.conn.RecruitDataMap;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -17,6 +19,8 @@ import weaver.general.BaseBean;
import weaver.hrm.User; import weaver.hrm.User;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/** /**
* @author:dxfeng * @author:dxfeng
@ -70,6 +74,7 @@ public class QllResumePo {
JSONObject jsonObject = (JSONObject) jsonArray.get(0); JSONObject jsonObject = (JSONObject) jsonArray.get(0);
String name = jsonObject.getString("name"); String name = jsonObject.getString("name");
String content = jsonObject.getString("content"); String content = jsonObject.getString("content");
new BaseBean().writeLog("千里聆简历附件解析id=" + id + ",jslf=" + jlfj);
HttpResponse response = HttpRequest.get(content).execute(); HttpResponse response = HttpRequest.get(content).execute();
if (response.isOk()) { if (response.isOk()) {
String disposition = response.header("Content-Disposition"); String disposition = response.header("Content-Disposition");
@ -78,7 +83,11 @@ public class QllResumePo {
int imageFileId = RecruitModeUtil.generateImageFileId(inputStream, name); int imageFileId = RecruitModeUtil.generateImageFileId(inputStream, name);
int docId = RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, new User(1)); int docId = RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, new User(1));
resumeId = String.valueOf(docId); resumeId = String.valueOf(docId);
} else {
new BaseBean().writeLog("千里聆附件下载失败,Content-Disposition为空===" + response.body());
} }
} else {
new BaseBean().writeLog("千里聆附件下载失败,URL响应失败");
} }
} catch (Exception e) { } catch (Exception e) {
new BaseBean().writeLog("千里聆附件下载失败", e); new BaseBean().writeLog("千里聆附件下载失败", e);
@ -103,7 +112,6 @@ public class QllResumePo {
if (StringUtils.isBlank(gzjy)) { if (StringUtils.isBlank(gzjy)) {
return null; return null;
} }
;
int parseInt = Integer.parseInt(gzjy); int parseInt = Integer.parseInt(gzjy);
String year = parseInt + ""; String year = parseInt + "";
if (0 == parseInt) { if (0 == parseInt) {
@ -118,4 +126,89 @@ public class QllResumePo {
public String getZgxl() { public String getZgxl() {
return ModeBrowserCommonInfo.getEducationLevelId(zgxl); return ModeBrowserCommonInfo.getEducationLevelId(zgxl);
} }
public List<RecruitDataMap<Object>> getGzjl() {
List<RecruitDataMap<Object>> list = new ArrayList<>();
if (StringUtils.isNotBlank(gzjl)) {
try {
JSONArray jsonArray = JSONArray.parseArray(gzjl);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String gsmc = jsonObject.getString("公司名称:");
String zwmc = jsonObject.getString("职位名称:");
String sj = jsonObject.getString("时间:");
String gznr = jsonObject.getString("工作内容:");
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, false);
map.put("gsmc", gsmc);
map.put("gw", zwmc);
map.put("gzzz", formatStr(gznr));
list.add(map);
}
} catch (Exception e) {
new BaseBean().writeLog("工作经历解析失败", e);
}
}
return list;
}
public List<RecruitDataMap<Object>> getXmjl() {
List<RecruitDataMap<Object>> list = new ArrayList<>();
if (StringUtils.isNotBlank(xmjl)) {
try {
JSONArray jsonArray = JSONArray.parseArray(xmjl);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String xmmc = jsonObject.getString("项目名称:");
//String rzgs = jsonObject.getString("任职公司:");
String sj = jsonObject.getString("时间:");
String xmnr = jsonObject.getString("项目内容:");
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, false);
map.put("xmmc", xmmc);
map.put("xmms", formatStr(xmnr));
list.add(map);
}
} catch (Exception e) {
new BaseBean().writeLog("项目经历解析失败", e);
}
}
return list;
}
public List<RecruitDataMap<Object>> getJyjl() {
List<RecruitDataMap<Object>> list = new ArrayList<>();
if (StringUtils.isNotBlank(jyjl)) {
try {
JSONArray jsonArray = JSONArray.parseArray(jyjl);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String byyx = jsonObject.getString("毕业院校:");
String xl = jsonObject.getString("学历:");
String sj = jsonObject.getString("时间:");
String zy = jsonObject.getString("专业:");
RecruitDataMap<Object> map = CheckRepeatResume.getDateRange(sj, true);
map.put("xxmc", byyx);
map.put("xl", ModeBrowserCommonInfo.getEducationLevelId(xl));
map.put("zy", zy);
list.add(map);
}
} catch (Exception e) {
new BaseBean().writeLog("教育经历解析失败", e);
}
}
return list;
}
public String getYpzw() {
// TODO 如果关联招聘职位
//return ypzw;
return null;
}
private String formatStr(String str) {
if (StringUtils.isBlank(str)) {
return "";
}
return str.replace("\\n", "\n");
}
} }

View File

@ -41,7 +41,10 @@ public class InitRecruitDataServiceImpl extends Service implements InitRecruitDa
rs.executeUpdate("delete from uf_jcl_zpjdsz_dt2;"); rs.executeUpdate("delete from uf_jcl_zpjdsz_dt2;");
rs.executeUpdate("delete from uf_jcl_lcczan;"); rs.executeUpdate("delete from uf_jcl_lcczan;");
// 刷新页面菜单 // 刷新页面菜单
refreshMenuUrl(); rs.executeQuery("select * from hp_nonstandard_function_info where num='163' and name ='招聘管理'");
if (rs.next()) {
refreshMenuUrl();
}
// 插入操作按钮数据 // 插入操作按钮数据
int buttonModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jcl_lcczan"); int buttonModeId = ApplicantCommonInfo.getModeIdByTableName("uf_jcl_lcczan");

View File

@ -1,6 +1,8 @@
package com.engine.recruit.thread; package com.engine.recruit.thread;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSON;
import com.engine.recruit.conn.ApplicantCommonInfo;
import com.engine.recruit.conn.CheckRepeatResume; import com.engine.recruit.conn.CheckRepeatResume;
import com.engine.recruit.conn.PositionCommonInfo; import com.engine.recruit.conn.PositionCommonInfo;
import com.engine.recruit.conn.RecruitDataMap; import com.engine.recruit.conn.RecruitDataMap;
@ -16,6 +18,8 @@ import weaver.common.DateUtil;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.erpa.apps.entity.application.resume.dto.*; import weaver.erpa.apps.entity.application.resume.dto.*;
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
import java.util.ArrayList; import java.util.ArrayList;
@ -49,6 +53,9 @@ public class SdkResumeSavedThread extends LocalRunnable {
* @throws Exception * @throws Exception
*/ */
private void parseResume(ResumeMqMessage resumeMqMessage) throws Exception { private void parseResume(ResumeMqMessage resumeMqMessage) throws Exception {
BaseBean baseBean = new BaseBean();
baseBean.writeLog("千里聆SDK简历开始解析------");
baseBean.writeLog("resumeMqMessage===" + JSON.toJSONString(resumeMqMessage));
String userId = resumeMqMessage.getUserId(); String userId = resumeMqMessage.getUserId();
User user = new User(); User user = new User();
if (StringUtils.isNotBlank(userId)) { if (StringUtils.isNotBlank(userId)) {
@ -83,60 +90,77 @@ public class SdkResumeSavedThread extends LocalRunnable {
params.put("qlljl", resumeId); params.put("qlljl", resumeId);
// 判断是否有发布职位信息如有发布职位信息完善招聘流程信息并指定为待分配状态 // 判断是否有发布职位信息如有发布职位信息完善招聘流程信息并指定为待分配状态
String positionId = PositionCommonInfo.getPositionIdByQll(resumeInfoDto.getJobId()); String positionId = PositionCommonInfo.getPositionIdByQll(resumeInfoDto.getJobId());
String zt = ApplicationStatusEnum.DISTRIBUTION.getValue();
// 应聘职位
if (StringUtils.isNotBlank(positionId)) { if (StringUtils.isNotBlank(positionId)) {
params.put("ypzw", positionId); String flowId = PositionCommonInfo.getRecruitFlowId(positionId);
params.put("zplc", PositionCommonInfo.getRecruitFlowId(positionId)); Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
params.put("zt", ApplicationStatusEnum.CANDIDATE.getValue()); if (null != initialStage) {
} else { String zpjd = initialStage.get("zpjd");
// 状态指定待分配 String dqypjd = initialStage.get("jdlx");
params.put("zt", ApplicationStatusEnum.DISTRIBUTION.getValue()); if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
params.put("ypzw", positionId);
params.put("zplc", flowId);
params.put("zpjd", zpjd);
params.put("dqypjd", dqypjd);
zt = ApplicationStatusEnum.CANDIDATE.getValue();
}
}
} }
// 应聘状态
params.put("zt", zt);
// 判断简历是否重复,插入主表 // 判断简历是否重复,插入主表
int mainId = CheckRepeatResume.getInstance().insertResumeMainTable(params); CheckRepeatResume instance = CheckRepeatResume.getInstance();
Map<String, Object> checkMap = instance.insertResumeAndReturn(params);
String mainId = Util.null2String(checkMap.get("mainId"));
String sourceId = Util.null2String(checkMap.get("sourceId"));
Thread.sleep(1000); Thread.sleep(1000);
if (-1 == mainId) { if ("-1".equals(mainId)) {
return; return;
} }
RecordSet rs = new RecordSet();
// 插入明细表数据 // 插入明细表数据
List<RecruitDataMap<Object>> jyjl = new ArrayList<>();
List<ResumeInfoEducationExperienceDto> educationExperience = resumeInfoDto.getEducationExperience(); List<ResumeInfoEducationExperienceDto> educationExperience = resumeInfoDto.getEducationExperience();
String sql = "insert into uf_jcl_yppc_dt1 (mainId,xxmc,xl,zy,kssj,jssj) values (?,?,?,?,?,?) ";
for (ResumeInfoEducationExperienceDto educationExperienceDto : educationExperience) { for (ResumeInfoEducationExperienceDto educationExperienceDto : educationExperience) {
List<Object> data = new ArrayList<>(); RecruitDataMap<Object> map = new RecruitDataMap<>();
data.add(mainId); map.put("xxmc", educationExperienceDto.getSchoolName());
data.add(educationExperienceDto.getSchoolName()); map.put("xl", HighestDegreeEnum.getDegreeId(educationExperienceDto.getDegree()).getId());
data.add(HighestDegreeEnum.getDegreeId(educationExperienceDto.getDegree()).getId()); map.put("zy", educationExperienceDto.getMajor());
data.add(educationExperienceDto.getMajor()); map.put("kssj", DateUtil.getDate(educationExperienceDto.getBeginTime()));
data.add(DateUtil.getDate(educationExperienceDto.getBeginTime())); map.put("jssj", DateUtil.getDate(educationExperienceDto.getEndTime()));
data.add(DateUtil.getDate(educationExperienceDto.getEndTime())); jyjl.add(map);
rs.executeUpdate(sql, data);
} }
sql = "insert into uf_jcl_yppc_dt2 (mainId,gsmc,gw,gzzz,kssj,jssj) values (?,?,?,?,?,?) "; instance.insertResumeDetailTable(jyjl, "uf_jcl_yppc_dt1", mainId, sourceId);
List<RecruitDataMap<Object>> gzjl = new ArrayList<>();
List<ResumeInfoWorkExperienceDto> workExperience = resumeInfoDto.getWorkExperience(); List<ResumeInfoWorkExperienceDto> workExperience = resumeInfoDto.getWorkExperience();
for (ResumeInfoWorkExperienceDto workExperienceDto : workExperience) { for (ResumeInfoWorkExperienceDto workExperienceDto : workExperience) {
List<Object> data = new ArrayList<>(); RecruitDataMap<Object> map = new RecruitDataMap<>();
data.add(mainId); map.put("gsmc", workExperienceDto.getCompanyName());
data.add(workExperienceDto.getCompanyName()); map.put("gw", workExperienceDto.getJobName());
data.add(workExperienceDto.getJobName()); map.put("gzzz", workExperienceDto.getContent());
data.add(workExperienceDto.getContent()); map.put("kssj", DateUtil.getDate(workExperienceDto.getBeginTime()));
data.add(DateUtil.getDate(workExperienceDto.getBeginTime())); map.put("jssj", DateUtil.getDate(workExperienceDto.getEndTime()));
data.add(DateUtil.getDate(workExperienceDto.getEndTime())); gzjl.add(map);
rs.executeUpdate(sql, data);
} }
sql = "insert into uf_jcl_yppc_dt3 (mainId,xmmc,xmms,kssj,jssj) values (?,?,?,?,?) "; instance.insertResumeDetailTable(gzjl, "uf_jcl_yppc_dt2", mainId, sourceId);
List<RecruitDataMap<Object>> xmjl = new ArrayList<>();
List<ResumeInfoProjectExperienceDto> projectExperience = resumeInfoDto.getProjectExperience(); List<ResumeInfoProjectExperienceDto> projectExperience = resumeInfoDto.getProjectExperience();
for (ResumeInfoProjectExperienceDto projectExperienceDto : projectExperience) { for (ResumeInfoProjectExperienceDto projectExperienceDto : projectExperience) {
List<Object> data = new ArrayList<>(); RecruitDataMap<Object> map = new RecruitDataMap<>();
data.add(mainId); map.put("xmmc", projectExperienceDto.getProjectName());
data.add(projectExperienceDto.getProjectName()); map.put("xmms", projectExperienceDto.getContent());
data.add(projectExperienceDto.getContent()); map.put("kssj", DateUtil.getDate(projectExperienceDto.getBeginTime()));
data.add(DateUtil.getDate(projectExperienceDto.getBeginTime())); map.put("jssj", DateUtil.getDate(projectExperienceDto.getEndTime()));
data.add(DateUtil.getDate(projectExperienceDto.getEndTime())); xmjl.add(map);
rs.executeUpdate(sql, data);
} }
instance.insertResumeDetailTable(xmjl, "uf_jcl_yppc_dt3", mainId, sourceId);
} }
@ -184,14 +208,19 @@ public class SdkResumeSavedThread extends LocalRunnable {
* @return * @return
*/ */
private String convertStreamToE9DocId(Long resumeFileId, User user) { private String convertStreamToE9DocId(Long resumeFileId, User user) {
BaseBean baseBean = new BaseBean();
baseBean.writeLog("解析千里聆SDK原始简历resumeFileId===" + resumeFileId);
List<Integer> docIdList = new ArrayList<>(); List<Integer> docIdList = new ArrayList<>();
ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient(); ERPAResumeSDKClient client = ERPASDKClients.getResumeSDKClient();
client.start(); client.start();
client.downloadResumeFile(resumeFileId, (fileName, stream) -> { client.downloadResumeFile(resumeFileId, (fileName, stream) -> {
try { try {
baseBean.writeLog("解析千里聆SDK原始简历fileName===" + fileName);
int imageFileId = RecruitModeUtil.generateImageFileId(stream, fileName); int imageFileId = RecruitModeUtil.generateImageFileId(stream, fileName);
baseBean.writeLog("解析千里聆SDK原始简历imageFileId===" + imageFileId);
docIdList.add(RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, user)); docIdList.add(RecruitModeUtil.createDocId(SEC_CATEGORY, imageFileId, user));
} catch (Exception e) { } catch (Exception e) {
baseBean.writeLog("解析千里聆SDK原始简历失败", e);
throw new RuntimeException(e); throw new RuntimeException(e);
} }
}); });

View File

@ -1,5 +1,6 @@
package weaver.interfaces.recruit.thread; package weaver.interfaces.recruit.thread;
import com.alibaba.fastjson.JSON;
import com.engine.recruit.conn.*; import com.engine.recruit.conn.*;
import com.engine.recruit.entity.resume.QllResumePo; import com.engine.recruit.entity.resume.QllResumePo;
import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.enums.ApplicationStatusEnum;
@ -8,6 +9,8 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil; import weaver.common.DateUtil;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -28,10 +31,23 @@ public class ExtractQllResumeThread extends Thread {
} }
for (Map<String, Object> map : mapList) { for (Map<String, Object> map : mapList) {
QllResumePo qllResumePo = RecruitUtil.parseMap2Object(map, QllResumePo.class); QllResumePo qllResumePo = RecruitUtil.parseMap2Object(map, QllResumePo.class);
RecruitDataMap<Object> dataMap = buildApplicantMap(qllResumePo); try {
// 校验简历信息并插入 RecruitDataMap<Object> dataMap = buildApplicantMap(qllResumePo);
CheckRepeatResume.getInstance().insertResumeMainTable(dataMap); // 校验简历信息并插入
rs.executeUpdate("update uf_jcl_jlzjb set cqzt = 1 where id = ? ", qllResumePo.getId()); CheckRepeatResume instance = CheckRepeatResume.getInstance();
Map<String, Object> checkMap = instance.insertResumeAndReturn(dataMap);
String mainId = Util.null2String(checkMap.get("mainId"));
String sourceId = Util.null2String(checkMap.get("sourceId"));
rs.executeUpdate("update uf_jcl_jlzjb set cqzt = 1 where id = ? ", qllResumePo.getId());
// 插入明细表数据
instance.insertResumeDetailTable(qllResumePo.getJyjl(), "uf_jcl_yppc_dt1", mainId, sourceId);
instance.insertResumeDetailTable(qllResumePo.getGzjl(), "uf_jcl_yppc_dt2", mainId, sourceId);
instance.insertResumeDetailTable(qllResumePo.getXmjl(), "uf_jcl_yppc_dt3", mainId, sourceId);
} catch (Exception e) {
new BaseBean().writeLog("简历解析失败" + JSON.toJSONString(qllResumePo), e);
}
} }
} }
@ -45,24 +61,24 @@ public class ExtractQllResumeThread extends Thread {
RecruitDataMap<Object> insertMap = new RecruitDataMap<>(); RecruitDataMap<Object> insertMap = new RecruitDataMap<>();
// 姓名 // 姓名
insertMap.put("xm", qllResumePo.getXm()); insertMap.put("xm", qllResumePo.getXm());
// 简历来源
insertMap.put("jlly", qllResumePo.getLyqd());
// 电子邮箱
insertMap.put("dzyx", qllResumePo.getYx());
// 手机号码
insertMap.put("sjhm", qllResumePo.getSjhm());
// 年龄
insertMap.put("nl", qllResumePo.getNl());
// 性别 // 性别
insertMap.put("xb", qllResumePo.getXb()); insertMap.put("xb", qllResumePo.getXb());
// 年龄
insertMap.put("nl", qllResumePo.getNl());
// 工作经验 // 工作经验
insertMap.put("gzjy", qllResumePo.getGzjy()); insertMap.put("gzjy", qllResumePo.getGzjy());
// 最高学历 // 手机号码
insertMap.put("zgxl", qllResumePo.getZgxl()); insertMap.put("sjhm", qllResumePo.getSjhm());
// 投递时间 // 电子邮箱
insertMap.put("tdsj", DateUtil.getDateTime()); insertMap.put("dzyx", qllResumePo.getYx());
// 自我评价 // 自我评价
insertMap.put("zwpj", qllResumePo.getGrys()); insertMap.put("zwpj", qllResumePo.getGrys());
// 最高学历
insertMap.put("zgxl", qllResumePo.getZgxl());
// 简历来源
insertMap.put("jlly", qllResumePo.getLyqd());
// 投递时间
insertMap.put("tdsj", DateUtil.getDateTime());
// 原始简历 // 原始简历
insertMap.put("ysjl", qllResumePo.getJlfj()); insertMap.put("ysjl", qllResumePo.getJlfj());