理财报表优化

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