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});
|
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");
|
||||||
|
|
Loading…
Reference in New Issue