IdGen.nextCode纯数值类型时long精度优化

This commit is contained in:
thinkgem
2019-07-03 15:40:03 +08:00
parent 81b22ad3d8
commit f6e6ba5fd2

View File

@@ -7,7 +7,7 @@ import java.security.SecureRandom;
import java.util.UUID;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.lang.ObjectUtils;
import com.jeesite.common.lang.NumberUtils;
import com.jeesite.common.lang.StringUtils;
/**
@@ -79,7 +79,7 @@ public class IdGenerate {
}
String prefix = str.substring(0, lastNotNumIndex + 1);
String numStr = str.substring(lastNotNumIndex + 1, str.length());
long num = ObjectUtils.toLong(numStr);
long num = NumberUtils.isCreatable(numStr) ? Long.valueOf(numStr) : 0;
// System.out.println("处理前:"+str);
str = prefix + StringUtils.leftPad(String.valueOf(num + 1), numStr.length(), "0");
// System.out.println("处理后:"+str);
@@ -102,6 +102,7 @@ public class IdGenerate {
// System.out.println(nextCode("EC02T099"));
// System.out.println(nextCode("EC02T100"));
// System.out.println(nextCode("EC02T10A"));
// System.out.println(nextCode("1123117153417957377"));
//// // 数值型ID重复验证测试
//// Set<String> set = SetUtils.newHashSet();
//// try{