From 39539e5ef62e2ee7da103da3f62f85766ce4724e Mon Sep 17 00:00:00 2001 From: guo <1716967236@qq.com> Date: Thu, 11 Jul 2024 17:05:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=BC=96=E7=A0=81=E7=9A=84?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utils/GenerateNumTool.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java diff --git a/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java b/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java new file mode 100644 index 0000000..e34d658 --- /dev/null +++ b/src/main/java/com/guo/learningprogresstracker/utils/GenerateNumTool.java @@ -0,0 +1,39 @@ +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; + } +}