weaver-hrm-recruit/src/weaver/interfaces/recruit/thread/ExtractQllResumeThread.java

111 lines
4.3 KiB
Java
Raw Normal View History

package weaver.interfaces.recruit.thread;
import com.alibaba.fastjson.JSON;
import com.engine.recruit.conn.*;
import com.engine.recruit.entity.resume.QllResumePo;
import com.engine.recruit.enums.ApplicationStatusEnum;
import com.engine.recruit.util.RecruitUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.Util;
import java.util.List;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2023/11/10
* @version: 1.0
*/
public class ExtractQllResumeThread extends Thread {
@Override
public void run() {
RecordSet rs = new RecordSet();
rs.executeQuery("select id,xm,xb,nl,gzjy,xjzd,sjhm,yx,ypzw,grys,qzyx,gzjl,xmjl,jyjl,zgxl,zyjn,yynl,zs,jlfj,rksj,tdsj,lyqd,gjrsjh from uf_jcl_jlzjb where ocr is null and cqzt is null order by modedatacreatedate, modedatacreatetime");
List<Map<String, Object>> mapList = RecruitRecordSet.getRecordMapList(rs);
if (CollectionUtils.isEmpty(mapList)) {
return;
}
for (Map<String, Object> map : mapList) {
QllResumePo qllResumePo = RecruitUtil.parseMap2Object(map, QllResumePo.class);
try {
RecruitDataMap<Object> dataMap = buildApplicantMap(qllResumePo);
// 校验简历信息、并插入
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);
}
}
}
/**
* 构建应聘者数据集合
*
* @param qllResumePo
* @return
*/
private RecruitDataMap<Object> buildApplicantMap(QllResumePo qllResumePo) {
RecruitDataMap<Object> insertMap = new RecruitDataMap<>();
// 姓名
insertMap.put("xm", qllResumePo.getXm());
// 性别
insertMap.put("xb", qllResumePo.getXb());
// 年龄
insertMap.put("nl", qllResumePo.getNl());
// 工作经验
insertMap.put("gzjy", qllResumePo.getGzjy());
// 手机号码
insertMap.put("sjhm", qllResumePo.getSjhm());
// 电子邮箱
insertMap.put("dzyx", qllResumePo.getYx());
// 自我评价
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());
String zt = ApplicationStatusEnum.DISTRIBUTION.getValue();
// 应聘职位
String ypzw = qllResumePo.getYpzw();
if (StringUtils.isNotBlank(ypzw)) {
String flowId = PositionCommonInfo.getRecruitFlowId(ypzw);
Map<String, String> initialStage = ApplicantCommonInfo.getInitialStage(flowId);
if (null != initialStage) {
2023-11-20 18:33:57 +08:00
String zpjd = initialStage.get("zpjd");
String dqypjd = initialStage.get("jdlx");
if (StringUtils.isNotBlank(zpjd) && StringUtils.isNotBlank(dqypjd)) {
insertMap.put("ypzw", ypzw);
insertMap.put("zplc", flowId);
insertMap.put("zpjd", zpjd);
insertMap.put("dqypjd", dqypjd);
zt = ApplicationStatusEnum.CANDIDATE.getValue();
}
}
}
// 应聘状态
insertMap.put("zt", zt);
return insertMap;
}
}