From ec2bd151a3220b34eb7e33d43d25908b45ff349c Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期一, 24 二月 2025 17:59:08 +0800 Subject: [PATCH] sql记录 --- ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java | 35 ++++++++++++++++++++++++++++------- 1 files changed, 28 insertions(+), 7 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 5d88fd1..a72b099 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 @@ -18,6 +18,7 @@ public class IdUtils { private static final String LIS_LAST_ID_KEY = "id:generate:lis:id"; + private static final String TJH_LAST_ID_KEY = "id:generate:tjhs:tjh"; private static final String LIS_LAST_ID_INCR_KEY = "id:generate:lis:id:incr"; private static final String LIS_CURRENT_DATE_KEY = "id:generate:lis:currentDate"; @@ -30,6 +31,7 @@ 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); + if (StrUtil.isBlank(lastIdStr))lastIdStr = "0"; int lastId; if (storedDate == null || !storedDate.equals(currentDate)) { lastId = 1; @@ -68,16 +70,35 @@ private static long lastTimestamp = -1; private static final Random random = new Random(); - public static synchronized String getTjNumber() { - long timestamp = System.currentTimeMillis(); // 鑾峰彇褰撳墠鏃堕棿鎴筹紙姣锛� +// 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); +// } +// } - // 濡傛灉鏃堕棿鎴冲拰涓婃鐢熸垚鐨勬椂闂存埑鐩稿悓锛岀敓鎴愪竴涓柊鐨勯殢鏈烘暟 - if (timestamp == lastTimestamp) { - return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100); + + public synchronized String getTjNumber() { + String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date()); + String storedDate = stringRedisTemplate.opsForValue().get(LIS_CURRENT_DATE_KEY); + String lastIdStr = stringRedisTemplate.opsForValue().get(TJH_LAST_ID_KEY); + if (StrUtil.isBlank(lastIdStr))lastIdStr = "0"; + int lastId; + if (storedDate == null || !storedDate.equals(currentDate)) { + lastId = 1; + stringRedisTemplate.opsForValue().set(TJH_LAST_ID_KEY, String.valueOf(lastId)); + stringRedisTemplate.opsForValue().set(LIS_CURRENT_DATE_KEY, currentDate); } else { - lastTimestamp = timestamp; // 鏇存柊鏈�鍚庣敓鎴愭椂闂存埑 - return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100); + lastId = Integer.parseInt(lastIdStr) + 1; + stringRedisTemplate.opsForValue().set(TJH_LAST_ID_KEY, String.valueOf(lastId)); } + String yyMMdd = currentDate.substring(2); + return String.format("%s%05d", yyMMdd, lastId); } -- Gitblit v1.8.0