parent
49e49ced1b
commit
eb58395b79
@ -0,0 +1,55 @@ |
|||||||
|
package com.shkj.wms.utils; |
||||||
|
|
||||||
|
import com.shkj.common.core.redis.RedisCache; |
||||||
|
import com.shkj.common.core.text.Convert; |
||||||
|
import com.shkj.common.utils.spring.SpringUtils; |
||||||
|
|
||||||
|
import java.time.LocalDate; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author lch |
||||||
|
*/ |
||||||
|
public class IntIdUtil { |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private static Date date = new Date(); |
||||||
|
private static StringBuilder buf = new StringBuilder(); |
||||||
|
// private static int seq = 0;
|
||||||
|
private static final int ROTATION = 99999; |
||||||
|
|
||||||
|
public static synchronized String next() { |
||||||
|
|
||||||
|
Integer seq = Convert.toInt(SpringUtils.getBean(RedisCache.class).getCacheObject("seq"), 0); |
||||||
|
|
||||||
|
if (seq > ROTATION) { |
||||||
|
seq = 0; |
||||||
|
} |
||||||
|
// buf.delete(0, buf.length());
|
||||||
|
// date.setTime(System.currentTimeMillis());
|
||||||
|
String str = String.format("%1$05d", seq++); |
||||||
|
SpringUtils.getBean(RedisCache.class).setCacheObject("seq", seq); |
||||||
|
System.out.println("redis的值为"+seq); |
||||||
|
return str; |
||||||
|
} |
||||||
|
|
||||||
|
public static Long generateIntId() { |
||||||
|
//生成规则 年份后两位-10【2位】 + 1年内第几天【3位】 + 随机数【5位】
|
||||||
|
LocalDate now = LocalDate.now(); |
||||||
|
// 因为int的最大数是2147483647 所以前2位=当前年-10
|
||||||
|
String yearStr = now.getYear() - 10 + ""; |
||||||
|
yearStr = yearStr.substring(2); |
||||||
|
StringBuilder id = new StringBuilder(yearStr + String.format("%1$03d", now.getDayOfYear() )+ next()); |
||||||
|
return Long.parseLong(id.toString()); |
||||||
|
} |
||||||
|
|
||||||
|
public static void main(String[] args) { |
||||||
|
for (int i = 0; i < 10000; i++) { |
||||||
|
Long aLong = IntIdUtil.generateIntId(); |
||||||
|
System.out.println(aLong + "==>" + Long.parseLong(aLong.intValue() + "")); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue