From 015f1998c347bd57eab254dacc8ad1815abfba67 Mon Sep 17 00:00:00 2001 From: zzs Date: Wed, 2 Apr 2025 11:29:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=BE=E5=86=8C=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E9=9B=B6=E4=BB=B6=E7=BC=96=E5=8F=B7=E6=8C=89=E7=85=A7?= =?UTF-8?q?=E5=8D=87=E5=BA=8F=E6=8E=92=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 08e2229c29ff2944a14a4db5e913553eeebb4bb1) --- .../em/ass/dynamic/AssepcNewDynamicEdut.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/main/java/com/yem/em/ass/dynamic/AssepcNewDynamicEdut.java b/src/main/java/com/yem/em/ass/dynamic/AssepcNewDynamicEdut.java index 3cff44b2..8a679858 100644 --- a/src/main/java/com/yem/em/ass/dynamic/AssepcNewDynamicEdut.java +++ b/src/main/java/com/yem/em/ass/dynamic/AssepcNewDynamicEdut.java @@ -765,6 +765,10 @@ public class AssepcNewDynamicEdut extends AbstractFormPlugin implements BeforeBi getQueryResult().setDataCount(data.size()); // 把列数据返回 DynamicObjectCollection datas = DealData(data); + + // 按照图册编号进行排序 + sortDynamicObjectCollection(datas); + Setistcardviewap(datas); return datas; } @@ -772,6 +776,45 @@ public class AssepcNewDynamicEdut extends AbstractFormPlugin implements BeforeBi } } + public static void sortDynamicObjectCollection(DynamicObjectCollection data) { + List list = new ArrayList<>(data); + + Collections.sort(list, new Comparator() { + @Override + public int compare(DynamicObject o1, DynamicObject o2) { + BigDecimal num1 = parseBigDecimal(o1.getString("yem_atlasno")); + BigDecimal num2 = parseBigDecimal(o2.getString("yem_atlasno")); + + // 如果两个都转换成功,按数值比较 + if (num1 != null && num2 != null) { + return num1.compareTo(num2); + } + + if (num1 != null) { + return -1; + } + if (num2 != null) { + return 1; + } + + // 如果两个都失败,按字符串比较 + return o1.getString("yem_atlasno").compareTo(o2.getString("yem_atlasno")); + } + }); + + // 将排序后的结果重新赋值给原集合 + data.clear(); + data.addAll(list); + } + + private static BigDecimal parseBigDecimal(String value) { + try { + return new BigDecimal(value); + } catch (NumberFormatException e) { + return null; // 转换失败返回 null + } + } + /** * 给图号单据体赋值 *