Browse Source

计划员可能会有第二个邮箱,email2

master
han\hanst 2 weeks ago
parent
commit
8183a403db
  1. 38
      src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java
  2. 5
      src/main/java/com/xujie/sys/modules/sys/dto/UserEmailInfoDto.java
  3. 2
      src/main/resources/mapper/sys/SysUserDao.xml

38
src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpApplyServiceImpl.java

@ -2060,9 +2060,11 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx
log.warn("计划员ID {} 不存在,跳过下达邮件通知", plannerId);
continue;
}
String plannerEmail = planner.getEmail();
if (plannerEmail == null || plannerEmail.trim().isEmpty()) {
log.warn("计划员 {} 未配置邮箱,跳过下达邮件通知", planner.getUsername());
Set<String> plannerEmails = new LinkedHashSet<>();
appendEmailRecipients(plannerEmails, planner.getEmail());
appendEmailRecipients(plannerEmails, planner.getEmail2());
if (plannerEmails.isEmpty()) {
log.warn("计划员 {} 未配置邮箱(email/email2),跳过下达邮件通知", planner.getUsername());
continue;
}
@ -2074,10 +2076,11 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx
+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
+ "</p></body></html>";
MailUtil.sendMail(subject, body, new String[]{plannerEmail}, mailSendData);
successEmails.add(plannerEmail);
String[] recipients = plannerEmails.toArray(new String[0]);
MailUtil.sendMail(subject, body, recipients, mailSendData);
successEmails.addAll(plannerEmails);
log.info("已向计划员 {} ({}) 发送下达通知邮件,试验单: {}",
planner.getUsername(), plannerEmail, entity.getApplyNo());
planner.getUsername(), String.join(";", plannerEmails), entity.getApplyNo());
} catch (Exception e) {
log.error("向计划员ID {} 发送邮件失败: {}", plannerId, e.getMessage());
}
@ -2097,6 +2100,29 @@ public class ErfExpApplyServiceImpl extends ServiceImpl<ErfExpApplyMapper, ErfEx
}
}
/**
* 解析并追加邮箱地址支持英文逗号中文逗号分号顿号和空白分隔
*/
private void appendEmailRecipients(Set<String> recipientSet, String rawEmails) {
if (recipientSet == null || rawEmails == null) {
return;
}
String normalizedRaw = rawEmails.trim();
if (normalizedRaw.isEmpty()) {
return;
}
String[] emailArray = normalizedRaw.split("[,,;;、\\s]+");
for (String email : emailArray) {
if (email == null) {
continue;
}
String normalizedEmail = email.trim();
if (!normalizedEmail.isEmpty()) {
recipientSet.add(normalizedEmail);
}
}
}
/**
* 经理层审批全部通过后进入计划员排产节点时通知试验负责人其负责的试验申请单已审批通过
*/

5
src/main/java/com/xujie/sys/modules/sys/dto/UserEmailInfoDto.java

@ -27,4 +27,9 @@ public class UserEmailInfoDto {
* 用户邮箱
*/
private String email;
/**
* 用户备用邮箱
*/
private String email2;
}

2
src/main/resources/mapper/sys/SysUserDao.xml

@ -102,7 +102,7 @@
<!-- 根据用户ID查询用户邮件信息 -->
<select id="getUserEmailInfoById" resultType="com.xujie.sys.modules.sys.dto.UserEmailInfoDto">
SELECT user_id, username, email
SELECT user_id, username, email,email2
FROM sys_user
WHERE user_id = #{userId}
</select>

Loading…
Cancel
Save