From 6184dc3da7de09b0737c231058ef106b9b82e979 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 19 Oct 2023 18:13:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AC=E6=8E=A8=E5=85=B6=E4=BB=96=E8=81=8C?= =?UTF-8?q?=E4=BD=8D=E3=80=81=E5=8A=A0=E5=85=A5=E9=BB=91=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB-INF/prop/jclRecruit.properties | 13 ++- .../engine/recruit/conn/RecruitDataMap.java | 29 +++++++ .../engine/recruit/conn/RecruitRecordSet.java | 56 +++++++++++++ .../impl/ApplicantResumeServiceImpl.java | 80 +++++++++++++++++-- .../impl/JoinBlacklistServiceImpl.java | 49 ++++++++++++ .../entrymanager/AddEntryModeExpand.java | 11 ++- .../BatchAddInterviewResultModeExpand.java | 2 +- .../interview/CreateInterviewModeExpand.java | 2 +- .../interview/UpdateInterviewModeExpand.java | 4 +- .../position/ResumeSavedThread.java | 3 +- 10 files changed, 229 insertions(+), 20 deletions(-) create mode 100644 src/com/engine/recruit/conn/RecruitDataMap.java create mode 100644 src/com/engine/recruit/conn/RecruitRecordSet.java diff --git a/WEB-INF/prop/jclRecruit.properties b/WEB-INF/prop/jclRecruit.properties index ccb5d66..b0aa3dd 100644 --- a/WEB-INF/prop/jclRecruit.properties +++ b/WEB-INF/prop/jclRecruit.properties @@ -1,10 +1,15 @@ +#\u805A\u624D\u6797\u62DB\u8058\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90 +RECRUIT_MESSAGE_TYPE=2022061063 #\u9762\u8BD5\u76F8\u5173\u6D88\u606F\u63D0\u9192\uFF0C\u6D88\u606F\u6765\u6E90 -INTERVIEW_MESSAGE_TYPE=85 -#\u6DFB\u52A0\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u8868\u5F1F +INTERVIEW_MESSAGE_TYPE=2022061063 +#\u6DFB\u52A0\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u6807\u9898 INTERVIEW_ADD_MESSAGE_TITLE=\u9762\u8BD5\u5B89\u6392\u63D0\u9192 -#\u53D6\u6D88\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u8868\u5F1F +#\u53D6\u6D88\u9762\u8BD5\u6D88\u606F\u63D0\u9192\u6807\u9898 INTERVIEW_CANCEL_MESSAGE_TITLE=\u53D6\u6D88\u9762\u8BD5\u63D0\u9192 - +#\u9762\u8BD5\u8BC4\u4EF7\u6D88\u606F\u63D0\u9192\u6807\u9898 +INTERVIEW_EVALUATE_MESSAGE_TITLE=\u9762\u8BD5\u8BC4\u4EF7\u63D0\u9192 +#\u4EBA\u624D\u9ED1\u540D\u5355\u901A\u77E5 +JOIN_BLACKLIST_MESSAGE_TITLE=\u4EBA\u624D\u9ED1\u540D\u5355\u901A\u77E5 #\u5E94\u8058\u8005\u7B80\u5386\u5B58\u653E\u76EE\u5F55ID APPLICANTS_RESUMES_CATEGORY=110 \ No newline at end of file diff --git a/src/com/engine/recruit/conn/RecruitDataMap.java b/src/com/engine/recruit/conn/RecruitDataMap.java new file mode 100644 index 0000000..a369b56 --- /dev/null +++ b/src/com/engine/recruit/conn/RecruitDataMap.java @@ -0,0 +1,29 @@ +package com.engine.recruit.conn; + +import java.util.HashMap; + +/** + * 聚才林数据集合 + *

+ * key忽略大小写 + * + * @author:dxfeng + * @createTime: 2023/10/19 + * @version: 1.0 + */ +public class RecruitDataMap extends HashMap { + @Override + public V get(Object key) { + if (key instanceof String) { + // 将键转为小写形式再进行查找 + return super.get(((String) key).toLowerCase()); + } + return null; + } + + @Override + public V put(String key, V value) { + // 将键转为小写形式后作为真正的键 + return super.put(key.toLowerCase(), value); + } +} diff --git a/src/com/engine/recruit/conn/RecruitRecordSet.java b/src/com/engine/recruit/conn/RecruitRecordSet.java new file mode 100644 index 0000000..3ab8691 --- /dev/null +++ b/src/com/engine/recruit/conn/RecruitRecordSet.java @@ -0,0 +1,56 @@ +package com.engine.recruit.conn; + +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/10/19 + * @version: 1.0 + */ +public class RecruitRecordSet { + + /** + * 获取单个记录映射 + * + * @param rs RecordSet + * @return + */ + public static Map getSingleRecordMap(RecordSet rs) { + Map dataMap = new RecruitDataMap<>(); + if (rs.next()) { + String[] columnNames = rs.getColumnName(); + for (String columnName : columnNames) { + dataMap.put(columnName.toLowerCase(), RecruitModeUtil.parseBlankToNull(rs.getString(columnName))); + } + } + return dataMap; + } + + /** + * 插入数据 + * + * @param dataMap 数据集合 + * @param tableName 表名 + */ + public static void insertData(Map dataMap, String tableName) { + List fieldList = new ArrayList<>(); + List dataList = new ArrayList<>(); + List paramList = new ArrayList<>(); + + dataMap.forEach((key, value) -> { + fieldList.add(key); + dataList.add(value); + paramList.add("?"); + }); + String insertSql = " insert into " + tableName + "(" + StringUtils.join(fieldList, ",") + ") values (" + StringUtils.join(paramList, ",") + ")"; + RecordSet rs = new RecordSet(); + rs.executeUpdate(insertSql, dataList); + } + +} diff --git a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java index 7b70ea1..087612f 100644 --- a/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java +++ b/src/com/engine/recruit/service/impl/ApplicantResumeServiceImpl.java @@ -2,6 +2,7 @@ package com.engine.recruit.service.impl; import cn.hutool.core.convert.Convert; import com.engine.core.impl.Service; +import com.engine.recruit.conn.RecruitRecordSet; import com.engine.recruit.enums.ApplicantOperateEnum; import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.service.ApplicantResumeService; @@ -174,11 +175,60 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu rs.executeUpdate("update uf_jcl_yppc set gdyy = ?,gdxxyy = ? where id = ? ", gdyy, gdxxyy, id); // 建模推送建模 archiveTalentPool(id, false); - + // 更新应聘状态为已归档 + rs.executeUpdate("update uf_jcl_yppc set zt = ? where id = ? ", ApplicationStatusEnum.ARCHIVED.getValue(), id); } } else { returnMap.put("msg", "请至少选择一条数据"); } + } else if (ApplicantOperateEnum.REFERRAL.getOperateType().equals(operateType)) { + // 转推其他职位 + String sourceId = Util.null2String(params.get("sourceId")); + String ypzw = Util.null2String(params.get("ypzw")); + String zplc = null; + rs.executeQuery("select zplc from uf_jcl_zp_zpzw where id = ?", ypzw); + if (rs.next()) { + zplc = rs.getString("zplc"); + } + + rs.executeQuery("select * from uf_jcl_yppc where id = ?", sourceId); + Map mainDataMap = RecruitRecordSet.getSingleRecordMap(rs); + // 构建新数据 + mainDataMap.put("ypzw", ypzw); + mainDataMap.put("zplc", zplc); + mainDataMap.put("zpjd", null); + mainDataMap.put("dqypjd", null); + mainDataMap.put("zt", ApplicationStatusEnum.CANDIDATE.getValue()); + buildBaseFields(mainDataMap); + String uuid = UUID.randomUUID().toString(); + mainDataMap.put("modeuuid", uuid); + // 移除不需要插入的字段 + mainDataMap.remove("id"); + mainDataMap.remove("requestId"); + mainDataMap.remove("form_biz_id"); + + // 插入数据 + RecruitRecordSet.insertData(mainDataMap, "uf_jcl_yppc"); + // 权限重构 + rs.executeQuery("select id,formmodeid from uf_jcl_yppc where modeuuid='" + uuid + "'"); + if (rs.next()) { + //建模数据的id + int targetId = Util.getIntValue(rs.getString("id")); + int formModeId = Util.getIntValue(rs.getString("formmodeid")); + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + //新建的时候添加共享 + modeRightInfo.editModeDataShare(1, formModeId, targetId); + + // 复制明细表数据 + rs.executeUpdate("insert into uf_jcl_yppc_dt1 (mainid,xxmc,xl,zy,kssj,jssj) select ?,xxmc,xl,zy,kssj,jssj from uf_jcl_yppc_dt1 where mainid = ?", targetId, sourceId); + rs.executeUpdate("insert into uf_jcl_yppc_dt2 (mainid,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz) select ?,gsmc,kssj,jssj,gw,sqyxk,lzyy,gzzz from uf_jcl_yppc_dt2 where mainid = ?", targetId, sourceId); + rs.executeUpdate("insert into uf_jcl_yppc_dt3 (mainid,xmmc,kssj,jssj,drjs,xmms) select ?,xmmc,kssj,jssj,drjs,xmms from uf_jcl_yppc_dt3 where mainid = ?", targetId, sourceId); + rs.executeUpdate("insert into uf_jcl_yppc_dt4 (mainid,yylx,zwcd) select ?,yylx,zwcd from uf_jcl_yppc_dt4 where mainid = ?", targetId, sourceId); + + } + + } return returnMap; } @@ -192,7 +242,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu try { int docId = RecruitModeUtil.createDocId(secCategory, imageFileId, user); // 更新原始简历信息,设置应聘状态未待分配 - rs.executeUpdate("update uf_jcl_yppc set ysjl=?,zt=? where id = ?", docId, 0, resumeId); + rs.executeUpdate("update uf_jcl_yppc set ysjl=?,zt=? where id = ?", docId, ApplicationStatusEnum.DISTRIBUTION.getValue(), resumeId); } catch (Exception e) { throw new RuntimeException(e); @@ -299,12 +349,12 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu * @param applicantId 应聘者ID * @param joinBlacklist 是否加入黑名单 */ - private void archiveTalentPool(String applicantId, boolean joinBlacklist) { + public void archiveTalentPool(String applicantId, boolean joinBlacklist) { RecordSet rs = new RecordSet(); String name = ""; String mobile = ""; String talentPoolId = ""; - rs.executeQuery("select xm,sjhm from uf_jcl_yppc"); + rs.executeQuery("select xm,sjhm from uf_jcl_yppc where id = ?", applicantId); if (rs.next()) { name = rs.getString("xm"); mobile = rs.getString("sjhm"); @@ -319,7 +369,6 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu String insertSql = "insert into uf_jcl_rck (modeuuid, formmodeid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, modedatacreatertype," + "sfz,jlzp,zhypzw,ysjl,jlly,xm,xb,sjhm,dzyx,csrq,nl,zgxl,zgxw,byyx,zy,hyzk,gzjy,zzzt,dqszd,zhtdsj,cjr,zwpj,mz,jg,zzmm,sgcm,tzkg,gdjd,gdyy,gdxxyy,lstdcs,sfjrhmd)" + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - rs.executeQuery("select * from uf_jcl_yppc where id = ?", applicantId); List mainDataList = new ArrayList<>(); String uuid = UUID.randomUUID().toString(); mainDataList.add(uuid); @@ -331,6 +380,7 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu mainDataList.add(formModeId); // 构建建模表基本数据 buildBaseFields(mainDataList); + rs.executeQuery("select * from uf_jcl_yppc where id = ?", applicantId); if (rs.next()) { mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfz"))); mainDataList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jlzp"))); @@ -378,6 +428,10 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu // 删除人才库原来的数据 rs.executeUpdate("delete from uf_jcl_rck where id = ? ", talentPoolId); + rs.executeUpdate("delete from uf_jcl_rck_dt1 where mainid = ? ", talentPoolId); + rs.executeUpdate("delete from uf_jcl_rck_dt2 where mainid = ? ", talentPoolId); + rs.executeUpdate("delete from uf_jcl_rck_dt3 where mainid = ? ", talentPoolId); + rs.executeUpdate("delete from uf_jcl_rck_dt4 where mainid = ? ", talentPoolId); } /** @@ -402,6 +456,22 @@ public class ApplicantResumeServiceImpl extends Service implements ApplicantResu mainDataList.add("0"); } + /** + * 构建建模表基本数据 + * + * @param mainDataMap 参数集合 + */ + private void buildBaseFields(Map mainDataMap) { + String dateTime = DateUtil.getFullDate(); + String[] dateSplit = dateTime.split(" "); + mainDataMap.put("modedatacreater", user.getUID()); + mainDataMap.put("modedatacreatedate", dateSplit[0]); + mainDataMap.put("modedatacreatetime", dateSplit[1]); + mainDataMap.put("modedatamodifier", user.getUID()); + mainDataMap.put("modedatamodifydatetime", dateTime); + mainDataMap.put("modedatacreatertype", "0"); + } + /** * 权限重构 * diff --git a/src/com/engine/recruit/service/impl/JoinBlacklistServiceImpl.java b/src/com/engine/recruit/service/impl/JoinBlacklistServiceImpl.java index 9fb38f8..b852909 100644 --- a/src/com/engine/recruit/service/impl/JoinBlacklistServiceImpl.java +++ b/src/com/engine/recruit/service/impl/JoinBlacklistServiceImpl.java @@ -1,9 +1,18 @@ package com.engine.recruit.service.impl; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.service.RecruitButtonService; +import weaver.conn.RecordSet; +import weaver.formmode.recruit.modeexpand.util.ApplicantCommonInfo; +import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; +import weaver.general.Util; +import java.util.Arrays; +import java.util.HashSet; import java.util.Map; +import java.util.Set; /** *

聚才林招聘

@@ -16,6 +25,46 @@ import java.util.Map; public class JoinBlacklistServiceImpl extends Service implements RecruitButtonService { @Override public Map execute(Map params) { + // 当前应聘者ID + String billId = Util.null2String(params.get("billId")); + RecordSet rs = new RecordSet(); + + // 推人才表,建模推建模(更新人才表数据),是否加入黑名单字段值变更为“是” + ServiceUtil.getService(ApplicantResumeServiceImpl.class, user).archiveTalentPool(billId, true); + + // 更新当前应聘者关联的所有简历状态为已淘汰 + String name = ""; + String mobile = ""; + String positionId = ""; + rs.executeQuery("select xm, sjhm, ypzw from uf_jcl_yppc where id = ? ", billId); + if (rs.next()) { + name = rs.getString("xm"); + mobile = rs.getString("sjhm"); + positionId = rs.getString("ypzw"); + } + rs.executeUpdate("update uf_jcl_yppc set zt = ? where xm = ? and sjhm = ?", ApplicationStatusEnum.OBSOLETE.getValue(), name, mobile); + + // 消息提醒当前人员简历的跟进者(应聘职位的负责人/协助人) + String messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE"); + String messageTitle = RecruitModeUtil.getRecruitPropValue("JOIN_BLACKLIST_MESSAGE_TITLE"); + String applicantName = ApplicantCommonInfo.getApplicantName(billId); + String operatorName = RecruitModeUtil.getResourceNames(String.valueOf(user.getUID())); + String messageContent = "应聘者:【" + applicantName + "】,已被【" + operatorName + "】加入黑名单,相关投递已自动淘汰,请知悉。"; + + // 消息提醒当前人员简历的跟进者(应聘职位的负责人/协助人) + String zpzwfzr = ""; + String zpxzr = ""; + rs.executeQuery("select zpzwfzr , zpxzr from uf_jcl_zp_zpzw where id = ?", positionId); + if (rs.next()) { + zpzwfzr = rs.getString("zpzwfzr"); + zpxzr = rs.getString("zpxzr"); + } + Set userIdSet = new HashSet<>(); + userIdSet.addAll(Arrays.asList(zpzwfzr.split(","))); + userIdSet.addAll(Arrays.asList(zpxzr.split(","))); + RecruitModeUtil.messagePush(messageType, messageTitle, messageContent, userIdSet, user.getUID()); + return null; } + } diff --git a/src/weaver/formmode/recruit/modeexpand/entrymanager/AddEntryModeExpand.java b/src/weaver/formmode/recruit/modeexpand/entrymanager/AddEntryModeExpand.java index f46c27a..c5569aa 100644 --- a/src/weaver/formmode/recruit/modeexpand/entrymanager/AddEntryModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/entrymanager/AddEntryModeExpand.java @@ -1,7 +1,6 @@ package weaver.formmode.recruit.modeexpand.entrymanager; import com.engine.recruit.enums.EntryStatusEnum; -import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; import weaver.general.Util; @@ -52,11 +51,11 @@ public class AddEntryModeExpand extends AbstractModeExpandJavaCodeNew { return result; } } - // 更新应聘者当前应聘阶段 - String dqypjd = Util.null2String(param.get("dqypjd")); - if (StringUtils.isNotBlank(dqypjd)) { - rs.executeUpdate("update uf_jcl_yppc set dqypjd = ? where id = ?", dqypjd, pcid); - } + //// 更新应聘者当前应聘阶段 + //String dqypjd = Util.null2String(param.get("dqypjd")); + //if (StringUtils.isNotBlank(dqypjd)) { + // rs.executeUpdate("update uf_jcl_yppc set dqypjd = ? where id = ?", dqypjd, pcid); + //} } } } catch (Exception e) { diff --git a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java index e814cdd..21a787e 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java @@ -38,7 +38,7 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod public BatchAddInterviewResultModeExpand() throws UnsupportedEncodingException { super(); - messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE"); + messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE"); title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE"); } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java index d6cd277..59d7dc6 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java @@ -61,7 +61,7 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { InterviewOperateTypeEnum operateTypeEnum = InterviewOperateTypeEnum.getOperateType(operateType); switch (operateTypeEnum) { case ARRANGE: - messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE"); + messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE"); title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE"); arrangeInterview(user, mainDataMap); default: diff --git a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java index 1fd9f4c..55f2467 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java @@ -63,13 +63,13 @@ public class UpdateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { switch (operateTypeEnum) { case EVALUATE: // 面试评价 - messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE"); + messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE"); title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_EVALUATE_MESSAGE_TITLE"); evaluateInterview(params, requestInfo.getCreatorid(), mainDataMap); break; case CANCEL: // 面试取消 - messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE"); + messageType = RecruitModeUtil.getRecruitPropValue("RECRUIT_MESSAGE_TYPE"); title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_CANCEL_MESSAGE_TITLE"); cancelInterView(params, requestInfo, billId, mainDataMap); break; diff --git a/src/weaver/formmode/recruit/modeexpand/position/ResumeSavedThread.java b/src/weaver/formmode/recruit/modeexpand/position/ResumeSavedThread.java index 63002ac..ccc90ec 100644 --- a/src/weaver/formmode/recruit/modeexpand/position/ResumeSavedThread.java +++ b/src/weaver/formmode/recruit/modeexpand/position/ResumeSavedThread.java @@ -2,6 +2,7 @@ package weaver.formmode.recruit.modeexpand.position; import cn.hutool.core.convert.Convert; import com.engine.recruit.constant.ModeTable; +import com.engine.recruit.enums.ApplicationStatusEnum; import com.engine.recruit.enums.CommonBrowserTypeEnum; import com.engine.recruit.enums.HighestDegreeEnum; import com.weaver.rpa.sdk.clients.application.resume.ERPAResumeSDKClient; @@ -78,7 +79,7 @@ public class ResumeSavedThread extends LocalRunnable { // 千里聆简历ID params.put("qlljl", resumeId); // 状态,指定待分配 - params.put("zt", "0"); + params.put("zt", ApplicationStatusEnum.DISTRIBUTION.getValue()); // 填充建模数据基本信息 int formModeId = ApplicantCommonInfo.getModeIdByTableName(ModeTable.UF_JCL_YPPC);