bug修复

This commit is contained in:
xiaoshi 2025-06-23 17:59:15 +08:00
parent 831a11990c
commit 16a18d5e2d
1 changed files with 20 additions and 6 deletions

View File

@ -126,19 +126,33 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
} }
DynamicObject[] depresplitdetails = BusinessDataServiceHelper.load("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf}); DynamicObject[] depresplitdetails = BusinessDataServiceHelper.load("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf});
// === 新增按期间编码年月格式排序 ===
Arrays.sort(depresplitdetails, (o1, o2) -> { Arrays.sort(depresplitdetails, (o1, o2) -> {
DynamicObject p1 = o1.getDynamicObject("period"); DynamicObject p1 = o1.getDynamicObject("period");
DynamicObject p2 = o2.getDynamicObject("period"); DynamicObject p2 = o2.getDynamicObject("period");
// 处理null值
if (p1 == null && p2 == null) return 0; if (p1 == null && p2 == null) return 0;
if (p1 == null) return -1; if (p1 == null) return 1;
if (p2 == null) return 1; if (p2 == null) return -1;
String c1 = p1.getString("number") != null ? p1.getString("number") : ""; String c1 = p1.getString("number");
String c2 = p2.getString("number") != null ? p2.getString("number") : ""; String c2 = p2.getString("number");
return c1.compareTo(c2); // 升序排序 if (c1 == null) c1 = "";
if (c2 == null) c2 = "";
// 创建年月格式化器
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM");
try {
YearMonth ym1 = YearMonth.parse(c1, formatter);
YearMonth ym2 = YearMonth.parse(c2, formatter);
return ym2.compareTo(ym1); // 升序
} catch (DateTimeParseException e) {
// 记录解析失败的编码
log.error("期间编码解析失败: " + c1 + "" + c2, e);
return c1.compareTo(c2);
}
}); });
for (DynamicObject depresplitdetail : depresplitdetails) { for (DynamicObject depresplitdetail : depresplitdetails) {
String billno = depresplitdetail.getString("billno"); String billno = depresplitdetail.getString("billno");