From d93a4b6c8bc881982a66e74fbfadca2b2fa79754 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 19 Sep 2023 17:46:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=9B=E8=81=98=E6=B5=81=E7=A8=8B-=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E6=97=B6,=E7=94=9F=E6=88=90=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=E5=85=B3=E8=81=94=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/RelatedStageModeExpand.java | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 src/weaver/formmode/recruit/process/RelatedStageModeExpand.java diff --git a/src/weaver/formmode/recruit/process/RelatedStageModeExpand.java b/src/weaver/formmode/recruit/process/RelatedStageModeExpand.java new file mode 100644 index 0000000..06702e2 --- /dev/null +++ b/src/weaver/formmode/recruit/process/RelatedStageModeExpand.java @@ -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.*; + +/** + *

聚才林招聘

+ * + *

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

+ * + * @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 doModeExpand(Map param) { + Map 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 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 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 paramsList) { + String uuid = UUID.randomUUID().toString(); + ArrayList 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> insertList = new ArrayList<>(); + while (rs.next()) { + List 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 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(rs.getString("ymbt")); + paramList.add(rs.getString("ymdz")); + paramList.add(rs.getString("zssx")); + insertList.add(paramList); + } + for (List list : insertList) { + rs.executeUpdate("insert into " + MODE_TABLE_NAME_DT2 + " (mainid, ymbt, ymdz, zssx) values (?, ?, ?, ?)", list); + } + } + } +}