Forráskód Böngészése

refactor(check): 优化班组未完成保养提醒邮件发送逻辑

- 将原来的逐个发送邮件改为批量收集邮箱地址后统一发送
- 通过逗号分隔多个收件人地址实现一封邮件多人接收
- 添加邮箱地址去重和空值检查机制
- 减少邮件发送次数提高系统性能
- 保持原有的邮件内容和主题不变
dazhaxie 1 hete
szülő
commit
97325ca625

+ 7 - 1
platform-service/src/main/java/com/platform/service/check/impl/CheckJobServiceImpl.java

@@ -2785,13 +2785,19 @@ public class CheckJobServiceImpl extends BaseServiceImpl<CheckJobMapper, CheckJo
             }
             List<Map<String, Object>> devices = new ArrayList<>(deviceMap.values());
             String content = MessageTemplateUtil.getTeamUnfinishedEmailContent(deptName, date, devices);
+            // 收集该班组下所有班长的邮箱,一封邮件多收件人发送
+            // sendHtmlMail 的 to 参数底层走 InternetAddress.parse,支持逗号分隔的多个地址
+            List<String> emails = new ArrayList<>();
             for (SysUserVO leader : leaders) {
                 if (StringUtils.isNotBlank(leader.getEmail())) {
-                    mailService.sendHtmlMail(leader.getEmail(), "设备保养任务未完成提醒", content);
+                    emails.add(leader.getEmail().trim());
                 } else {
                     log.warn("班长 {} 未配置邮箱,无法发送未完成保养提醒", leader.getRealName());
                 }
             }
+            if (!emails.isEmpty()) {
+                mailService.sendHtmlMail(String.join(",", emails), "设备保养任务未完成提醒", content);
+            }
         }
     }