招聘流程-新建时,生成流程阶段关联数据

This commit is contained in:
dxfeng 2023-09-19 17:46:44 +08:00
parent cbe4d20940
commit d93a4b6c8b
1 changed files with 192 additions and 0 deletions

View File

@ -0,0 +1,192 @@
package weaver.formmode.recruit.process;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import weaver.formmode.setup.ModeRightInfo;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import weaver.workflow.workflow.WorkflowBillComInfo;
import java.util.*;
/**
* <p>聚才林招聘</p>
*
* <p>招聘流程新建时生成流程阶段关联数据</p>
*
* @author:dxfeng
* @createTime: 2023/09/19
* @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) {
Map<String, String> result = new HashMap<>();
try {
String billId;
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
if (requestInfo != null) {
billId = requestInfo.getRequestid();
// 获取表单名称
String formId = Util.null2String(param.get("formid"));
String tableName = new WorkflowBillComInfo().getTablename(formId);
//String sql = "update " + tableName + " set xqzt = ? ,jssj = ?,wcsj = ? where id = ?";
//RecordSet rs = new RecordSet();
//// 更新状态为招聘完成置空结束日期完成日期取当前日期
//rs.executeUpdate(sql, RecruitStatusEnum.RECRUITMENT_COMPLETED.getValue(), null, DateUtil.getCurrentDate(), billId);
new BaseBean().writeLog("完成需求操作billId=[" + billId + "]操作完成");
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 ksjd = mainDataMap.get("ksjd");
// 过程阶段
String gcjd = mainDataMap.get("gcjd");
// 结束阶段
String jsjd = mainDataMap.get("jsjd");
// 查询所有的操作阶段信息
relatedStageData(requestInfo.getCreatorid(), billId, ksjd, gcjd, jsjd);
}
} catch (Exception e) {
new BaseBean().writeLog(e);
;
result.put("errmsg", "完成需求操作失败");
result.put("flag", "false");
}
return result;
}
/**
* 生成关联的招聘阶段数据
*
* @param creator 创建者ID
* @param billId 当前数据ID
* @param processIds 路程表单所选阶段ID
*/
private void relatedStageData(String creator, String billId, String... processIds) {
String dateTime = DateUtil.getFullDate();
String[] dateSplit = dateTime.split(" ");
List<String> 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 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
for (String processId : processIdsStr.split(",")) {
if (StringUtils.isBlank(processId)) {
continue;
}
insertMainTableData(billId, processId, insertSql, paramsList);
}
}
/**
* 插入主表数据
*
* @param billId 招聘流程表单ID
* @param processId 招聘阶段ID
* @param insertSql 插入SQL语句
* @param paramsList 待插入参数集合
*/
private void insertMainTableData(String billId, String processId, String insertSql, List<String> paramsList) {
String uuid = UUID.randomUUID().toString();
ArrayList<String> insertList = new ArrayList<>(paramsList);
insertList.add(0, uuid);
RecordSet rs = new RecordSet();
rs.executeQuery("select * from uf_jcl_zpjdsz where id = ?", processId);
if (rs.next()) {
String formModeId = rs.getString("formmodeid");
insertList.add(formModeId);
insertList.add(rs.getString("jdmc"));
insertList.add(rs.getString("jdms"));
insertList.add(rs.getString("jdlx"));
insertList.add(rs.getString("hj"));
insertList.add(rs.getString("sfqy"));
insertList.add(rs.getString("zssx"));
// zpjd
insertList.add(processId);
// zplc
insertList.add(billId);
// 插入主表数据
rs.executeUpdate(insertSql, insertList);
refreshRight(uuid, formModeId, processId);
}
}
/**
* 权限重构插入明细表数据
*
* @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<String>> insertList = new ArrayList<>();
while (rs.next()) {
List<String> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(rs.getString("czan"));
paramList.add(rs.getString("zdyxsmc"));
paramList.add(rs.getString("sfqy"));
paramList.add(rs.getString("tzymbt"));
paramList.add(rs.getString("tzymdz"));
paramList.add(rs.getString("zssx"));
insertList.add(paramList);
}
for (List<String> 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<String> paramList = new ArrayList<>();
// mainid
paramList.add(bid);
paramList.add(rs.getString("ymbt"));
paramList.add(rs.getString("ymdz"));
paramList.add(rs.getString("zssx"));
insertList.add(paramList);
}
for (List<String> list : insertList) {
rs.executeUpdate("insert into " + MODE_TABLE_NAME_DT2 + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list);
}
}
}
}