面试流程,消息提醒、日程、邮件

美之高
dxfeng 7 months ago
parent 641587f8db
commit e19a2add59

@ -1,7 +1,12 @@
package com.engine.mzg.conn; package com.engine.mzg.conn;
import com.engine.mzg.util.RecruitUtil;
import com.weaver.formmodel.data.model.Formfield;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import java.util.Map;
/** /**
* @author:dxfeng * @author:dxfeng
* @createTime: 2024/09/05 * @createTime: 2024/09/05
@ -25,6 +30,25 @@ public class RecruitCommon {
return ""; return "";
} }
/**
*
*
* @param key
* @return
*/
public static String getSettingValue(String key, Map<String, Formfield> fieldMap, Map<String, Object> paramsData) {
RecordSet rs = new RecordSet();
rs.executeQuery("select pzz from uf_recruit_setting where pzx = ? ", key);
String content= "";
if (rs.next()) {
content = rs.getString("pzz");
}
if(StringUtils.isNotBlank(content)){
content = RecruitUtil.getMsgReplaceStr(content, fieldMap, paramsData);
}
return content;
}
/** /**
* ID * ID
* *

@ -0,0 +1,32 @@
package com.engine.mzg.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WorkPlanCreateParams {
private String operateType;
private String billId;
private String workPlanType;
private String planName;
private String memberIds;
private String urgentLevel;
private String beginDateTime;
private String endDateTime;
private String workId;
}

@ -19,11 +19,13 @@ public enum EmailTemplateEnum {
/** /**
* *
*/ */
INTERVIEW(2, "面试"), INTERVIEW_FIRST(2, "第一轮面试"),
INTERVIEW_SECOND(3, "第二轮面试"),
INTERVIEW_THIRD(4, "第三轮面试"),
/** /**
* offer * offer
*/ */
OFFER(3, "offer"); OFFER(5, "offer");
EmailTemplateEnum(Integer value, String desc) { EmailTemplateEnum(Integer value, String desc) {
this.value = value; this.value = value;

@ -0,0 +1,17 @@
package weaver.formmode.mzg.modeexpand.interview;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2024/09/10
* @version: 1.0
*/
public class AdjustmentInterviewFlowExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> map) {
return null;
}
}

@ -0,0 +1,17 @@
package weaver.formmode.mzg.modeexpand.interview;
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2024/09/10
* @version: 1.0
*/
public class CancelInterviewFlowExpand extends AbstractModeExpandJavaCodeNew {
@Override
public Map<String, String> doModeExpand(Map<String, Object> map) {
return null;
}
}

@ -0,0 +1,144 @@
package weaver.interfaces.mzg.action.interview;
import com.engine.common.util.ServiceUtil;
import com.engine.mzg.conn.RecruitCommon;
import com.engine.mzg.enums.EmailTemplateEnum;
import com.engine.mzg.util.RecruitUtil;
import com.engine.workplan.service.impl.WorkPlanBaseServiceImpl;
import com.weaver.formmodel.data.manager.FormInfoManager;
import com.weaver.formmodel.data.model.Formfield;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.formmode.IgnoreCaseHashMap;
import weaver.general.Util;
import weaver.hrm.User;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author:dxfeng
* @createTime: 2024/09/11
* @version: 1.0
*/
public class SubmitInterviewAction implements Action {
private String interviewStep;
@Override
public String execute(RequestInfo requestInfo) {
RecordSet rs = new RecordSet();
try {
if (StringUtils.isBlank(interviewStep)) {
requestInfo.getRequestManager().setMessagecontent("面试流程配置异常,请检查");
return FAILURE_AND_CONTINUE;
}
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
int billId = requestInfo.getRequestManager().getBillid();
String billTableName = requestInfo.getRequestManager().getBillTableName();
int formId = requestInfo.getRequestManager().getFormid();
User user = requestInfo.getRequestManager().getUser();
IgnoreCaseHashMap<String, String> mainDataMap = new IgnoreCaseHashMap<>();
Property[] propertyArray = mainTableInfo.getProperty();
for (Property property : propertyArray) {
mainDataMap.put(property.getName(), property.getValue());
}
// 根据轮次
String msgKey;
String msgField;
String msrqField;
Integer emailTemplate;
if ("0".equals(interviewStep)) {
msgKey = "MSG_INTERVIEEW_FIRST";
msgField = "dylmsg";
msrqField = "dylmsrq";
emailTemplate = EmailTemplateEnum.INTERVIEW_FIRST.getValue();
} else if ("1".equals(interviewStep)) {
msgKey = "MSG_INTERVIEW_SECOND";
msgField = "delmsg";
msrqField = "delmsrq";
emailTemplate = EmailTemplateEnum.INTERVIEW_SECOND.getValue();
} else if ("2".equals(interviewStep)) {
msgKey = "MSG_INTERVIEW_THIRD";
msgField = "dslmsg";
msrqField = "dslmsrq";
emailTemplate = EmailTemplateEnum.INTERVIEW_THIRD.getValue();
} else {
return SUCCESS;
}
List<Formfield> fieldList = FormInfoManager.getInstance().getAllField(formId);
Map<String, Formfield> fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1));
Set<String> userIdSet = new HashSet<>();
userIdSet.add(Util.null2String(mainDataMap.get(msgField)));
String interviewDate = Util.null2String(mainDataMap.get(msrqField));
String msgContent = RecruitCommon.getSettingValue(msgKey,fieldMap, mainDataMap);
String msgCenterId = RecruitCommon.getSettingValue("MSG_CENTER_ID");
String planTitleInterview = RecruitCommon.getSettingValue("PLAN_TITLE_INTERVIEW",fieldMap, mainDataMap);
String msgTitleInterview = RecruitCommon.getSettingValue("MSG_TITLE_INTERVIEW",fieldMap, mainDataMap);
// 消息不为空,发送消息
RecruitUtil.messagePush(msgCenterId, msgTitleInterview, msgContent, userIdSet, user.getUID());
// 创建日程
Map<String, Object> maps = new HashMap<>(16);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime dateTime = LocalDateTime.parse(interviewDate, formatter);
LocalDateTime newDateTime = dateTime.plusHours(1);
maps.put("workPlanType", "0");
maps.put("planName", planTitleInterview);
maps.put("memberIDs", StringUtils.join(userIdSet, ","));
maps.put("urgentLevel", "1");
maps.put("beginDateTime", interviewDate);
maps.put("endDateTime", newDateTime.format(formatter));
maps.put("isEnableSecondAuth", "0");
Map<String, Object> result = ServiceUtil.getService(WorkPlanBaseServiceImpl.class, user).addWorkPlan(maps);
Integer workplanId = (Integer) result.get("workplanid");
rs.executeUpdate("update " + billTableName + " set msrc = ? where id = ?", workplanId, billId);
// 发送邮件
Map<String, List<Formfield>> fieldMapList = fieldList.stream().collect(Collectors.groupingBy(Formfield::getFieldname));
String emailTitle = "";
String emailContent = "";
rs.executeQuery("select yjzt ,yjnr from uf_recruit_email where mblx =? ", emailTemplate);
if (rs.next()) {
emailTitle = rs.getString("yjzt");
emailContent = rs.getString("yjnr");
}
emailContent = RecruitUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap);
RecruitUtil.sendEmail(Util.null2String(mainDataMap.get("dzyx")), emailTitle, emailContent);
return SUCCESS;
} catch (Exception e) {
rs.writeLog("InterviewAction error: ", e);
requestInfo.getRequestManager().setMessagecontent(e.getMessage());
return FAILURE_AND_CONTINUE;
}
}
public String getInterviewStep() {
return interviewStep;
}
public void setInterviewStep(String interviewStep) {
this.interviewStep = interviewStep;
}
}
Loading…
Cancel
Save