weaver-hrm-recruit/src/com/engine/jc/service/impl/JcRecruitInfoCollectService...

248 lines
9.6 KiB
Java
Raw Normal View History

2024-07-29 11:10:46 +08:00
package com.engine.jc.service.impl;
import cn.hutool.core.convert.Convert;
import com.engine.core.impl.Service;
import com.engine.jc.service.JcRecruitInfoCollectService;
import com.engine.recruit.conn.ModeBrowserCommonInfo;
import com.engine.recruit.conn.RecruitDataMap;
import com.engine.recruit.conn.RecruitRecordSet;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import java.time.LocalDate;
import java.time.Period;
import java.util.List;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2024/07/22
* @version: 1.0
*/
public class JcRecruitInfoCollectServiceImpl extends Service implements JcRecruitInfoCollectService {
private String mainTableName = "edc_uf_table92";
private String workDetailTableName = "edc_uf_table92_dt1";
private String educationDetailTableName = "edc_uf_table92_dt2";
@Override
public String getCandidateName(Map<String, Object> params) {
int candidateId = Convert.toInt(params.get("candidateId"), 0);
String candidateName = "";
if (candidateId == 0) {
return candidateName;
}
RecordSet rs = new RecordSet();
rs.executeQuery("select xm from uf_jcl_yppc where id = ? ", candidateId);
if (rs.next()) {
candidateName = rs.getString("xm");
}
return candidateName;
}
@Override
public Map<String, Object> updateApplicantsInfo(Map<String, Object> params) {
// 应聘者ID
int candidateId = Convert.toInt(params.get("candidateId"), 0);
// 面试ID
int interviewId = Convert.toInt(params.get("interviewId"), 0);
// 数据中心数据ID
int dataId = Convert.toInt(params.get("dataId"), 0);
RecordSet rs = new RecordSet();
rs.executeQuery("select * from " + mainTableName + " where id = ? ", dataId);
Map<String, Object> mainDataMap = RecruitRecordSet.getSingleRecordMap(rs);
// 更新应聘者信息
RecruitDataMap<Object> applicantDataMap = new RecruitDataMap<>();
applicantDataMap.put("id", candidateId);
// 姓名
applicantDataMap.put("xm", mainDataMap.get("field003"));
// 手机号码
applicantDataMap.put("sjhm", mainDataMap.get("field005"));
// 现税前月薪K
applicantDataMap.put("xsqyxk", mainDataMap.get("field006"));
// 出生日期
applicantDataMap.put("csrq", mainDataMap.get("field007"));
// 年龄 根据出生日期计算
applicantDataMap.put("nl", ageCalculator(Util.null2String(mainDataMap.get("field007"))));
// 性别
applicantDataMap.put("xb", mainDataMap.get("field008"));
// 身份证号
applicantDataMap.put("sfz", mainDataMap.get("field009"));
// 民族
applicantDataMap.put("mz", mainDataMap.get("field010"));
// 政治面貌
applicantDataMap.put("zzmm", getPoliticalLandscape(Util.null2String(mainDataMap.get("field011"))));
// 职称/证书
applicantDataMap.put("zczs", mainDataMap.get("field012"));
// 简历照片
applicantDataMap.put("jlzp", mainDataMap.get("field013"));
// 婚姻状况
applicantDataMap.put("hyzk", getMaritalStatus(Util.null2String(mainDataMap.get("field014"))));
// 最高学历 转换为浏览按钮对应的值
applicantDataMap.put("zgxl", getEducationLevelId(Util.null2String(mainDataMap.get("field015"))));
// 现居住地
applicantDataMap.put("xjzd", mainDataMap.get("field016"));
// 户口性质
applicantDataMap.put("hkxz", getSelectValueByName(rs, "hkxz", Util.null2String(mainDataMap.get("field016"))));
// 户籍所在地
applicantDataMap.put("hjszd", mainDataMap.get("field018"));
// 电子邮箱
applicantDataMap.put("dzyx", mainDataMap.get("field019"));
// 英文水平
applicantDataMap.put("ywsp", getSelectValueByName(rs, "ywsp", Util.null2String(mainDataMap.get("field020"))));
// 是否可配合出差、加班及关联企业调派
applicantDataMap.put("sfkphccjbjglqydp", getSelectValueByName(rs, "sfkphccjbjglqydp", Util.null2String(mainDataMap.get("field021"))));
// 过去五年是否有与就业有关的争议
applicantDataMap.put("gqwnsfyyjyygdzy", getSelectValueByName(rs, "gqwnsfyyjyygdzy", Util.null2String(mainDataMap.get("field022"))));
// 是否有竞业限制及保密协议
applicantDataMap.put("sfyjyxzjbmxy", getSelectValueByName(rs, "sfyjyxzjbmxy", Util.null2String(mainDataMap.get("field023"))));
// 是否存在疾病、有无疾病史
applicantDataMap.put("sfczjbywjbs", getSelectValueByName(rs, "sfczjbywjbs", Util.null2String(mainDataMap.get("field024"))));
// 是否患过职业病或工伤?
applicantDataMap.put("sfhgzybhgs", getSelectValueByName(rs, "sfhgzybhgs", Util.null2String(mainDataMap.get("field025"))));
RecruitRecordSet.updateDataById(applicantDataMap, "uf_jcl_yppc");
// 插入工作经历明细表
rs.executeQuery("select * from " + workDetailTableName + " where mainid = ? ", dataId);
List<Map<String, Object>> workDetailDataList = RecruitRecordSet.getRecordMapList(rs);
if (CollectionUtils.isNotEmpty(workDetailDataList)) {
for (Map<String, Object> item : workDetailDataList) {
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
insertDataMap.put("mainid", dataId);
// 公司名称
insertDataMap.put("gsmc", item.get("field002"));
// 开始时间
insertDataMap.put("kssj", item.get("field008"));
// 结束时间
insertDataMap.put("jssj", item.get("field009"));
// 岗位
insertDataMap.put("gw", item.get("field003"));
// 工作职责
// insertDataMap.put("gzzz", item.get("jssj"));
// 税前月薪k
insertDataMap.put("sqyxk", item.get("field004"));
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt2");
}
}
// 插入教育经历明细表
rs.executeQuery("select * from " + educationDetailTableName + " where mainid = ? ", dataId);
List<Map<String, Object>> educationDetailDataList = RecruitRecordSet.getRecordMapList(rs);
if (CollectionUtils.isNotEmpty(educationDetailDataList)) {
for (Map<String, Object> item : educationDetailDataList) {
RecruitDataMap<Object> insertDataMap = new RecruitDataMap<>();
insertDataMap.put("mainid", dataId);
// 学校名称
insertDataMap.put("xxmc", item.get("field002"));
// 学历
insertDataMap.put("xl", getEducationLevelId(Util.null2String(item.get("field005"))));
// 专业
insertDataMap.put("zy", item.get("field003"));
// 开始时间
insertDataMap.put("kssj", item.get("field007"));
// 结束时间
insertDataMap.put("jssj", item.get("field008"));
RecruitRecordSet.insertData(insertDataMap, "uf_jcl_yppc_dt1");
}
}
// 更新面试表信息
RecruitDataMap<Object> interviewInfoMap = new RecruitDataMap<>();
interviewInfoMap.put("id", interviewId);
// 手机号码
interviewInfoMap.put("sjhm", applicantDataMap.get("sjhm"));
// 电子邮箱
interviewInfoMap.put("dzyx", applicantDataMap.get("dzyx"));
RecruitRecordSet.updateDataById(interviewInfoMap, "uf_jcl_ms");
return null;
}
/**
* 计算年龄
*
* @param birthDateStr
* @return
*/
private Integer ageCalculator(String birthDateStr) {
if (StringUtils.isBlank(birthDateStr)) {
return null;
}
// 获取当前日期
LocalDate today = LocalDate.now();
LocalDate birthDate = LocalDate.parse(birthDateStr);
// 计算年龄
Period age = Period.between(birthDate, today);
return age.getYears();
}
/**
* 获取学历
*
* @param name
* @return
*/
private String getEducationLevelId(String name) {
if ("小学".equals(name)) {
name = "其他";
}
return ModeBrowserCommonInfo.getEducationLevelId(name);
}
/**
* 获取下拉框值
*
* @param rs
* @param fieldName
* @param selectName
* @return
*/
private String getSelectValueByName(RecordSet rs, String fieldName, String selectName) {
rs.executeQuery("select selectvalue from workflow_selectitem where fieldid = ( select id from workflow_billfield where FIELDNAME = ? and BILLID =( select id from workflow_bill where tablename = 'uf_jcl_yppc')) and SELECTNAME = ? ", fieldName, selectName);
if (rs.next()) {
return rs.getString("selectvalue");
}
return null;
}
/**
* 获取婚姻状况
*
* @param name
* @return
*/
private String getMaritalStatus(String name) {
if (StringUtils.isBlank(name)) {
return null;
}
if (!"未婚".equals(name)) {
name = "已婚";
}
return ModeBrowserCommonInfo.getBrowserId(ModeBrowserCommonInfo.TYPE_MARITAL_STATUS, name);
}
/**
* 获取政治面貌
*
* @param name
* @return
*/
private String getPoliticalLandscape(String name) {
return ModeBrowserCommonInfo.getBrowserId(ModeBrowserCommonInfo.TYPE_POLITICAL_LANDSCAPE, name);
}
}