package weaver.formmode.recruit.modeexpand.interview; import com.engine.recruit.conn.ApplicantCommonInfo; import com.engine.recruit.enums.InterviewOperateTypeEnum; import com.engine.recruit.util.RecruitMessageUtils; import com.weaver.formmodel.data.model.Formfield; import org.apache.commons.lang3.StringUtils; 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: 2023/09/27 * @version: 1.0 */ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { /** * 消息来源ID */ private String messageType; /** * 消息提醒标题 */ private String title; @Override public Map doModeExpand(Map params) { Map result = new HashMap<>(); 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) { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); Map mainDataMap = new HashMap<>(16); for (Property property : properties) { mainDataMap.put(property.getName(), property.getValue()); } // 需要应聘者反馈 boolean needFeedback = "1".equals(Util.null2String(mainDataMap.get("sfxyfk"))); String operateType = Util.null2String(params.get("operateType")); if (StringUtils.isBlank(operateType)) { operateType = InterviewOperateTypeEnum.ARRANGE.getOperateType(); } InterviewOperateTypeEnum operateTypeEnum = InterviewOperateTypeEnum.getOperateType(operateType); if (operateTypeEnum == InterviewOperateTypeEnum.ARRANGE) { messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE"); title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_ADD_MESSAGE_TITLE"); // 消息提醒 arrangeInterview(user, mainDataMap); String tzypz = Util.null2String(mainDataMap.get("tzypz")); String yjnr = Util.null2String(mainDataMap.get("yjnr")); String yjtzmb = Util.null2String(mainDataMap.get("yjtzmb")); List sendTypeList = Arrays.asList(tzypz.split(",")); boolean sendEmail = sendTypeList.contains("0"); boolean sendSms = sendTypeList.contains("1"); String emailTitle = RecruitModeUtil.getEmailTitle(yjtzmb); List fieldList = RecruitModeUtil.getFieldList("uf_jcl_ms"); Map> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getLabelName)); // 发送邮件 String msgContent = RecruitModeUtil.getReplaceContent(yjnr, fieldMapList, mainDataMap); String yx = Util.null2String(mainDataMap.get("dzyx")); String sjh = Util.null2String(mainDataMap.get("sjhm")); if (sendEmail) { if (needFeedback) { RecordSet rs = new RecordSet(); rs.executeQuery("select modeuuid from uf_jcl_ms where id = ? ", billId); String uuid = ""; if (rs.next()) { uuid = rs.getString("modeuuid"); } String confirmUrl = RecruitModeUtil.HTTP_URL + "/spa/custom/static/index.html#/main/cs/app/9277c228302347dc88a958b69ee96234_Interview?uuid=" + uuid; String emailContent = "
请您答复是否参加此次邀请? 参加 不参加
"; // 邮件内容拼接确认信息 emailContent = msgContent + emailContent; RecruitMessageUtils.sendEmail(yx, emailTitle, emailContent); } else { RecruitMessageUtils.sendEmail(yx, emailTitle, msgContent); } } if (sendSms) { RecruitMessageUtils.sendSMS(sjh, msgContent); } } } } } catch (Exception e) { result.put("errmsg", "自定义出错信息"); result.put("flag", "false"); } return result; } /** * 安排面试拓展动作 * * @param user * @param mainDataMap */ private void arrangeInterview(User user, Map mainDataMap) { StringBuilder msgBuilder = new StringBuilder(); msgBuilder.append(RecruitModeUtil.getResourceNames(String.valueOf(user.getUID()))).append("安排了一场面试
"); String ypz = Util.null2String(mainDataMap.get("ypz")); String ypzw = Util.null2String(mainDataMap.get("ypzw")); String msrq = Util.null2String(mainDataMap.get("msrq")); String msg = Util.null2String(mainDataMap.get("msg")); String ptmsg = Util.null2String(mainDataMap.get("ptmsg")); String msdd = Util.null2String(mainDataMap.get("msdd")); msgBuilder.append("应聘者:").append(ApplicantCommonInfo.getApplicantName(ypz)); msgBuilder.append(";应聘职位:").append(ApplicantCommonInfo.getApplicantPosition(ypzw)); msgBuilder.append("
"); msgBuilder.append("面试时间:").append(msrq).append(";面试官:").append(RecruitModeUtil.getResourceNames(msg)).append(",").append(RecruitModeUtil.getResourceNames(ptmsg)).append("
"); msgBuilder.append("面试地址:").append(msdd); // 消息发送 Set userIdSet = new HashSet<>(); userIdSet.addAll(Arrays.asList(msg.split(","))); userIdSet.addAll(Arrays.asList(ptmsg.split(","))); RecruitModeUtil.messagePush(messageType, title, msgBuilder.toString(), userIdSet, user.getUID()); } }