/** * ID生成器工具类 * 提供生成唯一ID的功能 * 遵循单例设计模式 */ package com.employeetraining.util; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.concurrent.atomic.AtomicLong; public class IdGenerator { // 单例实例 private static final IdGenerator instance = new IdGenerator(); // 原子计数器,确保线程安全 private final AtomicLong counter = new AtomicLong(0); // 日期时间格式化器 private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // 私有构造函数,防止外部实例化 private IdGenerator() { } /** * 获取单例实例 */ public static IdGenerator getInstance() { return instance; } /** * 生成唯一ID */ public String generateId(String prefix) { String timestamp = LocalDateTime.now().format(formatter); long sequence = counter.incrementAndGet(); return prefix + "-" + timestamp + "-" + sequence; } /** * 生成员工ID */ public String generateEmployeeId() { return generateId("EMP"); } /** * 生成课程ID */ public String generateCourseId() { return generateId("CSE"); } /** * 生成培训记录ID */ public String generateTrainingRecordId() { return generateId("TRN"); } /** * 生成证书ID */ public String generateCertificateId() { return generateId("CRT"); } }