bug修复
This commit is contained in:
parent
831a11990c
commit
16a18d5e2d
|
@ -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});
|
||||
// === 新增:按期间编码(年月格式)排序 ===
|
||||
Arrays.sort(depresplitdetails, (o1, o2) -> {
|
||||
DynamicObject p1 = o1.getDynamicObject("period");
|
||||
DynamicObject p2 = o2.getDynamicObject("period");
|
||||
|
||||
// 处理null值
|
||||
if (p1 == null && p2 == null) return 0;
|
||||
if (p1 == null) return -1;
|
||||
if (p2 == null) return 1;
|
||||
if (p1 == null) return 1;
|
||||
if (p2 == null) return -1;
|
||||
|
||||
String c1 = p1.getString("number") != null ? p1.getString("number") : "";
|
||||
String c2 = p2.getString("number") != null ? p2.getString("number") : "";
|
||||
String c1 = p1.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) {
|
||||
String billno = depresplitdetail.getString("billno");
|
||||
|
|
Loading…
Reference in New Issue