package com.guo.learningprogresstracker.utils; import lombok.RequiredArgsConstructor; import java.text.SimpleDateFormat; import java.util.Date; /** * 用于生成编码的工具 * * @author guo */ @RequiredArgsConstructor public class GenerateNumTool { public static int getNextSequence() { // 获取当前时间的毫秒级时间戳 long timestamp = System.currentTimeMillis(); // 使用时间戳的最后6位作为序列号 return (int) (timestamp % 1_000_000); } /** * 生成以prefix开头separator分割的编码 * 例如:PREFIX—20240711-423468 * @param prefix * @param separator * @return */ public String generateNum(String prefix, String separator) { String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); // 唯一的后缀 int sequence = getNextSequence(); // 返回完整的 taskNum return prefix + separator + currentDate + separator + sequence; } }