2023-12-15 17:11:31 +08:00
|
|
|
|
package com.engine.resumestorage.service.impl;
|
|
|
|
|
|
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import cn.hutool.core.convert.Convert;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
import com.engine.core.exception.ECException;
|
|
|
|
|
|
import com.engine.core.impl.Service;
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import com.engine.recruit.conn.CheckRepeatResume;
|
|
|
|
|
|
import com.engine.recruit.conn.ModeBrowserCommonInfo;
|
|
|
|
|
|
import com.engine.recruit.conn.RecruitDataMap;
|
|
|
|
|
|
import com.engine.recruit.conn.RecruitRecordSet;
|
|
|
|
|
|
import com.engine.recruit.enums.ApplicationStatusEnum;
|
|
|
|
|
|
import com.engine.recruit.exception.CustomizeRunTimeException;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
import com.engine.resumestorage.service.ResumeIdentifyService;
|
|
|
|
|
|
import com.engine.resumestorage.util.ParseResumeQliUtil;
|
|
|
|
|
|
import com.engine.resumestorage.util.Sql;
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import com.weaver.formmodel.data.model.Formfield;
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import weaver.conn.RecordSet;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
import weaver.conn.RecordSetTrans;
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
import weaver.formmode.setup.ModeRightInfo;
|
|
|
|
|
|
import weaver.general.BaseBean;
|
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
|
import weaver.integration.logging.Logger;
|
|
|
|
|
|
import weaver.integration.logging.LoggerFactory;
|
|
|
|
|
|
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import java.text.DateFormat;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
2024-05-29 15:07:39 +08:00
|
|
|
|
import java.util.*;
|
2024-06-04 17:17:37 +08:00
|
|
|
|
import java.util.function.Function;
|
|
|
|
|
|
import java.util.stream.Collectors;
|
2024-05-29 15:07:39 +08:00
|
|
|
|
|
2023-12-15 17:11:31 +08:00
|
|
|
|
public class ResumeIdentifyServiceImpl extends Service implements ResumeIdentifyService {
|
|
|
|
|
|
private final Logger log = LoggerFactory.getLogger(ResumeIdentifyService.class);
|
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
|
String formmodeid_tmp;
|
|
|
|
|
|
String sfsymr;
|
|
|
|
|
|
|
|
|
|
|
|
public ResumeIdentifyServiceImpl() {
|
|
|
|
|
|
this.formmodeid_tmp = this.bb.getPropValue("resume_qianliling", "model.id");
|
|
|
|
|
|
this.sfsymr = this.bb.getPropValue("resume_qianliling", "sfsymr");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 15:07:39 +08:00
|
|
|
|
@Override
|
2023-12-15 17:11:31 +08:00
|
|
|
|
public int saveResumeByImageFileId(int imageFileId) throws Exception {
|
2024-06-04 17:17:37 +08:00
|
|
|
|
if(user==null){
|
|
|
|
|
|
throw new CustomizeRunTimeException("--------------------");
|
|
|
|
|
|
}
|
2023-12-15 17:11:31 +08:00
|
|
|
|
String response = ParseResumeQliUtil.doParseHostPost(imageFileId);
|
|
|
|
|
|
this.log.info("千里聆接口返回值:" + response);
|
|
|
|
|
|
if (response.length() == 0) {
|
2024-05-29 15:07:39 +08:00
|
|
|
|
this.log.info("调用千里聆接口失败,返回值为空");
|
|
|
|
|
|
throw new Exception("调用千里聆接口失败,返回值为空");
|
2023-12-15 17:11:31 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
JSONObject all = JSONObject.parseObject(response);
|
|
|
|
|
|
if (!all.getBoolean("isSuccess")) {
|
2024-05-29 15:07:39 +08:00
|
|
|
|
this.log.info("调用千里聆接口失败,接口不通");
|
|
|
|
|
|
throw new Exception("调用千里聆接口失败,接口不通");
|
2023-12-15 17:11:31 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
JSONObject resultall = all.getJSONObject("data");
|
|
|
|
|
|
String status = resultall.getString("state");
|
|
|
|
|
|
if ("fail".equals(status)) {
|
2024-05-29 15:07:39 +08:00
|
|
|
|
this.log.info("调用千里聆接口失败,失败原因:" + resultall.getString("info"));
|
|
|
|
|
|
throw new Exception("调用千里聆接口失败,失败原因:" + resultall.getString("info"));
|
2023-12-15 17:11:31 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
JSONObject result = resultall.getJSONObject("result");
|
2024-06-04 17:17:37 +08:00
|
|
|
|
Map<String, Object> resumeData = this.parseQllJsonToMapV2(result, false);
|
|
|
|
|
|
// 添加原始附件字段信息
|
|
|
|
|
|
int secCategory = Convert.toInt(RecruitModeUtil.getRecruitPropValue("APPLICANTS_RESUMES_CATEGORY"));;
|
|
|
|
|
|
try {
|
|
|
|
|
|
int docId = RecruitModeUtil.createDocId(secCategory, imageFileId, user);
|
|
|
|
|
|
resumeData.put("ysjl", docId);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
new BaseBean().writeLog(e);
|
|
|
|
|
|
throw new RuntimeException(e);
|
|
|
|
|
|
}
|
|
|
|
|
|
List<RecruitDataMap<Object>> studyList = (List<RecruitDataMap<Object>>) resumeData.remove("jyjl");
|
|
|
|
|
|
List<RecruitDataMap<Object>> workList = (List<RecruitDataMap<Object>>) resumeData.remove("gzjl");
|
|
|
|
|
|
List<RecruitDataMap<Object>> projectList = (List<RecruitDataMap<Object>>) resumeData.remove("xmjy");
|
|
|
|
|
|
|
|
|
|
|
|
// 状态
|
|
|
|
|
|
resumeData.put("zt", ApplicationStatusEnum.DISTRIBUTION.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
List<Formfield> fieldList = RecruitModeUtil.getFieldList("uf_jcl_yppc");
|
|
|
|
|
|
Set<String> keySet = fieldList.stream().map(Formfield::getFieldname).collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
|
|
// 移除不在 keySet 中的键值对
|
|
|
|
|
|
resumeData.entrySet().removeIf(entry -> !keySet.contains(entry.getKey()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 判断简历信息
|
|
|
|
|
|
CheckRepeatResume instance = CheckRepeatResume.getInstance();
|
|
|
|
|
|
Map<String, Object> map = instance.insertResumeAndReturn(resumeData);
|
|
|
|
|
|
String mainId = Util.null2String(map.get("mainId"));
|
|
|
|
|
|
String sourceId = Util.null2String(map.get("sourceId"));
|
|
|
|
|
|
|
|
|
|
|
|
String id = StringUtils.isNotBlank(sourceId) ? sourceId : mainId;
|
|
|
|
|
|
instance.insertResumeDetailTable(studyList, "uf_jcl_yppc_dt1", mainId, sourceId);
|
|
|
|
|
|
instance.insertResumeDetailTable(workList, "uf_jcl_yppc_dt2", mainId, sourceId);
|
|
|
|
|
|
instance.insertResumeDetailTable(projectList, "uf_jcl_yppc_dt3", mainId, sourceId);
|
|
|
|
|
|
return Integer.parseInt(id);
|
2023-12-15 17:11:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 15:07:39 +08:00
|
|
|
|
@Override
|
2023-12-15 17:11:31 +08:00
|
|
|
|
public int saveResumeInDB(Map<String, String> fields) throws Exception {
|
|
|
|
|
|
String tablename = "uf_jg_rmk";
|
|
|
|
|
|
if ("1".equals(this.sfsymr)) {
|
|
|
|
|
|
tablename = this.bb.getPropValue("resume_qianliling", "jlk.tablename");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
RecordSetTrans rst = new RecordSetTrans();
|
|
|
|
|
|
rst.setAutoCommit(false);
|
|
|
|
|
|
List<String> field = new ArrayList();
|
|
|
|
|
|
List<String> value1 = new ArrayList();
|
|
|
|
|
|
List<String> value = new ArrayList();
|
|
|
|
|
|
fields.forEach((key, v) -> {
|
|
|
|
|
|
if (StringUtils.isNotEmpty(v)) {
|
|
|
|
|
|
field.add(key);
|
|
|
|
|
|
value.add(v);
|
|
|
|
|
|
value1.add("?");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
String sql = "insert into " + tablename + "(" + String.join(",", field) + ") values(" + String.join(",", value1) + ")";
|
|
|
|
|
|
this.log.error("test--------------------");
|
|
|
|
|
|
this.log.error(sql);
|
|
|
|
|
|
this.log.error("test--------------------");
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
boolean flag = rst.executeUpdate(sql, new Object[]{value});
|
|
|
|
|
|
rst.commit();
|
|
|
|
|
|
if (flag) {
|
|
|
|
|
|
String idSql = "SELECT max(id) as mid from " + tablename;
|
|
|
|
|
|
String id = Sql.querySingleField(idSql, "mid");
|
|
|
|
|
|
this.permissionReconstruction(Util.getIntValue(id));
|
|
|
|
|
|
return Integer.parseInt(id);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
return -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception var11) {
|
|
|
|
|
|
var11.printStackTrace();
|
|
|
|
|
|
rst.rollback();
|
|
|
|
|
|
this.log.error(var11);
|
|
|
|
|
|
throw new ECException("简历更新失败");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 17:17:37 +08:00
|
|
|
|
private Map<String, Object> parseQllJsonToMapV2(JSONObject obj, boolean isCard) {
|
|
|
|
|
|
new BaseBean().writeLog(obj.toJSONString());
|
|
|
|
|
|
Map<String, Object> dataMap = new HashMap<>(16);
|
|
|
|
|
|
JSONObject personalInformation = obj.getJSONObject("个人信息");
|
|
|
|
|
|
// 投递时间
|
|
|
|
|
|
dataMap.put("tdsj", weaver.common.DateUtil.getDateTime());
|
|
|
|
|
|
// 姓名
|
|
|
|
|
|
String xm = personalInformation.getString("姓名");
|
|
|
|
|
|
dataMap.put("xm", xm);
|
|
|
|
|
|
// 电子邮箱
|
|
|
|
|
|
String dzyx = personalInformation.getString("电子邮箱");
|
|
|
|
|
|
dataMap.put("dzyx", dzyx);
|
|
|
|
|
|
// 手机号码
|
|
|
|
|
|
String sjhm = personalInformation.getString("手机号");
|
|
|
|
|
|
dataMap.put("sjhm", sjhm);
|
|
|
|
|
|
// 年龄
|
|
|
|
|
|
String nl = personalInformation.getString("年龄");
|
|
|
|
|
|
dataMap.put("nl", nl);
|
|
|
|
|
|
// 出生日期
|
|
|
|
|
|
String csrq = personalInformation.getString("出生日期");
|
|
|
|
|
|
dataMap.put("csrq", parseDateObject(csrq));
|
|
|
|
|
|
// 性别 默认为男
|
|
|
|
|
|
String xb = "女".equals(personalInformation.getString("性别")) ? "1" : "0";
|
|
|
|
|
|
dataMap.put("xb", xb);
|
|
|
|
|
|
// 体重(KG)
|
|
|
|
|
|
String tz = personalInformation.getString("体重");
|
|
|
|
|
|
dataMap.put("tzkg", Convert.toDouble(tz));
|
|
|
|
|
|
// 身高(CM)
|
|
|
|
|
|
String sg = personalInformation.getString("身高");
|
|
|
|
|
|
dataMap.put("sgcm", Convert.toDouble(sg));
|
|
|
|
|
|
// 籍贯(字段类型不支持)
|
|
|
|
|
|
String jg = personalInformation.getString("籍贯");
|
|
|
|
|
|
//dataMap.put("jg", parseArray(obj.getJSONArray("籍贯")));
|
|
|
|
|
|
// 婚姻状况
|
|
|
|
|
|
List<Map<String, String>> hyzk = getBrowserArray(personalInformation.getString("婚姻状况"), ModeBrowserCommonInfo.TYPE_MARITAL_STATUS);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(hyzk)) {
|
|
|
|
|
|
dataMap.put("hyzk", hyzk);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("hyzk", hyzk.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 当前所在地(字段类型不支持)
|
|
|
|
|
|
String jdz = personalInformation.getString("现居住地");
|
|
|
|
|
|
//dataMap.put("jzd", parseArray(obj.getJSONArray("现居住地")));
|
|
|
|
|
|
// 政治面貌
|
|
|
|
|
|
List<Map<String, String>> zzmm = getBrowserArray(personalInformation.getString("政治面貌"), ModeBrowserCommonInfo.TYPE_POLITICAL_LANDSCAPE);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(zzmm)) {
|
|
|
|
|
|
dataMap.put("zzmm", zzmm);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("zzmm", zzmm.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 在职状态
|
|
|
|
|
|
List<Map<String, String>> zzzt = getBrowserArray(personalInformation.getString("在职状态"), ModeBrowserCommonInfo.TYPE_ON_THE_JOB_STATUS);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(zzzt)) {
|
|
|
|
|
|
dataMap.put("zzzt", zzzt);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("zzzt", zzzt.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 工作经验
|
|
|
|
|
|
String gzjyStr = personalInformation.getString("工作经验");
|
|
|
|
|
|
if (gzjyStr.contains("到")) {
|
|
|
|
|
|
String[] split = gzjyStr.split("到");
|
|
|
|
|
|
if (split.length == 2) {
|
|
|
|
|
|
gzjyStr = split[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
List<Map<String, String>> gzjy = getBrowserArray(gzjyStr, ModeBrowserCommonInfo.TYPE_WORK_EXPERIENCE);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(gzjy)) {
|
|
|
|
|
|
dataMap.put("gzjy", gzjy);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("gzjy", gzjy.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 最高学位
|
|
|
|
|
|
List<Map<String, String>> zgxw = getBrowserArray(personalInformation.getString("最高学位"), ModeBrowserCommonInfo.TYPE_DEGREE);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(zgxw)) {
|
|
|
|
|
|
dataMap.put("zgxw", zgxw);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("zgxw", zgxw.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 最高学历
|
|
|
|
|
|
String highestEduLevel = personalInformation.getString("最高学历");
|
|
|
|
|
|
List<Map<String, String>> zgxl = getBrowserArray(highestEduLevel, this::getEducationLevelArray);
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(zgxl)) {
|
|
|
|
|
|
dataMap.put("zgxl", zgxl);
|
|
|
|
|
|
if (!isCard) {
|
|
|
|
|
|
dataMap.put("zgxl", zgxl.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 毕业院校
|
|
|
|
|
|
String byyx = personalInformation.getString("毕业院校");
|
|
|
|
|
|
dataMap.put("byyx", byyx);
|
|
|
|
|
|
// 现税前月薪(K)
|
|
|
|
|
|
// 自我评价
|
|
|
|
|
|
String zwpj = personalInformation.getString("个人评价");
|
|
|
|
|
|
dataMap.put("zwpj", zwpj);
|
|
|
|
|
|
// 民族
|
|
|
|
|
|
dataMap.put("mz", personalInformation.getString("民族"));
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject jobSearchInformation = obj.getJSONObject("求职信息");
|
|
|
|
|
|
// 期望税前月薪(K)
|
|
|
|
|
|
String qwxz = jobSearchInformation.getString("期望薪资");
|
|
|
|
|
|
dataMap.put("qwxz", qwxz);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 明细表数据
|
|
|
|
|
|
// 教育经历
|
|
|
|
|
|
JSONArray jyjl = obj.getJSONArray("学业信息");
|
|
|
|
|
|
List<RecruitDataMap<Object>> studyList = new ArrayList<>();
|
|
|
|
|
|
if (null != jyjl && jyjl.size() > 0) {
|
|
|
|
|
|
for (int i = 0; i < jyjl.size(); i++) {
|
|
|
|
|
|
JSONObject o = (JSONObject) jyjl.get(i);
|
|
|
|
|
|
String studyDate = o.getString("就读时期");
|
|
|
|
|
|
RecruitDataMap<Object> studyMap = new RecruitDataMap<>();
|
|
|
|
|
|
studyMap.putAll(getDateRange(studyDate, true));
|
|
|
|
|
|
String schoolName = o.getString("学校名称");
|
|
|
|
|
|
studyMap.put("xxmc", schoolName);
|
|
|
|
|
|
String educationLevel = o.getString("学历");
|
|
|
|
|
|
List<Map<String, String>> xl = getBrowserArray(educationLevel, this::getEducationLevelArray);
|
|
|
|
|
|
studyMap.put("xl", xl);
|
|
|
|
|
|
if (!isCard && CollectionUtils.isNotEmpty(xl)) {
|
|
|
|
|
|
studyMap.put("xl", xl.stream().map(item -> item.get("id")).collect(Collectors.joining(",")));
|
|
|
|
|
|
}
|
|
|
|
|
|
String professionalName = o.getString("专业名称");
|
|
|
|
|
|
studyMap.put("zy", professionalName);
|
|
|
|
|
|
// 主表 专业字段
|
|
|
|
|
|
if (byyx.equals(schoolName) && highestEduLevel.equals(educationLevel)) {
|
|
|
|
|
|
dataMap.put("zy", professionalName);
|
|
|
|
|
|
}
|
|
|
|
|
|
studyList.add(studyMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
dataMap.put("jyjl", studyList);
|
|
|
|
|
|
|
|
|
|
|
|
// 工作经历
|
|
|
|
|
|
JSONArray gzjl = obj.getJSONArray("工作经历");
|
|
|
|
|
|
List<RecruitDataMap<Object>> workList = new ArrayList<>();
|
|
|
|
|
|
if (null != gzjl && gzjl.size() > 0) {
|
|
|
|
|
|
for (int i = 0; i < gzjl.size(); i++) {
|
|
|
|
|
|
JSONObject o = (JSONObject) gzjl.get(i);
|
|
|
|
|
|
String workDate = o.getString("工作时间");
|
|
|
|
|
|
RecruitDataMap<Object> workMap = new RecruitDataMap<>();
|
|
|
|
|
|
workMap.putAll(getDateRange(workDate, false));
|
|
|
|
|
|
workMap.put("gsmc", o.getString("工作单位"));
|
|
|
|
|
|
workMap.put("gw", o.getString("岗位名称"));
|
|
|
|
|
|
workMap.put("gzzz", o.getString("工作内容"));
|
|
|
|
|
|
workList.add(workMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dataMap.put("gzjl", workList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 项目经验
|
|
|
|
|
|
JSONArray xmjy = obj.getJSONArray("项目经验");
|
|
|
|
|
|
List<RecruitDataMap<Object>> projectList = new ArrayList<>();
|
|
|
|
|
|
if (null != xmjy && xmjy.size() > 0) {
|
|
|
|
|
|
for (int i = 0; i < xmjy.size(); i++) {
|
|
|
|
|
|
JSONObject o = (JSONObject) xmjy.get(i);
|
|
|
|
|
|
String startDate = getFormatDate(o.getString("开始时间"));
|
|
|
|
|
|
String endDate = getFormatDate(o.getString("结束时间"));
|
|
|
|
|
|
RecruitDataMap<Object> projectMap = new RecruitDataMap<>();
|
|
|
|
|
|
projectMap.put("kssj",startDate);
|
|
|
|
|
|
projectMap.put("jssj",endDate);
|
|
|
|
|
|
projectMap.put("xmmc", o.getString("项目名称"));
|
|
|
|
|
|
projectMap.put("drjs", o.getString("担任角色"));
|
|
|
|
|
|
projectMap.put("xmms", o.getString("项目描述"));
|
|
|
|
|
|
projectList.add(projectMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dataMap.put("xmjy", projectList);
|
|
|
|
|
|
|
|
|
|
|
|
return dataMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 转换日期对象
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param value
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String parseDateObject(String value) {
|
|
|
|
|
|
if (StringUtils.isBlank(value)) {
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
value = value.replace(".", "-");
|
|
|
|
|
|
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
sdf.setLenient(false);
|
|
|
|
|
|
try {
|
|
|
|
|
|
sdf.parse(value);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
new BaseBean().writeLog("日期格式化失败", e);
|
|
|
|
|
|
value = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 构建浏览按钮字段信息格式
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param text
|
|
|
|
|
|
* @param fun
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private List<Map<String, String>> getBrowserArray(String text, Function<String, Map<String, String>> fun) {
|
|
|
|
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
|
|
|
|
if (StringUtils.isNotBlank(text)) {
|
|
|
|
|
|
String[] split = text.split(",");
|
|
|
|
|
|
for (String s : split) {
|
|
|
|
|
|
Map<String, String> apply = fun.apply(s);
|
|
|
|
|
|
list.add(apply);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 构建浏览按钮字段信息格式
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param text
|
|
|
|
|
|
* @param browserType
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private List<Map<String, String>> getBrowserArray(String text, String browserType) {
|
|
|
|
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
|
|
|
|
if (StringUtils.isNotBlank(text)) {
|
|
|
|
|
|
String[] split = text.split(",");
|
|
|
|
|
|
for (String s : split) {
|
|
|
|
|
|
Map<String, String> map = new HashMap<>(2);
|
|
|
|
|
|
if (StringUtils.isNotBlank(text)) {
|
|
|
|
|
|
String id = ModeBrowserCommonInfo.getBrowserId(browserType, text);
|
|
|
|
|
|
if (StringUtils.isNotBlank(id)) {
|
|
|
|
|
|
map.put("id", id);
|
|
|
|
|
|
map.put("name", text);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
list.add(map);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 构建学历字段信息
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param text
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Map<String, String> getEducationLevelArray(String text) {
|
|
|
|
|
|
Map<String, String> map = new HashMap<>(2);
|
|
|
|
|
|
if (StringUtils.isNotBlank(text)) {
|
|
|
|
|
|
String id = ModeBrowserCommonInfo.getEducationLevelId(text);
|
|
|
|
|
|
if (StringUtils.isNotBlank(id)) {
|
|
|
|
|
|
map.put("id", id);
|
|
|
|
|
|
map.put("name", text);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return map;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取开始时间和结束时间
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param date
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private RecruitDataMap<Object> getDateRange(String date, boolean isStudy) {
|
|
|
|
|
|
RecruitDataMap<Object> dataRangeMap = new RecruitDataMap();
|
|
|
|
|
|
if (StringUtils.isBlank(date)) {
|
|
|
|
|
|
return dataRangeMap;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
String[] split = date.split("-");
|
|
|
|
|
|
String end;
|
|
|
|
|
|
if (split.length > 0) {
|
|
|
|
|
|
end = getFormatDate(split[0]);
|
|
|
|
|
|
if (end.length() == 4) {
|
|
|
|
|
|
if (isStudy) {
|
|
|
|
|
|
end = end + "-09-01";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
end = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dataRangeMap.put("kssj", end);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (split.length > 1) {
|
|
|
|
|
|
end = getFormatDate(split[1]);
|
|
|
|
|
|
if (end.length() == 4) {
|
|
|
|
|
|
if (isStudy) {
|
|
|
|
|
|
end = end + "-07-01";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
end = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
dataRangeMap.put("jssj", end);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return dataRangeMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取yyyy-MM-dd时间格式日期
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param dateStr
|
|
|
|
|
|
* @return
|
|
|
|
|
|
*/
|
|
|
|
|
|
private 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 "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-12-15 17:11:31 +08:00
|
|
|
|
private void permissionReconstruction(int billId) {
|
|
|
|
|
|
ModeRightInfo ModeRightInfo = new ModeRightInfo();
|
|
|
|
|
|
ModeRightInfo.setNewRight(true);
|
|
|
|
|
|
ModeRightInfo.editModeDataShare(1, Util.getIntValue(this.formmodeid_tmp), billId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 15:07:39 +08:00
|
|
|
|
@Override
|
2023-12-15 17:11:31 +08:00
|
|
|
|
public Map<String, String> queryByDBId(String resumeid) throws Exception {
|
2024-06-04 17:17:37 +08:00
|
|
|
|
String sql = "select * from uf_jcl_yppc where id = ? ";
|
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
|
rs.executeQuery(sql, resumeid);
|
|
|
|
|
|
Map<String, Object> dataMap = RecruitRecordSet.getSingleRecordMap(rs);
|
|
|
|
|
|
|
|
|
|
|
|
List<Formfield> fieldList = RecruitModeUtil.getFieldList("uf_jcl_yppc");
|
|
|
|
|
|
Map<String, Formfield> fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, String> returnMap = new HashMap<>();
|
|
|
|
|
|
for (String key : dataMap.keySet()) {
|
|
|
|
|
|
Object value = dataMap.get(key);
|
|
|
|
|
|
if (StringUtils.isBlank(Convert.toStr(value))) {
|
|
|
|
|
|
continue;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 计算新的value值
|
|
|
|
|
|
Formfield formfield = fieldMap.get(key);
|
|
|
|
|
|
value = RecruitModeUtil.getFieldShowName(formfield, Convert.toStr(value)).replaceAll("<[^>]*>", "");
|
|
|
|
|
|
// 更新value值
|
|
|
|
|
|
returnMap.put(key, String.valueOf(value));
|
2023-12-15 17:11:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-06-04 17:17:37 +08:00
|
|
|
|
return returnMap;
|
2023-12-15 17:11:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 15:07:39 +08:00
|
|
|
|
@Override
|
2023-12-15 17:11:31 +08:00
|
|
|
|
public boolean deleteById(String resumeid) throws Exception {
|
|
|
|
|
|
String tablename = "uf_jg_rmk";
|
|
|
|
|
|
if ("1".equals(this.sfsymr)) {
|
|
|
|
|
|
tablename = this.bb.getPropValue("youyun", "tablename");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
String sql = "delete " + tablename + " where id=" + resumeid;
|
|
|
|
|
|
RecordSetTrans rst = new RecordSetTrans();
|
|
|
|
|
|
rst.setAutoCommit(false);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
rst.executeUpdate(sql, new Object[0]);
|
|
|
|
|
|
rst.commit();
|
|
|
|
|
|
return true;
|
|
|
|
|
|
} catch (Exception var6) {
|
|
|
|
|
|
rst.rollback();
|
|
|
|
|
|
throw new Exception(var6);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private Map<String, String> parseJsonToMap(JSONObject obj) {
|
|
|
|
|
|
Map<String, String> rs = new HashMap();
|
|
|
|
|
|
if ("1".equals(this.sfsymr)) {
|
|
|
|
|
|
String v;
|
|
|
|
|
|
if (obj.containsKey("姓名")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "rmxm");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "rmxm"), this.parseArray(obj.getJSONArray("姓名")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("性别")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "xb");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "xb"), this.parseArray(obj.getJSONArray("性别")).equals("男") ? "0" : "1");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-05-29 15:07:39 +08:00
|
|
|
|
if (obj.containsKey("年龄")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "nl");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "nl"), this.parseArray(obj.getJSONArray("年龄")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("身份证号")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "sfz");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "sfz"), this.parseArray(obj.getJSONArray("身份证号")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-12-15 17:11:31 +08:00
|
|
|
|
if (obj.containsKey("出生日期")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "csrq");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "csrq"), this.parseArray(obj.getJSONArray("出生日期")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("籍贯")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "jg");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "jg"), this.parseArray(obj.getJSONArray("籍贯")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("手机号")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "sjhm");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "sjhm"), this.parseArray(obj.getJSONArray("手机号")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("电子邮箱")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "email");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "email"), this.parseArray(obj.getJSONArray("电子邮箱")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("微信")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "wx");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "wx"), this.parseArray(obj.getJSONArray("微信")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("QQ")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "qq");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "qq"), this.parseArray(obj.getJSONArray("QQ")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("现居住地")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "jzd");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "jzd"), this.parseArray(obj.getJSONArray("现居住地")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("爱好")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "ah");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "ah"), this.parseArray(obj.getJSONArray("爱好")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("个人评价")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "grpj");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "grpj"), this.parseArray(obj.getJSONArray("个人评价")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("学业信息")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "xyxg");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "xyxg"), obj.getJSONArray("学业信息").toJSONString());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("毕业时间")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "bysj");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "bysj"), this.parseArray(obj.getJSONArray("毕业时间")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("最高学历")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "zgxl");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "zgxl"), this.parseArray(obj.getJSONArray("最高学历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("专业技能")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "zyjn");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "zyjn"), this.parseArray(obj.getJSONArray("专业技能")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("实习经历")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "sxjl");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "sxjl"), this.parseArray(obj.getJSONArray("实习经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("英语水平")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "yysp");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "yysp"), this.parseArray(obj.getJSONArray("英语水平")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("技能证书")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "jnzs");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "jnzs"), this.parseArray(obj.getJSONArray("技能证书")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("校园经历")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "xyjl");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "xyjl"), this.parseArray(obj.getJSONArray("校园经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("工作信息")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "gzxg");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "gzxg"), obj.getJSONArray("工作信息").toJSONString());
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望从事岗位")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "qwcsgw");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "qwcsgw"), this.parseArray(obj.getJSONArray("期望从事岗位")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("工作经验")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "gzjy1");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "gzjy1"), this.parseArray(obj.getJSONArray("工作经验")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望薪资")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "qwxz");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "qwxz"), this.parseArray(obj.getJSONArray("期望薪资")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望工作地点")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "qwgzdd");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "qwgzdd"), this.parseArray(obj.getJSONArray("期望工作地点")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("项目经历")) {
|
|
|
|
|
|
v = this.bb.getPropValue("resume_qianliling", "xmjl");
|
|
|
|
|
|
if (v != null && v.length() > 0) {
|
|
|
|
|
|
rs.put(this.bb.getPropValue("resume_qianliling", "xmjl"), this.parseArray(obj.getJSONArray("项目经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (obj.containsKey("姓名")) {
|
|
|
|
|
|
rs.put("rmxm", this.parseArray(obj.getJSONArray("姓名")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("性别")) {
|
|
|
|
|
|
rs.put("xb", this.parseArray(obj.getJSONArray("性别")).equals("男") ? "0" : "1");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("出生日期")) {
|
|
|
|
|
|
rs.put("csrq", this.parseArray(obj.getJSONArray("出生日期")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("籍贯")) {
|
|
|
|
|
|
rs.put("jg", this.parseArray(obj.getJSONArray("籍贯")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("手机号")) {
|
|
|
|
|
|
rs.put("sjhm", this.parseArray(obj.getJSONArray("手机号")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("电子邮箱")) {
|
|
|
|
|
|
rs.put("email", this.parseArray(obj.getJSONArray("电子邮箱")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("微信")) {
|
|
|
|
|
|
rs.put("wx", this.parseArray(obj.getJSONArray("微信")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("QQ")) {
|
|
|
|
|
|
rs.put("qq", this.parseArray(obj.getJSONArray("QQ")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("现居住地")) {
|
|
|
|
|
|
rs.put("jzd", this.parseArray(obj.getJSONArray("现居住地")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("爱好")) {
|
|
|
|
|
|
rs.put("ah", this.parseArray(obj.getJSONArray("爱好")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("个人评价")) {
|
|
|
|
|
|
rs.put("grpj", this.parseArray(obj.getJSONArray("个人评价")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("学业信息")) {
|
|
|
|
|
|
rs.put("xyxg", obj.getJSONArray("学业信息").toJSONString());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("毕业时间")) {
|
|
|
|
|
|
rs.put("bysj", this.parseArray(obj.getJSONArray("毕业时间")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("最高学历")) {
|
|
|
|
|
|
rs.put("zgxlwb", this.parseArray(obj.getJSONArray("最高学历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("最高学位")) {
|
|
|
|
|
|
rs.put("zgxw", this.parseArray(obj.getJSONArray("最高学位")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("专业技能")) {
|
|
|
|
|
|
rs.put("zyjn", this.parseArray(obj.getJSONArray("专业技能")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("实习经历")) {
|
|
|
|
|
|
rs.put("sxjl", this.parseArray(obj.getJSONArray("实习经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("英语水平")) {
|
|
|
|
|
|
rs.put("yysp", this.parseArray(obj.getJSONArray("英语水平")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("技能证书")) {
|
|
|
|
|
|
rs.put("jnzs", this.parseArray(obj.getJSONArray("技能证书")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("校园经历")) {
|
|
|
|
|
|
rs.put("xyjl", this.parseArray(obj.getJSONArray("校园经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("工作信息")) {
|
|
|
|
|
|
rs.put("gzxg", obj.getJSONArray("工作信息").toJSONString());
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望从事岗位")) {
|
|
|
|
|
|
rs.put("qwcsgw", this.parseArray(obj.getJSONArray("期望从事岗位")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("工作经验")) {
|
|
|
|
|
|
rs.put("gzjy1", this.parseArray(obj.getJSONArray("工作经验")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望薪资")) {
|
|
|
|
|
|
rs.put("qwxz", this.parseArray(obj.getJSONArray("期望薪资")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("期望工作地点")) {
|
|
|
|
|
|
rs.put("qwgzdd", this.parseArray(obj.getJSONArray("期望工作地点")));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (obj.containsKey("项目经历")) {
|
|
|
|
|
|
rs.put("xmjl", this.parseArray(obj.getJSONArray("项目经历")));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
rs.put("formmodeid", this.formmodeid_tmp);
|
|
|
|
|
|
rs.put("modedatacreater", "1");
|
|
|
|
|
|
rs.put("modedatacreatertype", "0");
|
|
|
|
|
|
rs.put("modedatacreatedate", DateUtil.today());
|
|
|
|
|
|
rs.put("modedatacreatetime", DateUtil.formatTime(new Date()));
|
|
|
|
|
|
return rs;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private String parseArray(JSONArray ar) {
|
|
|
|
|
|
String rs = "";
|
|
|
|
|
|
if (ar != null && ar.size() > 0) {
|
2024-06-04 17:17:37 +08:00
|
|
|
|
for (int i = 0; i < ar.size(); ++i) {
|
2023-12-15 17:11:31 +08:00
|
|
|
|
if (i == ar.size() - 1) {
|
|
|
|
|
|
rs = rs + ar.get(i);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
rs = rs + ar.get(i) + ",";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return rs;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|