|
|
/**
|
|
|
* 邮件服务类 - 负责邮件通知功能
|
|
|
* 遵循单一职责原则:只负责邮件发送相关的业务逻辑
|
|
|
*/
|
|
|
public class EmailService {
|
|
|
|
|
|
/**
|
|
|
* 发送员工入职通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param department 部门
|
|
|
* @param hireDate 入职日期字符串
|
|
|
*/
|
|
|
public void sendWelcomeEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
String department, String hireDate) {
|
|
|
String subject = "欢迎加入我们的团队!";
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"恭喜您成功加入我们的团队!\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"部门:%s\n" +
|
|
|
"入职日期:%s\n\n" +
|
|
|
"我们期待您的贡献!如有任何问题,请随时联系人力资源部门。\n\n" +
|
|
|
"此致\n" +
|
|
|
"人力资源部",
|
|
|
employeeName, employeeId, department, hireDate
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送员工离职通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param lastWorkingDay 最后工作日字符串
|
|
|
*/
|
|
|
public void sendFarewellEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
String lastWorkingDay) {
|
|
|
String subject = "离职通知确认";
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"感谢您在公司工作期间的贡献。\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"最后工作日:%s\n\n" +
|
|
|
"祝您未来一切顺利!\n\n" +
|
|
|
"此致\n" +
|
|
|
"人力资源部",
|
|
|
employeeName, employeeId, lastWorkingDay
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送薪资调整通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param oldSalary 调整前薪资
|
|
|
* @param newSalary 调整后薪资
|
|
|
* @param effectiveDate 生效日期字符串
|
|
|
*/
|
|
|
public void sendSalaryAdjustmentEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
double oldSalary, double newSalary, String effectiveDate) {
|
|
|
String subject = "薪资调整通知";
|
|
|
double changeAmount = newSalary - oldSalary;
|
|
|
double changePercentage = (changeAmount / oldSalary) * 100;
|
|
|
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"很高兴通知您,您的薪资已进行调整。\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"调整前薪资:%.2f\n" +
|
|
|
"调整后薪资:%.2f\n" +
|
|
|
"调整金额:%.2f (%.2f%%)\n" +
|
|
|
"生效日期:%s\n\n" +
|
|
|
"感谢您的努力工作!\n\n" +
|
|
|
"此致\n" +
|
|
|
"人力资源部",
|
|
|
employeeName, employeeId, oldSalary, newSalary,
|
|
|
changeAmount, changePercentage, effectiveDate
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送职位变动通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param oldPosition 原职位
|
|
|
* @param newPosition 新职位
|
|
|
* @param effectiveDate 生效日期字符串
|
|
|
*/
|
|
|
public void sendPositionChangeEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
String oldPosition, String newPosition, String effectiveDate) {
|
|
|
String subject = "职位变动通知";
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"很高兴通知您,您的职位已进行调整。\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"原职位:%s\n" +
|
|
|
"新职位:%s\n" +
|
|
|
"生效日期:%s\n\n" +
|
|
|
"祝贺您!\n\n" +
|
|
|
"此致\n" +
|
|
|
"人力资源部",
|
|
|
employeeName, employeeId, oldPosition, newPosition, effectiveDate
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送培训通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param courseName 课程名称
|
|
|
* @param trainingDate 培训日期字符串
|
|
|
* @param trainer 培训师
|
|
|
*/
|
|
|
public void sendTrainingNotificationEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
String courseName, String trainingDate, String trainer) {
|
|
|
String subject = "培训课程通知";
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"您已被安排参加以下培训课程:\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"课程名称:%s\n" +
|
|
|
"培训日期:%s\n" +
|
|
|
"培训师:%s\n\n" +
|
|
|
"请提前做好准备。\n\n" +
|
|
|
"此致\n" +
|
|
|
"培训部门",
|
|
|
employeeName, employeeId, courseName, trainingDate, trainer
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送证书发放通知邮件
|
|
|
* @param employeeId 员工ID
|
|
|
* @param employeeName 员工姓名
|
|
|
* @param employeeEmail 员工邮箱
|
|
|
* @param certificateName 证书名称
|
|
|
* @param issueDate 发放日期字符串
|
|
|
*/
|
|
|
public void sendCertificateEmail(String employeeId, String employeeName, String employeeEmail,
|
|
|
String certificateName, String issueDate) {
|
|
|
String subject = "证书发放通知";
|
|
|
String content = String.format(
|
|
|
"尊敬的 %s 先生/女士:\n\n" +
|
|
|
"恭喜您获得以下证书:\n" +
|
|
|
"员工ID:%s\n" +
|
|
|
"证书名称:%s\n" +
|
|
|
"发放日期:%s\n\n" +
|
|
|
"您的证书已生成,可在系统中查看和下载。\n\n" +
|
|
|
"此致\n" +
|
|
|
"培训部门",
|
|
|
employeeName, employeeId, certificateName, issueDate
|
|
|
);
|
|
|
sendEmail(employeeEmail, subject, content);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 实际的邮件发送方法(模拟实现)
|
|
|
* 在实际应用中,这里应该集成真实的邮件发送API
|
|
|
*/
|
|
|
private void sendEmail(String toEmail, String subject, String content) {
|
|
|
// 模拟邮件发送过程
|
|
|
System.out.println("========================================");
|
|
|
System.out.println("【邮件已发送】");
|
|
|
System.out.println("收件人: " + toEmail);
|
|
|
System.out.println("主题: " + subject);
|
|
|
System.out.println("内容:\n" + content);
|
|
|
System.out.println("========================================");
|
|
|
}
|
|
|
} |