weaver-hrm-recruit/src/weaver/formmode/recruit/modeexpand/interview/CancelInterviewResultModeEx...

138 lines
5.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package weaver.formmode.recruit.modeexpand.interview;
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.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import java.util.*;
/**
* @author:dxfeng
* @createTime: 2023/09/26
* @version: 1.0
*/
public class CancelInterviewResultModeExpand extends AbstractModeExpandJavaCodeNew {
private static final String MODE_TABLE_NAME = "uf_jcl_ms";
/**
* 消息来源ID
*/
private final String messageType;
/**
* 消息提醒标题
*/
private final String title;
public CancelInterviewResultModeExpand() {
super();
messageType = RecruitModeUtil.getRecruitPropValue("INTERVIEW_MESSAGE_TYPE");
title = RecruitModeUtil.getRecruitPropValue("INTERVIEW_CANCEL_MESSAGE_TITLE");
}
@Override
public Map<String, String> doModeExpand(Map<String, Object> param) {
Map<String, String> result = new HashMap<>();
String cancelInterview = Util.null2String(param.get("cancelInterview"));
if (!"true".equals(cancelInterview)) {
return result;
}
try {
//数据id
int billId;
//模块id
int modeId;
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
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<String, Object> mainDataMap = new HashMap<>();
for (Property property : properties) {
mainDataMap.put(property.getName(), property.getValue());
}
// 更新面试状态为“已取消”
RecordSet rs = new RecordSet();
rs.executeUpdate("update " + MODE_TABLE_NAME + " set zt = 4 where id = ?", billId);
// 发送消息
StringBuilder msgBuilder = new StringBuilder();
getApplicantsInfo(msgBuilder, Util.null2String(mainDataMap.get("ypz")), Util.null2String(mainDataMap.get("ypzw")));
if (StringUtils.isNotBlank(msgBuilder)) {
String formId = Util.null2String(param.get("formId"));
msgBuilder.insert(0, RecruitModeUtil.getResourceNames(requestInfo.getCreatorid()) + "取消了面试,请知悉。取消原因:" + getCancelReason(formId, Util.null2String(mainDataMap.get("qxyy"))) + "<br/>");
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(msrq).append(";面试官:").append(RecruitModeUtil.getResourceNames(msg)).append("").append(RecruitModeUtil.getResourceNames(ptmsg)).append("<br/>");
msgBuilder.append("面试地址:").append(msdd);
// 消息发送
Set<String> userIdSet = new HashSet<>();
userIdSet.addAll(Arrays.asList(msg.split(",")));
userIdSet.addAll(Arrays.asList(ptmsg.split(",")));
RecruitModeUtil.messagePush(messageType, title, msgBuilder.toString(), userIdSet, Integer.parseInt(requestInfo.getCreatorid()));
}
}
}
} catch (Exception e) {
result.put("errmsg", "自定义出错信息");
result.put("flag", "false");
}
return result;
}
/**
* 获取应聘者信息
*
* @param msgBuilder 消息内容
* @param applicantId 应聘者ID
* @param positionId 应聘职位ID
*/
private void getApplicantsInfo(StringBuilder msgBuilder, String applicantId, String positionId) {
if (StringUtils.isAnyBlank(applicantId, positionId)) {
return;
}
RecordSet rs = new RecordSet();
rs.executeQuery("select xm from uf_jcl_yppc where id = ?", applicantId);
if (rs.next()) {
msgBuilder.append("应聘者:").append(rs.getString("xm"));
}
rs.executeQuery("select zpzwmc from uf_jcl_zp_zpzw where id = ?", positionId);
if (rs.next()) {
msgBuilder.append(";应聘职位:").append(rs.getString("zpzwmc"));
}
msgBuilder.append("<br/>");
}
/**
* 获取取消理由
*
* @param formId 表单ID
* @param value 下拉框值
* @return
*/
private String getCancelReason(String formId, String value) {
String cancelReason = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select selectname from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = 'qxyy' ) and selectvalue =?", formId, value);
if (rs.next()) {
cancelReason = rs.getString("selectname");
}
return cancelReason;
}
}