From af0d00095af81452fc687a62f0011f1779385e0b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Sun, 3 Nov 2024 13:05:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E8=AF=84=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/recruit/conn/RecruitRecordSet.java | 28 ++- .../RecruitMobileModeController.java | 9 + .../service/RecruitInterviewService.java | 8 + .../impl/RecruitInterviewServiceImpl.java | 47 +++++ .../wrapper/RecruitInterviewWrapper.java | 6 + .../BatchAddInterviewResultModeExpand.java | 4 +- .../interview/CreateInterviewModeExpand.java | 8 +- .../interview/DeleteInterviewExpand.java | 44 +++++ .../EditInterviewEvaluateExpand.java | 96 +++++++++++ .../interview/InterviewEvaluate.java | 163 ++++++++++++++++++ .../interview/UpdateInterviewModeExpand.java | 5 + .../UrgeInterviewEvaluationExpand.java | 77 +++++++++ 12 files changed, 489 insertions(+), 6 deletions(-) create mode 100644 src/weaver/formmode/recruit/modeexpand/interview/DeleteInterviewExpand.java create mode 100644 src/weaver/formmode/recruit/modeexpand/interview/EditInterviewEvaluateExpand.java create mode 100644 src/weaver/formmode/recruit/modeexpand/interview/InterviewEvaluate.java create mode 100644 src/weaver/formmode/recruit/modeexpand/interview/UrgeInterviewEvaluationExpand.java diff --git a/src/com/engine/recruit/conn/RecruitRecordSet.java b/src/com/engine/recruit/conn/RecruitRecordSet.java index f08a779..920c995 100644 --- a/src/com/engine/recruit/conn/RecruitRecordSet.java +++ b/src/com/engine/recruit/conn/RecruitRecordSet.java @@ -25,12 +25,12 @@ public class RecruitRecordSet { * @param rs RecordSet * @return */ - public static Map getSingleRecordMap(RecordSet rs) { - Map dataMap = new RecruitDataMap<>(); + public static RecruitDataMap getSingleRecordMap(RecordSet rs) { + RecruitDataMap dataMap = new RecruitDataMap<>(); if (rs.next()) { String[] columnNames = rs.getColumnName(); for (String columnName : columnNames) { - dataMap.put(columnName.toLowerCase(), RecruitModeUtil.parseBlankToNull(rs.getString(columnName))); + dataMap.put(columnName, RecruitModeUtil.parseBlankToNull(rs.getString(columnName))); } } return dataMap; @@ -103,6 +103,28 @@ public class RecruitRecordSet { } } + /** + * 更新数据 + * + * @param dataMap + * @param tableName + * @param whereSql + */ + public static void updateData(Map dataMap, String tableName, String whereSql) { + List fieldList = new ArrayList<>(); + List dataList = new ArrayList<>(); + dataMap.forEach((key, value) -> { + fieldList.add(key + " = ? "); + dataList.add(value); + }); + String updateSql = "update " + tableName + " set " + StringUtils.join(fieldList, ",") + whereSql; + RecordSet rs = new RecordSet(); + rs.executeUpdate(updateSql, dataList); + if (StringUtils.isNotBlank(rs.getExceptionMsg())) { + throw new CustomizeRunTimeException(rs.getExceptionMsg()); + } + } + /** * 删除数据 * diff --git a/src/com/engine/recruit/controller/RecruitMobileModeController.java b/src/com/engine/recruit/controller/RecruitMobileModeController.java index 58d4906..3d2d4f0 100644 --- a/src/com/engine/recruit/controller/RecruitMobileModeController.java +++ b/src/com/engine/recruit/controller/RecruitMobileModeController.java @@ -78,4 +78,13 @@ public class RecruitMobileModeController { Map param = ParamUtil.request2Map(request); return new ResponseResult, Map>(user).run(getRecruitInterviewWrapper(user)::updateInterviewStatus, param); } + + @GET + @Path("/getInterviewEvaluateStatus") + @Produces(MediaType.APPLICATION_JSON) + public String getInterviewEvaluateStatus(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + Map param = ParamUtil.request2Map(request); + return new ResponseResult, String>(user).run(getRecruitInterviewWrapper(user)::getInterviewEvaluateStatus, param); + } } diff --git a/src/com/engine/recruit/service/RecruitInterviewService.java b/src/com/engine/recruit/service/RecruitInterviewService.java index c54f970..5b9a02d 100644 --- a/src/com/engine/recruit/service/RecruitInterviewService.java +++ b/src/com/engine/recruit/service/RecruitInterviewService.java @@ -15,4 +15,12 @@ public interface RecruitInterviewService { * @return */ Map updateInterviewStatus(Map param); + + /** + * 获取面试评价状态 + * + * @param param + * @return + */ + String getInterviewEvaluateStatus(Map param); } diff --git a/src/com/engine/recruit/service/impl/RecruitInterviewServiceImpl.java b/src/com/engine/recruit/service/impl/RecruitInterviewServiceImpl.java index dcf5a36..8471589 100644 --- a/src/com/engine/recruit/service/impl/RecruitInterviewServiceImpl.java +++ b/src/com/engine/recruit/service/impl/RecruitInterviewServiceImpl.java @@ -1,14 +1,17 @@ package com.engine.recruit.service.impl; import com.engine.core.impl.Service; +import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.conn.RecruitRecordSet; import com.engine.recruit.constant.RecruitConstant; +import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.service.RecruitInterviewService; import com.weaver.formmodel.data.model.Formfield; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; import weaver.general.Util; +import weaver.hrm.resource.ResourceComInfo; import java.util.*; import java.util.stream.Collectors; @@ -86,4 +89,48 @@ public class RecruitInterviewServiceImpl extends Service implements RecruitInter return returnMap; } + + @Override + public String getInterviewEvaluateStatus(Map param) { + try { + String id = Util.null2String(param.get("id")); + String msg = Util.null2String(param.get("msg")); + if (StringUtils.isBlank(msg)) { + return ""; + } + RecordSet rs = new RecordSet(); + int formId = ApplicantCommonInfo.getFormIdByTableName("uf_jcl_mspjfk"); + String[] split = msg.split(","); + List spanList = new ArrayList<>(); + ResourceComInfo resourceComInfo = new ResourceComInfo(); + for (String s : split) { + rs.executeQuery("select jg,zt from uf_jcl_mspjfk where msid = ? and msg = ?", id, s); + String jg = ""; + String zt = ""; + if (rs.next()) { + jg = Util.null2String(rs.getString("jg")); + zt = Util.null2String(rs.getString("zt")); + } + + if (StringUtils.isNotBlank(jg)) { + jg = ApplicantCommonInfo.getSelectName(String.valueOf(formId), "jg", jg); + spanList.add("" + resourceComInfo.getLastname(s) + "(" + jg + ")"); + } else { + String span = "" + resourceComInfo.getLastname(s); + if (StringUtils.isNotBlank(zt)) { + zt = ApplicantCommonInfo.getSelectName(String.valueOf(formId), "zt", zt); + span += "(" + zt + ")"; + } + span += ""; + spanList.add(span); + } + + } + + + return StringUtils.join(spanList, "
"); + } catch (Exception e) { + throw new CustomizeRunTimeException(e); + } + } } diff --git a/src/com/engine/recruit/wrapper/RecruitInterviewWrapper.java b/src/com/engine/recruit/wrapper/RecruitInterviewWrapper.java index b42cd18..4da9883 100644 --- a/src/com/engine/recruit/wrapper/RecruitInterviewWrapper.java +++ b/src/com/engine/recruit/wrapper/RecruitInterviewWrapper.java @@ -21,4 +21,10 @@ public class RecruitInterviewWrapper extends Service { public Map updateInterviewStatus(Map param) { return getRecruitInterviewService(user).updateInterviewStatus(param); } + + public String getInterviewEvaluateStatus(Map param) { + return getRecruitInterviewService(user).getInterviewEvaluateStatus(param); + } + + } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java index f5e9fbf..3268458 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java @@ -102,6 +102,8 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod modeRightInfo.setNewRight(true); modeRightInfo.editModeDataShare(user.getUID(), formModeId, bid); getApplicantsInfo(msgBuilder, Util.null2String(detailDataMap.get("ypz")), Util.null2String(detailDataMap.get("ypzw"))); + // 创建面试评价反馈数据 + InterviewEvaluate.createEvaluate(detailDataMap, bid, user); } // 发送邮件 @@ -145,7 +147,7 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod } } catch (Exception e) { new BaseBean().writeLog(e); - result.put("errmsg", "自定义出错信息"); + result.put("errmsg", e.getMessage()); result.put("flag", "false"); } return result; diff --git a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java index f161c26..d0dc80b 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java @@ -35,6 +35,8 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { */ private String title; + private final BaseBean baseBean = new BaseBean(); + @Override public Map doModeExpand(Map params) { Map result = new HashMap<>(); @@ -63,6 +65,8 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { } InterviewOperateTypeEnum operateTypeEnum = InterviewOperateTypeEnum.getOperateType(operateType); if (operateTypeEnum == InterviewOperateTypeEnum.ARRANGE) { + // 创建面试评价反馈数据 + InterviewEvaluate.createEvaluate(mainDataMap, billId, user); messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE; title = RecruitConstant.INTERVIEW_ADD_MESSAGE_TITLE; // 消息提醒 @@ -76,8 +80,8 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { } } } catch (Exception e) { - new BaseBean().writeLog(e); - result.put("errmsg", "自定义出错信息"); + baseBean.writeLog(e); + result.put("errmsg", e.getMessage()); result.put("flag", "false"); } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/DeleteInterviewExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/DeleteInterviewExpand.java new file mode 100644 index 0000000..ad4c30c --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/interview/DeleteInterviewExpand.java @@ -0,0 +1,44 @@ +package weaver.formmode.recruit.modeexpand.interview; + +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/10/14 + * @version: 1.0 + */ +public class DeleteInterviewExpand extends AbstractModeExpandJavaCodeNew { + @Override + public Map doModeExpand(Map params) { + Map result = new HashMap<>(); + RecordSet rs = new RecordSet(); + try { + //数据id + int billId; + //模块id + int modeId; + RequestInfo requestInfo = (RequestInfo) params.get("RequestInfo"); + User user = (User) params.get("user"); + if (requestInfo != null) { + billId = Util.getIntValue(requestInfo.getRequestid()); + modeId = Util.getIntValue(requestInfo.getWorkflowid()); + if (billId > 0 && modeId > 0) { + rs.executeUpdate("delete from uf_jcl_mspjfk where msid = ? ", billId); + } + } + } catch (Exception e) { + rs.writeLog(e); + result.put("errmsg", e.getMessage()); + result.put("flag", "false"); + } + + return result; + } +} diff --git a/src/weaver/formmode/recruit/modeexpand/interview/EditInterviewEvaluateExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/EditInterviewEvaluateExpand.java new file mode 100644 index 0000000..1b6ede7 --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/interview/EditInterviewEvaluateExpand.java @@ -0,0 +1,96 @@ +package weaver.formmode.recruit.modeexpand.interview; + +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +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.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/09/24 + * @version: 1.0 + */ +public class EditInterviewEvaluateExpand extends AbstractModeExpandJavaCodeNew { + @Override + public Map doModeExpand(Map params) { + Map result = new HashMap<>(); + RecordSet rs = new RecordSet(); + try { + //数据id + int billId; + //模块id + int modeId; + RequestInfo requestInfo = (RequestInfo) params.get("RequestInfo"); + User user = (User) params.get("user"); + if (requestInfo != null) { + billId = Util.getIntValue(requestInfo.getRequestid()); + modeId = Util.getIntValue(requestInfo.getWorkflowid()); + if (billId > 0 && modeId > 0) { + String creater = requestInfo.getCreatorid(); + MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); + Property[] properties = mainTableInfo.getProperty(); + Map mainDataMap = new HashMap<>(16); + for (Property property : properties) { + mainDataMap.put(property.getName(), property.getValue()); + } + String msid = Util.null2String(mainDataMap.get("msid")); + String jg = Util.null2String(mainDataMap.get("jg")); + rs.executeQuery("select * from uf_jcl_mspjfk where msid = ? and id != ? and jg is not null", msid, billId); + boolean hasEvaluate = rs.next() || StringUtils.isNotBlank(jg); + + if (hasEvaluate) { + // 更新为已反馈 + rs.executeUpdate("update uf_jcl_ms set zt = 2 where id = ? ", msid); + } else { + // 更新为未反馈 + rs.executeUpdate("update uf_jcl_ms set zt = 0 where id = ? ", msid); + } + + //// 发送消息 + //String messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE; + //String title = RecruitConstant.INTERVIEW_EVALUATE_MESSAGE_TITLE; + // + // + //String ypz = Util.null2String(mainDataMap.get("ypz")); + //String ypzw = Util.null2String(mainDataMap.get("ypzw")); + //String msfkr = Util.null2String(mainDataMap.get("msfktxr")); + //String msrq = Util.null2String(mainDataMap.get("msrq")); + //String msg = Util.null2String(mainDataMap.get("msg")); + //String ptmsg = Util.null2String(mainDataMap.get("ptmsg")); + //String formId = Util.null2String(params.get("formId")); + // + //StringBuilder msgBuilder = new StringBuilder(); + //msgBuilder.append(RecruitModeUtil.getResourceNames(msfkr)).append("已经提交了面试评价"); + //msgBuilder.append("
"); + //msgBuilder.append("应聘者:").append(ApplicantCommonInfo.getApplicantName(ypz)).append(";应聘职位:").append(ApplicantCommonInfo.getApplicantPosition(ypzw)); + //msgBuilder.append("
"); + //msgBuilder.append("面试时间:").append(msrq).append(";面试官:").append(RecruitModeUtil.getResourceNames(msg)).append(",").append(RecruitModeUtil.getResourceNames(ptmsg)); + //msgBuilder.append("
"); + //msgBuilder.append("面试结果:").append(ApplicantCommonInfo.getSelectName(formId, "jg", jg)); + // + // + //// 消息发送,通知创建人 + //Set userIdSet = new HashSet<>(); + //userIdSet.add(creater); + //String linkUrl = "spa/cube/index.html#/main/cube/card?billid=" + billId + "&type=0&modeId=" + modeId; + //RecruitModeUtil.messagePush(messageType, title, msgBuilder.toString(), userIdSet, user.getUID(), linkUrl, ""); + + + } + } + } catch (Exception e) { + rs.writeLog(e); + result.put("errmsg", e.getMessage()); + result.put("flag", "false"); + } + + return result; + } +} diff --git a/src/weaver/formmode/recruit/modeexpand/interview/InterviewEvaluate.java b/src/weaver/formmode/recruit/modeexpand/interview/InterviewEvaluate.java new file mode 100644 index 0000000..ee2a629 --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/interview/InterviewEvaluate.java @@ -0,0 +1,163 @@ +package weaver.formmode.recruit.modeexpand.interview; + +import com.engine.recruit.conn.ApplicantCommonInfo; +import com.engine.recruit.conn.RecruitDataMap; +import com.engine.recruit.conn.RecruitRecordSet; +import com.engine.recruit.exception.CustomizeRunTimeException; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.hrm.User; + +import java.util.Map; +import java.util.UUID; + +/** + * @author:dxfeng + * @createTime: 2024/09/23 + * @version: 1.0 + */ +public class InterviewEvaluate { + private static final String TABLE_NAME = "uf_jcl_mspjfk"; + + /** + * 创建面试,针对面试官创建面试反馈记录,同步批次ID,面试ID + * + * @param mainDataMap + * @param msId + * @param user + */ + public static void createEvaluate(Map mainDataMap, int msId, User user) { + int formModeId = ApplicantCommonInfo.getModeIdByTableName(TABLE_NAME); + if (formModeId < 0) { + new BaseBean().writeLog("uf_jcl_mspjfk,未查询到对应模板"); + } + String msg = Util.null2String(mainDataMap.get("msg")); + if (StringUtils.isBlank(msg)) { + throw new CustomizeRunTimeException("面试官为空,请检查面试官设置"); + } + String[] split = msg.split(","); + for (String msgId : split) { + insertData(mainDataMap, msId, user, TABLE_NAME, formModeId, msgId); + } + } + + + /** + * 调整面试,同步调整面试反馈记录,若删除面试官则删除对应的面试反馈记录,若增加面试官,则创建增加面试的面试反馈记录 + * + * @param mainDataMap + * @param msId + * @param user + */ + public static void updateEvaluate(Map mainDataMap, int msId, User user) { + RecordSet rs = new RecordSet(); + int formModeId = ApplicantCommonInfo.getModeIdByTableName(TABLE_NAME); + if (formModeId < 0) { + rs.writeLog("uf_jcl_mspjfk,未查询到对应模板"); + } + String msg = Util.null2String(mainDataMap.get("msg")); + if (StringUtils.isBlank(msg)) { + throw new CustomizeRunTimeException("面试官为空,请检查面试官设置"); + } + + // 删除非面试官数据 + rs.executeUpdate("delete from " + TABLE_NAME + " where msid=" + msId + " and msg not in (" + msg + ")"); + + String[] split = msg.split(","); + String selectSql = "select id from " + TABLE_NAME + " where msid = ? and msg = ?"; + for (String msgId : split) { + String billId = ""; + rs.executeQuery(selectSql, msId, msgId); + if (rs.next()) { + billId = rs.getString("id"); + } + + if (StringUtils.isBlank(billId)) { + // 新增数据 + insertData(mainDataMap, msId, user, TABLE_NAME, formModeId, msgId); + } else { + // 更新数据 + RecruitDataMap dataMap = new RecruitDataMap<>(); + // id + dataMap.put("id", billId); + // 应聘者 + dataMap.put("ypz", mainDataMap.get("ypz")); + // 应聘职位 + dataMap.put("ypzw", mainDataMap.get("ypzw")); + // 面试方式 + dataMap.put("msfs", mainDataMap.get("msfs")); + // 面试环节 + dataMap.put("mshj", mainDataMap.get("mshj")); + // 面试轮次 + dataMap.put("msc", mainDataMap.get("msc")); + // 面试日期 + dataMap.put("msrq", mainDataMap.get("msrq")); + // 面试地址 + dataMap.put("msdd", mainDataMap.get("msdd")); + + // 更新数据 + RecruitRecordSet.updateDataById(dataMap, TABLE_NAME); + } + } + } + + + /** + * 取消面试,同步取消对应的面试反馈记录的面试状态为已取消 + * + * @param msId + */ + public static void cancelEvaluate(int msId) { + RecordSet rs = new RecordSet(); + rs.executeUpdate("update " + TABLE_NAME + " set zt = 4 where msid=" + msId); + } + + + /** + * 插入面试评价数据 + * + * @param mainDataMap + * @param msId + * @param user + * @param tableName + * @param formModeId + * @param msgId + */ + private static void insertData(Map mainDataMap, int msId, User user, String tableName, int formModeId, String msgId) { + RecruitDataMap dataMap = new RecruitDataMap<>(); + String uuid = UUID.randomUUID().toString(); + dataMap.put("modeuuid", uuid); + dataMap.put("formmodeid", formModeId); + RecruitRecordSet.buildModeInsertFields(dataMap, user.getUID()); + // 面试状态(设置为待面试) + dataMap.put("zt", "0"); + // 批次ID + dataMap.put("pcid", mainDataMap.get("pcid")); + // 面试ID + dataMap.put("msid", msId); + // 应聘者 + dataMap.put("ypz", mainDataMap.get("ypz")); + // 应聘职位 + dataMap.put("ypzw", mainDataMap.get("ypzw")); + // 面试方式 + dataMap.put("msfs", mainDataMap.get("msfs")); + // 面试环节 + dataMap.put("mshj", mainDataMap.get("mshj")); + // 面试轮次 + dataMap.put("msc", mainDataMap.get("msc")); + // 面试日期 + dataMap.put("msrq", mainDataMap.get("msrq")); + // 面试地址 + dataMap.put("msdd", mainDataMap.get("msdd")); + // 面试官 + dataMap.put("msg", msgId); + + // 创建数据 + RecruitRecordSet.insertData(dataMap, tableName); + // 刷新权限 + RecruitRecordSet.refreshRight(uuid, tableName, formModeId, user.getUID()); + } + +} diff --git a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java index 9334d6b..6ba00a6 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java @@ -76,10 +76,15 @@ public class UpdateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE; title = RecruitConstant.INTERVIEW_CANCEL_MESSAGE_TITLE; cancelInterView(params, requestInfo, billId, mainDataMap); + // 更新面试评价状态为已取消 + InterviewEvaluate.cancelEvaluate(billId); // 发送邮件 InterviewMsgUtil.sendEmailAndMsg(mainDataMap, billId, false); break; case ADJUSTMENT: + // 更新面试评价 + InterviewEvaluate.updateEvaluate(mainDataMap, billId, user); + messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE; title = RecruitConstant.INTERVIEW_ADJUSTMENT_MESSAGE_TITLE; // 发送消息提醒 diff --git a/src/weaver/formmode/recruit/modeexpand/interview/UrgeInterviewEvaluationExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/UrgeInterviewEvaluationExpand.java new file mode 100644 index 0000000..203d204 --- /dev/null +++ b/src/weaver/formmode/recruit/modeexpand/interview/UrgeInterviewEvaluationExpand.java @@ -0,0 +1,77 @@ +package weaver.formmode.recruit.modeexpand.interview; + +import com.engine.recruit.constant.RecruitConstant; +import com.weaver.formmodel.data.model.Formfield; +import org.apache.commons.collections.CollectionUtils; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; +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.stream.Collectors; + +/** + * @author:dxfeng + * @createTime: 2024/10/12 + * @version: 1.0 + */ +public class UrgeInterviewEvaluationExpand extends AbstractModeExpandJavaCodeNew { + private static final String MODE_TABLE_NAME = "uf_jcl_ms"; + + @Override + public Map doModeExpand(Map params) { + Map result = new HashMap<>(); + RecordSet rs = new RecordSet(); + try { + //数据id + int billId; + //模块id + int modeId; + RequestInfo requestInfo = (RequestInfo) params.get("RequestInfo"); + if (requestInfo != null) { + billId = Util.getIntValue(requestInfo.getRequestid()); + modeId = Util.getIntValue(requestInfo.getWorkflowid()); + if (billId > 0 && modeId > 0) { + User user = (User) params.get("user"); + MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); + Property[] properties = mainTableInfo.getProperty(); + Map mainDataMap = new HashMap<>(); + for (Property property : properties) { + mainDataMap.put(property.getName(), property.getValue()); + } + + // 发送消息 + + String msgContent = "您有一个面试还未评价,请尽快填写评价
" + + "应聘者:$ypz$ ;应聘职位:$ypzw$;面试时间:$msrq$"; + Set userIdSet = new HashSet<>(); + + // 查询未反馈面试评价的面试官 + rs.executeQuery("select msg from uf_jcl_mspjfk where zt = 0 and msid = ?", billId); + while (rs.next()) { + userIdSet.add(rs.getString("msg")); + } + if (CollectionUtils.isNotEmpty(userIdSet)) { + // 消息发送 + List fieldList = RecruitModeUtil.getFieldList(MODE_TABLE_NAME); + Map fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1)); + String msgStr = RecruitModeUtil.getMsgReplaceStr(msgContent, fieldMap, mainDataMap); + RecruitModeUtil.messagePush(RecruitConstant.INTERVIEW_MESSAGE_TYPE, RecruitConstant.INTERVIEW_EVALUATE_MESSAGE_TITLE, msgStr, userIdSet, user.getUID()); + } + } + + } + } catch (Exception e) { + rs.writeLog(e); + result.put("errmsg", e.getMessage()); + result.put("flag", "false"); + } + + return result; + } +}