package com.engine.resumestorage.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; 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 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> studyList = (List>) resumeData.remove("jyjl"); List> workList = (List>) resumeData.remove("gzjl"); List> projectList = (List>) resumeData.remove("xmjy"); // 状态 resumeData.put("zt", ApplicationStatusEnum.DISTRIBUTION.getValue()); List fieldList = RecruitModeUtil.getFieldList("uf_jcl_yppc"); Set keySet = fieldList.stream().map(Formfield::getFieldname).collect(Collectors.toSet()); // 移除不在 keySet 中的键值对 resumeData.entrySet().removeIf(entry -> !keySet.contains(entry.getKey())); new BaseBean().writeLog("resumeData="+ JSON.toJSONString(resumeData)); // 判断简历信息 CheckRepeatResume instance = CheckRepeatResume.getInstance(); Map 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 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 field = new ArrayList(); List value1 = new ArrayList(); List 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 parseQllJsonToMapV2(JSONObject obj, boolean isCard) { new BaseBean().writeLog(obj.toJSONString()); Map 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 = personalInformation.getString("性别"); if ("女".equals(xb)) { dataMap.put("xb", 1); } else if("男".equals(xb)){ dataMap.put("xb", 0); }else{ dataMap.put("xb", null); } // 体重(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> 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> 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> 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(StringUtils.isNotBlank(gzjyStr)) { if (gzjyStr.contains("到")) { String[] split = gzjyStr.split("到"); if (split.length == 2) { gzjyStr = split[1]; } } } List> 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> 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> 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> 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 studyMap = new RecruitDataMap<>(); studyMap.putAll(getDateRange(studyDate, true)); String schoolName = o.getString("学校名称"); studyMap.put("xxmc", schoolName); String educationLevel = o.getString("学历"); List> 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> 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 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> 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 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> getBrowserArray(String text, Function> fun) { List> list = new ArrayList<>(); if (StringUtils.isNotBlank(text)) { String[] split = text.split(","); for (String s : split) { Map apply = fun.apply(s); list.add(apply); } } return list; } /** * 构建浏览按钮字段信息格式 * * @param text * @param browserType * @return */ private List> getBrowserArray(String text, String browserType) { List> list = new ArrayList<>(); if (StringUtils.isNotBlank(text)) { String[] split = text.split(","); for (String s : split) { Map 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 getEducationLevelArray(String text) { Map 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 getDateRange(String date, boolean isStudy) { RecruitDataMap 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 queryByDBId(String resumeid) throws Exception { String sql = "select * from uf_jcl_yppc where id = ? "; RecordSet rs = new RecordSet(); rs.executeQuery(sql, resumeid); Map dataMap = RecruitRecordSet.getSingleRecordMap(rs); List fieldList = RecruitModeUtil.getFieldList("uf_jcl_yppc"); Map fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1)); Map 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 parseJsonToMap(JSONObject obj) { Map 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; } }