fix: 图册查询,零件编号按照升序排列

(cherry picked from commit 08e2229c29)
This commit is contained in:
zzs 2025-04-02 11:29:06 +08:00
parent 475d022a95
commit 015f1998c3

View File

@ -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<DynamicObject> list = new ArrayList<>(data);
Collections.sort(list, new Comparator<DynamicObject>() {
@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
}
}
/**
* 给图号单据体赋值
*