面试流程,消息提醒、日程、邮件
parent
641587f8db
commit
e19a2add59
@ -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;
|
||||
|
||||
}
|
@ -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…
Reference in New Issue