From 1ce606a5cd06b859a57eabf8b12c4fb3704168b4 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期一, 06 一月 2025 16:46:16 +0800 Subject: [PATCH] 20250106 --- ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java | 32 ++++++++++++++++++++++++++++++-- 1 files changed, 30 insertions(+), 2 deletions(-) diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java index 5be539f..f681ca0 100644 --- a/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java +++ b/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java @@ -6,6 +6,7 @@ import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Random; /** * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 @@ -18,10 +19,12 @@ private static final String LIS_LAST_ID_KEY = "id:generate:lis:id"; private static final String LIS_CURRENT_DATE_KEY = "id:generate:lis:currentDate"; +// private static final UidGenerator uidGenerator = new DefaultUidGenerator(); // 浣跨敤榛樿鐨凷nowflake鐢熸垚鍣� + @Autowired private StringRedisTemplate stringRedisTemplate; - public synchronized String generateLisID() { + public synchronized String generateLisID(String prefix) { String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); String storedDate = stringRedisTemplate.opsForValue().get(LIS_CURRENT_DATE_KEY); String lastIdStr = stringRedisTemplate.opsForValue().get(LIS_LAST_ID_KEY); @@ -35,7 +38,32 @@ stringRedisTemplate.opsForValue().set(LIS_LAST_ID_KEY, String.valueOf(lastId)); } String yyMMdd = currentDate.substring(2); - return String.format("%s%06d", yyMMdd, lastId); + return String.format(prefix+"%s%05d", yyMMdd, lastId); + } + + + //鐢熸垚浣撴鍙风敤 + private static long lastTimestamp = -1; + private static final Random random = new Random(); + + public static synchronized String getTjNumber() { + long timestamp = System.currentTimeMillis(); // 鑾峰彇褰撳墠鏃堕棿鎴筹紙姣锛� + + // 濡傛灉鏃堕棿鎴冲拰涓婃鐢熸垚鐨勬椂闂存埑鐩稿悓锛岀敓鎴愪竴涓柊鐨勯殢鏈烘暟 + if (timestamp == lastTimestamp) { + return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100); + } else { + lastTimestamp = timestamp; // 鏇存柊鏈�鍚庣敓鎴愭椂闂存埑 + return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100); + } + } + + +// 浣跨敤鍒嗗竷寮廔D鐢熸垚鍣紙濡係nowflake锛� + public static String generateExamNumber() { +// long id = uidGenerator.getUID(); // 鑾峰彇鐢熸垚鐨勫敮涓�ID +// return String.format("%09d", Math.abs(id) % 1000000000); // 鏍煎紡鍖栦负9浣� + return null; } } -- Gitblit v1.8.0