理财报表优化

This commit is contained in:
李贵强 2025-07-10 18:18:25 +08:00
parent e6dae28bf9
commit ca6f4ff736
2 changed files with 46 additions and 5 deletions

View File

@ -161,6 +161,8 @@ public class FinancialFormReport extends AbstractReportFormPlugin implements Plu
//ReportUtils.changeRowData(rowData,REPORT_FIELDS[0]);
//过滤
ReportUtils.removeRowData(rowData,REPORT_FIELDS[9],DYNAMICS_FIELDS[1]);
//排序
//ReportUtils.sortByDate(rowData,REPORT_FIELDS[9],false);
//添加合计
// 需要配置求和的字段映射目标字段来源字段
List<String[]> sumConfig = new ArrayList<>();
@ -176,6 +178,7 @@ public class FinancialFormReport extends AbstractReportFormPlugin implements Plu
ReportUtils.addTotalRowData(rowData,REPORT_FIELDS[0],"小计","合计",sumConfig);
}
/**
@ -492,7 +495,7 @@ public class FinancialFormReport extends AbstractReportFormPlugin implements Plu
Object pkValue = shdh.getPkValue();
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(pkValue, "cim_redeem");
BigDecimal amount = dynamicObject.getBigDecimal("amount"); // 赎回金额字段名
BigDecimal realrevenue = dynamicObject.getBigDecimal("revenueamount"); // 实际收益字段名
BigDecimal realrevenue = dynamicObject.getBigDecimal("realrevenue"); // 实际收益字段名
if (amount != null) {
sum = sum.add(amount).add(realrevenue);
}
@ -657,6 +660,7 @@ public class FinancialFormReport extends AbstractReportFormPlugin implements Plu
if (maxRedeemDate != null) {
endDate = maxRedeemDate;
row.set(REPORT_FIELDS[9], endDate); // 设置到期日
expireDate=endDate;
}
}
}

View File

@ -7,10 +7,7 @@ import kd.bos.entity.report.ReportColumn;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.*;
public class ReportUtils {
@ -80,6 +77,46 @@ public class ReportUtils {
rowData.add(0,totalRow);
}
/**
* 根据日期字段对行数据进行排序
* @param rowData 要排序的数据集合
* @param dateField 日期字段名
* @param descending 是否降序排序(true-降序false-升序)
*/
public static void sortByDate(DynamicObjectCollection rowData, String dateField, boolean descending) {
if (rowData == null || dateField == null || rowData.isEmpty()) {
return;
}
List<DynamicObject> dataList = new ArrayList<>(rowData);
Collections.sort(dataList, new Comparator<DynamicObject>() {
@Override
public int compare(DynamicObject o1, DynamicObject o2) {
Date date1 = o1.getDate(dateField);
Date date2 = o2.getDate(dateField);
if (date1 == null && date2 == null) {
return 0;
}
if (date1 == null) {
return descending ? 1 : -1;
}
if (date2 == null) {
return descending ? -1 : 1;
}
int comparison = date1.compareTo(date2);
return descending ? -comparison : comparison;
}
});
// 清空原集合并添加排序后的数据
rowData.clear();
rowData.addAll(dataList);
}
/**
* 对小计行处理
* @param rowData 数据集合