招聘职位关联招聘阶段信息

This commit is contained in:
dxfeng 2023-10-18 14:20:12 +08:00
parent 2a62e2d42d
commit 59f7fe1125
5 changed files with 250 additions and 130 deletions

View File

@ -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";
/**
* 获取明细表表名

View File

@ -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<String, Object> param) throws Exception {
User user = (User)param.get("user");
Object extensionParam = param.get("extensionParam");//其他参数
HashMap<String,Object> extensionMap = (HashMap<String,Object>)extensionParam;
//获取参数示例 "min" 只是示例 需要根据自己传入的参数名获取
//String min = (String)extensionMap.get("min");
String sqlCondition = "";
return sqlCondition;
}
}

View File

@ -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<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> 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<String, String> 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;
}
}

View File

@ -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;
/**
* <p>聚才林招聘</p>
@ -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<String, String> doModeExpand(Map<String, Object> 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<Object> 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<Object> 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<Object> 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<List<Object>> insertList = new ArrayList<>();
while (rs.next()) {
List<Object> 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<Object> 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<Object> 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<Object> list : insertList) {
rs.executeUpdate("insert into " + MODE_TABLE_NAME_DT2 + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list);
}
}
}
}

View File

@ -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<Object> 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<Object> 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<Object> 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<List<Object>> insertList = new ArrayList<>();
while (rs.next()) {
List<Object> 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<Object> 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<Object> 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<Object> list : insertList) {
rs.executeUpdate("insert into " + ModeTable.getDetailTableName(ModeTable.UF_JCL_ZPJDSZ, 2) + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list);
}
}
}
}