generated from dxfeng/secondev-chapanda-feishu
ADD-招聘邮件指定邮箱发送
This commit is contained in:
parent
008c21b686
commit
6365b2f717
|
|
@ -143,7 +143,7 @@ public class InductionManageServiceImpl extends Service implements InductionMana
|
|||
emailContent = yjnr.replace("{链接地址}", messageLink);
|
||||
emailContent = RecruitModeUtil.getReplaceContent(emailContent, fieldMapList, mainDataMap);
|
||||
// 发送邮件
|
||||
RecruitMessageUtils.sendEmail(email, yjzt, emailContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, email, yjzt, emailContent);
|
||||
// 发送短信
|
||||
RecruitMessageUtils.sendSMS(mobile, smsContent);
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ package com.engine.recruit.util;
|
|||
import weaver.common.MessageUtil;
|
||||
import weaver.email.EmailWorkRunnable;
|
||||
import weaver.general.Util;
|
||||
|
||||
import java.util.Map;
|
||||
import weaver.hrm.User;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
|
|
@ -12,21 +11,12 @@ import java.util.Map;
|
|||
* @version: 1.0
|
||||
*/
|
||||
public class RecruitMessageUtils {
|
||||
public static boolean sendEmail(Map<String, Object> param) {
|
||||
String sendTo = Util.null2String(param.get("sendTo"));
|
||||
String emailTitle = Util.null2String(param.get("emailTitle"));
|
||||
String emailContent = Util.null2String(param.get("emailContent"));
|
||||
return sendEmail(sendTo, emailTitle, emailContent);
|
||||
}
|
||||
// TODO private String emailSubCompany = RecruitConstant.getRecruitPropValue("RECRUIT_EMAIL");
|
||||
private static String emailSubCompany = "-163";
|
||||
|
||||
public static boolean sendSMS(Map<String, Object> param) {
|
||||
String receiver = Util.null2String(param.get("receiver"));
|
||||
String content = Util.null2String(param.get("content"));
|
||||
return sendSMS(receiver, content);
|
||||
}
|
||||
|
||||
public static boolean sendEmail(String sendTo, String emailTitle, String emailContent) {
|
||||
return MessageUtil.sendEmail(sendTo, emailTitle, emailContent);
|
||||
public static boolean sendRecruitEmail(User user, String sendTo, String emailTitle, String emailContent) {
|
||||
EmailWorkRunnable emailWorkRunnable = new EmailWorkRunnable(sendTo, "","",Util.toHtmlMode(emailTitle), Util.toHtmlMode(emailContent),true,null,emailSubCompany);
|
||||
return emailWorkRunnable.emailCommonRemind();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -36,12 +26,29 @@ public class RecruitMessageUtils {
|
|||
* @param imageFileIds 邮件附件,imageFile表记录id,多个时英文逗号分隔
|
||||
* @return
|
||||
*/
|
||||
public static boolean sendEmailWithFile(String sendTo, String emailTitle, String emailContent, String imageFileIds) {
|
||||
EmailWorkRunnable emailWorkRunnable = new EmailWorkRunnable(sendTo, Util.toHtmlMode(emailTitle), Util.toHtmlMode(emailContent));
|
||||
public static boolean sendRecruitEmailWithFile(User user,String sendTo, String emailTitle, String emailContent, String imageFileIds) {
|
||||
EmailWorkRunnable emailWorkRunnable = new EmailWorkRunnable(sendTo, "","",Util.toHtmlMode(emailTitle), Util.toHtmlMode(emailContent),true,null,emailSubCompany);
|
||||
emailWorkRunnable.setImagefileids(imageFileIds);
|
||||
return emailWorkRunnable.emailCommonRemind();
|
||||
}
|
||||
|
||||
//public static boolean sendEmail(String sendTo, String emailTitle, String emailContent) {
|
||||
// return MessageUtil.sendEmail(sendTo, emailTitle, emailContent);
|
||||
//}
|
||||
//
|
||||
///**
|
||||
// * @param sendTo 收件人
|
||||
// * @param emailTitle 邮件标题
|
||||
// * @param emailContent 邮件内容
|
||||
// * @param imageFileIds 邮件附件,imageFile表记录id,多个时英文逗号分隔
|
||||
// * @return
|
||||
// */
|
||||
//public static boolean sendEmailWithFile(String sendTo, String emailTitle, String emailContent, String imageFileIds) {
|
||||
// EmailWorkRunnable emailWorkRunnable = new EmailWorkRunnable(sendTo, Util.toHtmlMode(emailTitle), Util.toHtmlMode(emailContent));
|
||||
// emailWorkRunnable.setImagefileids(imageFileIds);
|
||||
// return emailWorkRunnable.emailCommonRemind();
|
||||
//}
|
||||
|
||||
public static boolean sendSMS(String receiver, String content) {
|
||||
// 去除短信内容中的html样式
|
||||
content = content.replaceAll("<[^>]*>| ", "").replaceAll("\\n+", "\n");
|
||||
|
|
|
|||
|
|
@ -114,9 +114,9 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod
|
|||
String emailContent = "<div style=\"border:3px solid silver;width:635px;height:55px;line-height:55px;font-family:'microsoft Yahei';font-size:18px;font-weight:bold;color:#333;padding-left:10px\">请您答复是否参加此次邀请? <a href=\"" + confirmUrl + "&status=0\" style=\"text-decoration:underline;color:#0000cc;margin-right:10px\">参加</a> <a href=\"" + confirmUrl + "&status=1\" style=\"text-decoration:underline;color:#0000cc;\">不参加</a></div>";
|
||||
// 邮件内容拼接确认信息
|
||||
emailContent = msgContent + emailContent;
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, emailContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, emailContent);
|
||||
} else {
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, msgContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, msgContent);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
// 需要应聘者反馈
|
||||
boolean needFeedback = "1".equals(Util.null2String(mainDataMap.get("sfxyfk")));
|
||||
// 发送邮件、短信
|
||||
InterviewMsgUtil.sendEmailAndMsg(mainDataMap, billId, needFeedback);
|
||||
InterviewMsgUtil.sendEmailAndMsg(user, mainDataMap, billId, needFeedback);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import com.weaver.formmodel.data.model.Formfield;
|
|||
import weaver.conn.RecordSet;
|
||||
import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
@ -26,7 +27,7 @@ public class InterviewMsgUtil {
|
|||
* @param billId
|
||||
* @param needFeedback
|
||||
*/
|
||||
public static void sendEmailAndMsg(Map<String, Object> mainDataMap, int billId, boolean needFeedback) {
|
||||
public static void sendEmailAndMsg(User user, Map<String, Object> mainDataMap, int billId, boolean needFeedback) {
|
||||
String tzypz = Util.null2String(mainDataMap.get("tzypz"));
|
||||
String yjnr = Util.null2String(mainDataMap.get("yjnr"));
|
||||
String yjtzmb = Util.null2String(mainDataMap.get("yjtzmb"));
|
||||
|
|
@ -53,11 +54,11 @@ public class InterviewMsgUtil {
|
|||
String emailContent = "<div style=\"border:3px solid silver;width:635px;height:55px;line-height:55px;font-family:'microsoft Yahei';font-size:18px;font-weight:bold;color:#333;padding-left:10px\">请您答复是否参加此次邀请? <a href=\"" + confirmUrl + "&status=0\" style=\"text-decoration:underline;color:#0000cc;margin-right:10px\">参加</a> <a href=\"" + confirmUrl + "&status=1\" style=\"text-decoration:underline;color:#0000cc;\">不参加</a></div>";
|
||||
// 邮件内容拼接确认信息
|
||||
emailContent = msgContent + emailContent;
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, emailContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, emailContent);
|
||||
// 勾选了需要反馈,则需要将是否参加置空,且需要可以再次反馈
|
||||
rs.executeUpdate("update uf_jcl_ms set sfcj = null,zt = null where id = ? ", billId);
|
||||
} else {
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, msgContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, msgContent);
|
||||
}
|
||||
}
|
||||
if (sendSms) {
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class UpdateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
title = RecruitConstant.INTERVIEW_CANCEL_MESSAGE_TITLE;
|
||||
cancelInterView(params, requestInfo, billId, mainDataMap);
|
||||
// 发送邮件
|
||||
InterviewMsgUtil.sendEmailAndMsg(mainDataMap, billId, false);
|
||||
InterviewMsgUtil.sendEmailAndMsg(user, mainDataMap, billId, false);
|
||||
break;
|
||||
case ADJUSTMENT:
|
||||
messageType = RecruitConstant.INTERVIEW_MESSAGE_TYPE;
|
||||
|
|
@ -86,7 +86,7 @@ public class UpdateInterviewModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
adjustmentInterView(requestInfo.getCreatorid(), mainDataMap);
|
||||
boolean needFeedback = "1".equals(Util.null2String(mainDataMap.get("sfxyfk")));
|
||||
// 发送邮件、同安排面试
|
||||
InterviewMsgUtil.sendEmailAndMsg(mainDataMap, billId, needFeedback);
|
||||
InterviewMsgUtil.sendEmailAndMsg(user, mainDataMap, billId, needFeedback);
|
||||
// 更新反馈状态为未反馈
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
|
||||
if (sendEmail) {
|
||||
String offerAttach = RecruitModeUtil.getImageFileIdsByDocIds(Util.null2String(mainDataMap.get("offerfj")));
|
||||
RecruitMessageUtils.sendEmailWithFile(yx, emailTitle, msgContent, offerAttach);
|
||||
RecruitMessageUtils.sendRecruitEmailWithFile(user, yx, emailTitle, msgContent, offerAttach);
|
||||
}
|
||||
if (sendSms) {
|
||||
String name = Util.null2String(mainDataMap.get("xm"));
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class BatchAddWrittenResultModeExpand extends AbstractModeExpandJavaCodeN
|
|||
String yx = Util.null2String(detailDataMap.get("yx"));
|
||||
String sjh = Util.null2String(detailDataMap.get("sjh"));
|
||||
if (sendEmail) {
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, msgContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, msgContent);
|
||||
|
||||
}
|
||||
if (sendSms) {
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public class CreateWrittenModeExpand extends AbstractModeExpandJavaCodeNew {
|
|||
String yx = Util.null2String(mainDataMap.get("yx"));
|
||||
String sjh = Util.null2String(mainDataMap.get("sjh"));
|
||||
if (sendEmail) {
|
||||
RecruitMessageUtils.sendEmail(yx, emailTitle, msgContent);
|
||||
RecruitMessageUtils.sendRecruitEmail(user, yx, emailTitle, msgContent);
|
||||
|
||||
}
|
||||
if (sendSms) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,132 @@
|
|||
package weaver.formmode.yaq.modeexpand.email;
|
||||
|
||||
import com.engine.email.entity.EmailFlockSendAccountComInfo;
|
||||
import com.engine.email.entity.EmailFlockSendSyncSetComInfo;
|
||||
import com.engine.recruit.conn.RecruitDataMap;
|
||||
import com.engine.recruit.exception.CustomizeRunTimeException;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.email.EmailEncoder;
|
||||
import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew;
|
||||
import weaver.general.BaseBean;
|
||||
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.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2024/08/26
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class EmailUpdateExpand extends AbstractModeExpandJavaCodeNew {
|
||||
@Override
|
||||
public Map<String, String> doModeExpand(Map<String, Object> param) {
|
||||
Map<String, String> result = new HashMap<>();
|
||||
try {
|
||||
RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo");
|
||||
if (requestInfo != null) {
|
||||
String billId = Util.null2String(param.get("billid"));
|
||||
String src = Util.null2String(param.get("src"));
|
||||
if (StringUtils.isBlank(billId)) {
|
||||
throw new CustomizeRunTimeException("数据ID获取失败");
|
||||
}
|
||||
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
|
||||
Property[] properties = mainTableInfo.getProperty();
|
||||
RecruitDataMap<String> mainDataMap = new RecruitDataMap<>();
|
||||
for (Property property : properties) {
|
||||
mainDataMap.put(property.getName(), property.getValue());
|
||||
}
|
||||
String qydqpz = mainDataMap.get("qydqpz");
|
||||
// 如果是编辑操作、且当前配置未启用,不进行以下操作
|
||||
if("save".equals(src) && "0".equals(qydqpz)){
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
String sendProtocol = mainDataMap.get("send_protocol");
|
||||
String sendProtocolStr = "";
|
||||
if (StringUtils.isNotBlank(sendProtocol)) {
|
||||
switch (sendProtocol) {
|
||||
case "0":
|
||||
sendProtocolStr = "SMTP";
|
||||
break;
|
||||
case "1":
|
||||
sendProtocolStr = "EXCHANGE";
|
||||
break;
|
||||
case "2":
|
||||
sendProtocolStr = "Microsoft Graph";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (StringUtils.isBlank(sendProtocolStr)) {
|
||||
throw new CustomizeRunTimeException("发送协议转换失败,请检查配置");
|
||||
}
|
||||
String smtpServer = mainDataMap.get("smtp_server");
|
||||
String sendNeedssl = mainDataMap.get("send_needssl");
|
||||
String smtpServerPort = mainDataMap.get("smtp_serverport");
|
||||
String isstarttls = mainDataMap.get("isstarttls");
|
||||
String needCheck = mainDataMap.get("needcheck");
|
||||
String accountName = mainDataMap.get("accountname");
|
||||
String accountMailAddress = mainDataMap.get("accountmailaddress");
|
||||
String accountId = mainDataMap.get("accountid");
|
||||
String accountPassword = mainDataMap.get("accountpassword");
|
||||
// 密码加密转换
|
||||
String accountPasswordStr = EmailEncoder.EncoderPassword(accountPassword);
|
||||
if (StringUtils.isBlank(accountPasswordStr)) {
|
||||
throw new CustomizeRunTimeException("邮箱密码设置失败");
|
||||
}
|
||||
|
||||
String ewsServiceUrl = mainDataMap.get("ews_service_url");
|
||||
String ewsDomain = mainDataMap.get("ews_domain");
|
||||
String ewsVersion = mainDataMap.get("ews_version");
|
||||
String subcompanyid = mainDataMap.get("subcompanyid");
|
||||
|
||||
RecordSet rs = new RecordSet();
|
||||
|
||||
// 更新email_flocksendaccount表,指定subcompanyid的数据
|
||||
//String sql = "insert into email_flocksendaccount (send_protocol, smtp_server, send_needssl, smtp_serverport, isstarttls, needcheck, accountname, accountmailaddress," +
|
||||
// " accountid, accountpassword, ews_service_url, ews_domain, ews_version,subcompanyid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||
//boolean flag = rs.executeUpdate(sql, sendProtocol, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||||
boolean flag;
|
||||
rs.executeQuery("select * from email_flocksendaccount where subcompanyid = ?", subcompanyid);
|
||||
String sql = "";
|
||||
if (rs.next()) {
|
||||
sql = "update email_flocksendaccount set send_protocol = ?,smtp_server = ?,send_needssl = ? , smtp_serverport = ? , isstarttls = ?, needcheck = ?, accountname = ?, accountmailaddress = ?," +
|
||||
" accountid = ? , accountpassword = ? , ews_service_url = ? , ews_domain = ? , ews_version = ? where subcompanyid = ?";
|
||||
flag = rs.executeUpdate(sql, sendProtocolStr, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||||
} else {
|
||||
sql = "insert into email_flocksendaccount (send_protocol, smtp_server, send_needssl, smtp_serverport, isstarttls, needcheck, accountname, accountmailaddress," +
|
||||
" accountid, accountpassword, ews_service_url, ews_domain, ews_version,subcompanyid) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
|
||||
flag = rs.executeUpdate(sql, sendProtocolStr, smtpServer, sendNeedssl, smtpServerPort, isstarttls, needCheck, accountName, accountMailAddress, accountId, accountPasswordStr, ewsServiceUrl, ewsDomain, ewsVersion, subcompanyid);
|
||||
}
|
||||
|
||||
// 刷新缓存
|
||||
EmailFlockSendAccountComInfo emailFlockSendAccountComInfo = new EmailFlockSendAccountComInfo();
|
||||
emailFlockSendAccountComInfo.updateCache(subcompanyid);
|
||||
EmailFlockSendSyncSetComInfo efsssci = new EmailFlockSendSyncSetComInfo();
|
||||
efsssci.updateCache(subcompanyid);
|
||||
|
||||
|
||||
if (flag) {
|
||||
// 更新其他数据为不启用
|
||||
rs.executeUpdate("update uf_recruit_email set qydqpz = 0 where id != ? ", billId);
|
||||
rs.executeUpdate("update uf_recruit_email set qydqpz = 1 where id = ? ", billId);
|
||||
}
|
||||
|
||||
}
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
new BaseBean().writeLog("招聘邮箱设置异常", e);
|
||||
result.put("errmsg", e.getMessage());
|
||||
result.put("flag", "false");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue