diff --git a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java index 74fb0fc..52f8a09 100644 --- a/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java +++ b/src/com/engine/recruit/service/impl/InductionManageServiceImpl.java @@ -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); diff --git a/src/com/engine/recruit/util/RecruitMessageUtils.java b/src/com/engine/recruit/util/RecruitMessageUtils.java index 06326ed..0919968 100644 --- a/src/com/engine/recruit/util/RecruitMessageUtils.java +++ b/src/com/engine/recruit/util/RecruitMessageUtils.java @@ -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 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 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"); diff --git a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java index f5e9fbf..a73a672 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java @@ -114,9 +114,9 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod String emailContent = "
请您答复是否参加此次邀请? 参加 不参加
"; // 邮件内容拼接确认信息 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); } } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java index f161c26..90cb231 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java @@ -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); } } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/InterviewMsgUtil.java b/src/weaver/formmode/recruit/modeexpand/interview/InterviewMsgUtil.java index ee2c812..77d7b38 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/InterviewMsgUtil.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/InterviewMsgUtil.java @@ -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 mainDataMap, int billId, boolean needFeedback) { + public static void sendEmailAndMsg(User user, Map 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 = "
请您答复是否参加此次邀请? 参加 不参加
"; // 邮件内容拼接确认信息 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) { diff --git a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java index 9334d6b..dc33b9f 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/UpdateInterviewModeExpand.java @@ -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: diff --git a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java index 2a026d2..7edab97 100644 --- a/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/offer/CreateOfferModeExpand.java @@ -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")); diff --git a/src/weaver/formmode/recruit/modeexpand/written/BatchAddWrittenResultModeExpand.java b/src/weaver/formmode/recruit/modeexpand/written/BatchAddWrittenResultModeExpand.java index 8b91bfe..05f8465 100644 --- a/src/weaver/formmode/recruit/modeexpand/written/BatchAddWrittenResultModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/written/BatchAddWrittenResultModeExpand.java @@ -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) { diff --git a/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java b/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java index 51be2f8..b41c46e 100644 --- a/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java @@ -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) { diff --git a/src/weaver/formmode/yaq/modeexpand/email/EmailUpdateExpand.java b/src/weaver/formmode/yaq/modeexpand/email/EmailUpdateExpand.java new file mode 100644 index 0000000..5648ddd --- /dev/null +++ b/src/weaver/formmode/yaq/modeexpand/email/EmailUpdateExpand.java @@ -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 doModeExpand(Map param) { + Map 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 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; + } + } +}