工单编号自动生成
- 前缀:HXGD
- 日期:使用 yyyyMMdd 格式,如 20251218
- 序号:6位数字,不足补0,每日从 000001 开始
- 线程安全:使用 synchronized 和 AtomicInteger 保证多线程环境下安全
- 自动日期切换:每天自动重置序号,无需手动管理
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.atomic.AtomicInteger;
public class TicketNumberGenerator {
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
private final AtomicInteger sequence = new AtomicInteger(1);
private LocalDate currentDate;
public TicketNumberGenerator() {
this.currentDate = LocalDate.now();
}
public String generate() {
LocalDate today = LocalDate.now();
if (!today.equals(this.currentDate)) {
this.currentDate = today;
this.sequence.set(1);
}
String datePart = today.format(DATE_FORMATTER);
String sequencePart = String.format("%06d", sequence.getAndIncrement());
return "HXGD" + datePart + sequencePart;
}
}