From 59f7fe112570f654ed6f85319d88c803e5dfd067 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 18 Oct 2023 14:20:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=9B=E8=81=98=E8=81=8C=E4=BD=8D=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=8B=9B=E8=81=98=E9=98=B6=E6=AE=B5=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/recruit/constant/ModeTable.java | 11 ++ .../recruit/browser/RecruitStageBrowser.java | 28 ++++ .../position/PositionRelatedStageExpand.java | 68 +++++++++ .../process/RelatedStageModeExpand.java | 134 +---------------- .../modeexpand/process/StageDataInsert.java | 139 ++++++++++++++++++ 5 files changed, 250 insertions(+), 130 deletions(-) create mode 100644 src/weaver/formmode/recruit/browser/RecruitStageBrowser.java create mode 100644 src/weaver/formmode/recruit/modeexpand/position/PositionRelatedStageExpand.java create mode 100644 src/weaver/formmode/recruit/modeexpand/process/StageDataInsert.java diff --git a/src/com/engine/recruit/constant/ModeTable.java b/src/com/engine/recruit/constant/ModeTable.java index eb9dfe6..1cbd3da 100644 --- a/src/com/engine/recruit/constant/ModeTable.java +++ b/src/com/engine/recruit/constant/ModeTable.java @@ -1,6 +1,8 @@ package com.engine.recruit.constant; /** + * 聚才林招聘,建模表 + * * @author:dxfeng * @createTime: 2023/10/17 * @version: 1.0 @@ -11,6 +13,15 @@ public class ModeTable { */ public static final String UF_JCL_YPPC = "uf_jcl_yppc"; + /** + * JCL_招聘阶段设置 + */ + public static final String UF_JCL_ZPJDSZ = "uf_jcl_zpjdsz"; + /** + * JCL_招聘流程 + */ + public static final String UF_JCL_ZPLC = "uf_jcl_zplc"; + /** * 获取明细表表名 diff --git a/src/weaver/formmode/recruit/browser/RecruitStageBrowser.java b/src/weaver/formmode/recruit/browser/RecruitStageBrowser.java new file mode 100644 index 0000000..3e0de69 --- /dev/null +++ b/src/weaver/formmode/recruit/browser/RecruitStageBrowser.java @@ -0,0 +1,28 @@ +package weaver.formmode.recruit.browser; + +import weaver.formmode.customjavacode.AbstractCustomSqlConditionJavaCode; +import weaver.hrm.User; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2023/10/18 + * @version: 1.0 + */ +public class RecruitStageBrowser extends AbstractCustomSqlConditionJavaCode { + @Override + public String generateSqlCondition(Map param) throws Exception { + User user = (User)param.get("user"); + Object extensionParam = param.get("extensionParam");//其他参数 + HashMap extensionMap = (HashMap)extensionParam; + + //获取参数示例 "min" 只是示例 需要根据自己传入的参数名获取 + //String min = (String)extensionMap.get("min"); + + String sqlCondition = ""; + + return sqlCondition; + } +} diff --git a/src/weaver/formmode/recruit/modeexpand/position/PositionRelatedStageExpand.java b/src/weaver/formmode/recruit/modeexpand/position/PositionRelatedStageExpand.java new file mode 100644 index 0000000..da7f1bd --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/position/PositionRelatedStageExpand.java @@ -0,0 +1,68 @@ +package weaver.formmode.recruit.modeexpand.position; + +import com.engine.recruit.constant.ModeTable; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.formmode.recruit.modeexpand.process.StageDataInsert; +import weaver.general.BaseBean; +import weaver.hrm.User; +import weaver.soa.workflow.request.MainTableInfo; +import weaver.soa.workflow.request.Property; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.HashMap; +import java.util.Map; + +/** + * 应聘职位关联招聘流程对应的招聘阶段 + * + * @author:dxfeng + * @createTime: 2023/10/18 + * @version: 1.0 + */ +public class PositionRelatedStageExpand extends AbstractModeExpandJavaCodeNew { + @Override + public Map doModeExpand(Map param) { + Map result = new HashMap<>(); + try { + String billId; + RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); + if (requestInfo != null) { + billId = requestInfo.getRequestid(); + // 获取表单名称 + MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); + Property[] properties = mainTableInfo.getProperty(); + Map mainDataMap = new HashMap<>(); + for (Property property : properties) { + mainDataMap.put(property.getName(), property.getValue()); + } + // 招聘流程 + String zplc = mainDataMap.get("zplc"); + if (StringUtils.isBlank(zplc)) { + // 未配置招聘流程,不做任何处理 + return result; + } + + RecordSet rs = new RecordSet(); + rs.executeQuery("select ksjd, gcjd, jsjd from " + ModeTable.UF_JCL_ZPLC + " where id = ? ", zplc); + if (rs.next()) { + // 开始阶段 + String ksjd = mainDataMap.get("ksjd"); + // 过程阶段 + String gcjd = mainDataMap.get("gcjd"); + // 结束阶段 + String jsjd = mainDataMap.get("jsjd"); + // 查询所有的操作阶段信息 + User user = (User) param.get("user"); + StageDataInsert.relatedStageData(user.getUID(), billId, "ypzw", ksjd, gcjd, jsjd); + } + } + } catch (Exception e) { + new BaseBean().writeLog(e); + result.put("errmsg", e.getMessage()); + result.put("flag", "false"); + } + return result; + } +} diff --git a/src/weaver/formmode/recruit/modeexpand/process/RelatedStageModeExpand.java b/src/weaver/formmode/recruit/modeexpand/process/RelatedStageModeExpand.java index 8c5a459..8caff3d 100644 --- a/src/weaver/formmode/recruit/modeexpand/process/RelatedStageModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/process/RelatedStageModeExpand.java @@ -1,19 +1,14 @@ package weaver.formmode.recruit.modeexpand.process; -import org.apache.commons.lang3.StringUtils; -import weaver.common.DateUtil; -import weaver.conn.RecordSet; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; -import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; -import weaver.formmode.setup.ModeRightInfo; import weaver.general.BaseBean; -import weaver.general.Util; import weaver.hrm.User; import weaver.soa.workflow.request.MainTableInfo; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; -import java.util.*; +import java.util.HashMap; +import java.util.Map; /** *

聚才林招聘

@@ -25,9 +20,6 @@ import java.util.*; * @version: 1.0 */ public class RelatedStageModeExpand extends AbstractModeExpandJavaCodeNew { - private static final String MODE_TABLE_NAME = "uf_jcl_zpjdsz"; - private static final String MODE_TABLE_NAME_DT1 = "uf_jcl_zpjdsz_dt1"; - private static final String MODE_TABLE_NAME_DT2 = "uf_jcl_zpjdsz_dt2"; @Override public Map doModeExpand(Map param) { @@ -52,131 +44,13 @@ public class RelatedStageModeExpand extends AbstractModeExpandJavaCodeNew { String jsjd = mainDataMap.get("jsjd"); // 查询所有的操作阶段信息 User user = (User) param.get("user"); - relatedStageData(user.getUID(), billId, ksjd, gcjd, jsjd); + StageDataInsert.relatedStageData(user.getUID(), billId, "zplc", ksjd, gcjd, jsjd); } } catch (Exception e) { new BaseBean().writeLog(e); - result.put("errmsg", "完成需求操作失败"); + result.put("errmsg", e.getMessage()); result.put("flag", "false"); } return result; } - - /** - * 生成关联的招聘阶段数据 - * - * @param creator 创建者ID - * @param billId 当前数据ID - * @param processIds 路程表单所选阶段ID - */ - private void relatedStageData(int creator, String billId, String... processIds) { - String dateTime = DateUtil.getFullDate(); - String[] dateSplit = dateTime.split(" "); - - List paramsList = new ArrayList<>(); - // modedatacreater - paramsList.add(creator); - // modedatacreatedate - paramsList.add(dateSplit[0]); - // modedatacreatetime - paramsList.add(dateSplit[1]); - // modedatamodifier - paramsList.add(creator); - // modedatamodifydatetime - paramsList.add(dateTime); - // modedatacreatertype - paramsList.add("0"); - - String processIdsStr = StringUtils.join(Arrays.asList(processIds), ","); - String insertSql = "insert into " + MODE_TABLE_NAME + " (modeuuid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, modedatacreatertype, formmodeid, jdmc, jdms, jdlx, hj, sfqy, zssx, zpjd, zplc) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - if (StringUtils.isNotBlank(processIdsStr)) { - insertMainTableData(billId, processIdsStr, insertSql, paramsList); - } - } - - /** - * 插入主表数据 - * - * @param billId 招聘流程表单ID - * @param processIdsStr 招聘阶段ID - * @param insertSql 插入SQL语句 - * @param paramsList 待插入参数集合 - */ - private void insertMainTableData(String billId, String processIdsStr, String insertSql, List paramsList) { - RecordSet rs = new RecordSet(); - rs.executeQuery("select * from uf_jcl_zpjdsz where id in (" + processIdsStr + ") order by hj,zssx"); - while (rs.next()) { - String uuid = UUID.randomUUID().toString(); - ArrayList insertList = new ArrayList<>(paramsList); - insertList.add(0, uuid); - String formModeId = rs.getString("formmodeid"); - insertList.add(formModeId); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdmc"))); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdms"))); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdlx"))); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("hj"))); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfqy"))); - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); - // zpjd - insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("id"))); - // zplc - insertList.add(RecruitModeUtil.parseBlankToNull(billId)); - // 插入主表数据 - rs.executeUpdate(insertSql, insertList); - refreshRight(uuid, formModeId, rs.getString("id")); - } - } - - /** - * 权限重构,插入明细表数据 - * - * @param uuid UUID - * @param formModeId formModeId - */ - private void refreshRight(String uuid, String formModeId, String processId) { - RecordSet rs = new RecordSet(); - rs.executeQuery("select id from " + MODE_TABLE_NAME + " where modeuuid='" + uuid + "'"); - if (rs.next()) { - //建模数据的id - String bid = rs.getString("id"); - ModeRightInfo modeRightInfo = new ModeRightInfo(); - modeRightInfo.setNewRight(true); - //新建的时候添加共享 - modeRightInfo.editModeDataShare(1, Util.getIntValue(formModeId), Util.getIntValue(bid)); - - // 插入明细表数据 - rs.executeQuery("select * from " + MODE_TABLE_NAME_DT1 + " where mainid = ? ", processId); - List> insertList = new ArrayList<>(); - while (rs.next()) { - List paramList = new ArrayList<>(); - // mainid - paramList.add(bid); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("czan"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zdyxsmc"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfqy"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzymbt"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzymdz"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); - insertList.add(paramList); - } - for (List list : insertList) { - rs.executeUpdate("insert into " + MODE_TABLE_NAME_DT1 + " (mainid, czan, zdyxsmc, sfqy, tzymbt, tzymdz, zssx) values (?, ?, ?, ?, ?, ?, ?)", list); - } - - insertList = new ArrayList<>(); - rs.executeQuery("select * from " + MODE_TABLE_NAME_DT2 + " where mainid = ? ", processId); - while (rs.next()) { - List paramList = new ArrayList<>(); - // mainid - paramList.add(bid); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ymbt"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ymdz"))); - paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); - insertList.add(paramList); - } - for (List list : insertList) { - rs.executeUpdate("insert into " + MODE_TABLE_NAME_DT2 + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list); - } - } - } } diff --git a/src/weaver/formmode/recruit/modeexpand/process/StageDataInsert.java b/src/weaver/formmode/recruit/modeexpand/process/StageDataInsert.java new file mode 100644 index 0000000..070516c --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/process/StageDataInsert.java @@ -0,0 +1,139 @@ +package weaver.formmode.recruit.modeexpand.process; + +import com.engine.recruit.constant.ModeTable; +import org.apache.commons.lang3.StringUtils; +import weaver.common.DateUtil; +import weaver.conn.RecordSet; +import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + +/** + * @author:dxfeng + * @createTime: 2023/10/18 + * @version: 1.0 + */ +public class StageDataInsert { + /** + * 生成关联的招聘阶段数据 + * + * @param creator 创建者ID + * @param billId 当前数据ID + * @param processIds 路程表单所选阶段ID + */ + public static void relatedStageData(int creator, String billId, String relateField, String... processIds) { + String dateTime = DateUtil.getFullDate(); + String[] dateSplit = dateTime.split(" "); + + List paramsList = new ArrayList<>(); + // modedatacreater + paramsList.add(creator); + // modedatacreatedate + paramsList.add(dateSplit[0]); + // modedatacreatetime + paramsList.add(dateSplit[1]); + // modedatamodifier + paramsList.add(creator); + // modedatamodifydatetime + paramsList.add(dateTime); + // modedatacreatertype + paramsList.add("0"); + + String processIdsStr = StringUtils.join(Arrays.asList(processIds), ","); + String insertSql = "insert into " + ModeTable.UF_JCL_ZPJDSZ + " (modeuuid, modedatacreater, modedatacreatedate, modedatacreatetime, modedatamodifier, modedatamodifydatetime, modedatacreatertype, formmodeid, jdmc, jdms, jdlx, hj, sfqy, zssx, zpjd, " + relateField + ") values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + if (StringUtils.isNotBlank(processIdsStr)) { + insertMainTableData(billId, processIdsStr, insertSql, paramsList); + } + } + + /** + * 插入主表数据 + * + * @param billId 招聘流程表单ID + * @param processIdsStr 招聘阶段ID + * @param insertSql 插入SQL语句 + * @param paramsList 待插入参数集合 + */ + private static void insertMainTableData(String billId, String processIdsStr, String insertSql, List paramsList) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select * from uf_jcl_zpjdsz where id in (" + processIdsStr + ") order by hj,zssx"); + while (rs.next()) { + String uuid = UUID.randomUUID().toString(); + ArrayList insertList = new ArrayList<>(paramsList); + insertList.add(0, uuid); + String formModeId = rs.getString("formmodeid"); + insertList.add(formModeId); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdmc"))); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdms"))); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("jdlx"))); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("hj"))); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfqy"))); + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); + // zpjd + insertList.add(RecruitModeUtil.parseBlankToNull(rs.getString("id"))); + // zplc + insertList.add(RecruitModeUtil.parseBlankToNull(billId)); + // 插入主表数据 + rs.executeUpdate(insertSql, insertList); + refreshRight(uuid, formModeId, rs.getString("id")); + } + } + + /** + * 权限重构,插入明细表数据 + * + * @param uuid UUID + * @param formModeId formModeId + */ + private static void refreshRight(String uuid, String formModeId, String processId) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select id from " + ModeTable.UF_JCL_ZPJDSZ + " where modeuuid='" + uuid + "'"); + if (rs.next()) { + //建模数据的id + String bid = rs.getString("id"); + ModeRightInfo modeRightInfo = new ModeRightInfo(); + modeRightInfo.setNewRight(true); + //新建的时候添加共享 + modeRightInfo.editModeDataShare(1, Util.getIntValue(formModeId), Util.getIntValue(bid)); + + // 插入明细表数据 + rs.executeQuery("select * from " + ModeTable.getDetailTableName(ModeTable.UF_JCL_ZPJDSZ, 1) + " where mainid = ? ", processId); + List> insertList = new ArrayList<>(); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("czan"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zdyxsmc"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("sfqy"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzymbt"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("tzymdz"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into " + ModeTable.getDetailTableName(ModeTable.UF_JCL_ZPJDSZ, 1) + " (mainid, czan, zdyxsmc, sfqy, tzymbt, tzymdz, zssx) values (?, ?, ?, ?, ?, ?, ?)", list); + } + + insertList = new ArrayList<>(); + rs.executeQuery("select * from " + ModeTable.getDetailTableName(ModeTable.UF_JCL_ZPJDSZ, 2) + " where mainid = ? ", processId); + while (rs.next()) { + List paramList = new ArrayList<>(); + // mainid + paramList.add(bid); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ymbt"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("ymdz"))); + paramList.add(RecruitModeUtil.parseBlankToNull(rs.getString("zssx"))); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into " + ModeTable.getDetailTableName(ModeTable.UF_JCL_ZPJDSZ, 2) + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list); + } + } + } +}