面试流程,消息提醒、日程、邮件
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