weaver-hrm-recruit/src/com/engine/resumestorage/service/impl/ResumeIdentifyServiceImpl.java

859 lines
35 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.engine.resumestorage.service.impl;
import cn.hutool.core.convert.Convert;
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;
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;
import com.engine.resumestorage.service.ResumeIdentifyService;
import com.engine.resumestorage.util.ParseResumeQliUtil;
import com.engine.resumestorage.util.Sql;
import com.weaver.formmodel.data.model.Formfield;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.conn.RecordSetTrans;
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.integration.logging.Logger;
import weaver.integration.logging.LoggerFactory;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
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");
}
@Override
public int saveResumeByImageFileId(int imageFileId) throws Exception {
if(user==null){
throw new CustomizeRunTimeException("--------------------");
}
String response = ParseResumeQliUtil.doParseHostPost(imageFileId);
this.log.info("千里聆接口返回值:" + response);
if (response.length() == 0) {
this.log.info("调用千里聆接口失败,返回值为空");
throw new Exception("调用千里聆接口失败,返回值为空");
} else {
JSONObject all = JSONObject.parseObject(response);
if (!all.getBoolean("isSuccess")) {
this.log.info("调用千里聆接口失败,接口不通");
throw new Exception("调用千里聆接口失败,接口不通");
} else {
JSONObject resultall = all.getJSONObject("data");
String status = resultall.getString("state");
if ("fail".equals(status)) {
this.log.info("调用千里聆接口失败,失败原因:" + resultall.getString("info"));
throw new Exception("调用千里聆接口失败,失败原因:" + resultall.getString("info"));
} else {
JSONObject result = resultall.getJSONObject("result");
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);
}
}
}
}
@Override
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("简历更新失败");
}
}
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 "";
}
private void permissionReconstruction(int billId) {
ModeRightInfo ModeRightInfo = new ModeRightInfo();
ModeRightInfo.setNewRight(true);
ModeRightInfo.editModeDataShare(1, Util.getIntValue(this.formmodeid_tmp), billId);
}
@Override
public Map<String, String> queryByDBId(String resumeid) throws Exception {
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));
}
return returnMap;
}
@Override
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");
}
}
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("身份证号")));
}
}
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) {
for (int i = 0; i < ar.size(); ++i) {
if (i == ar.size() - 1) {
rs = rs + ar.get(i);
} else {
rs = rs + ar.get(i) + ",";
}
}
}
return rs;
}
}