Эх сурвалжийг харах

解决wbs树节点名称排序方法中数字过长导致类型转换失败的问题

lvy 2 өдөр өмнө
parent
commit
30a7aa428c

+ 7 - 3
blade-service/blade-user/src/main/java/org/springblade/system/user/util/ComplexStringComparator.java

@@ -31,8 +31,8 @@ public class ComplexStringComparator<T> implements Comparator<T> {
             Object p1 = parts1.get(i);
             Object p2 = parts2.get(i);
 
-            if (p1 instanceof Integer && p2 instanceof Integer) {
-                int cmp = ((Integer) p1).compareTo((Integer) p2);
+            if (p1 instanceof Long && p2 instanceof Long) {
+                int cmp = ((Long) p1).compareTo((Long) p2);
                 if (cmp != 0) return cmp;
             } else {
                 int cmp = p1.toString().compareTo(p2.toString());
@@ -68,7 +68,11 @@ public class ComplexStringComparator<T> implements Comparator<T> {
 
         if (buffer.length() > 0) {
             if (numFlag == 1) {
-                parts.add(Integer.parseInt(buffer.toString()));
+                try {
+                    parts.add(Long.parseLong(buffer.toString()));
+                } catch (NumberFormatException e) {
+                    parts.add(buffer.toString());
+                }
             } else {
                 parts.add(buffer.toString());
             }