计提报表表头过滤、数据过滤

This commit is contained in:
李贵强 2025-05-29 11:00:49 +08:00
parent 88d1b698db
commit 3257acbe93
1 changed files with 22 additions and 3 deletions

View File

@ -56,6 +56,8 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P
List<FilterItemInfo> filterItems = param.getFilter().getFilterItems();
Long orgId=null;
String accrualDate=null;
Long bankNameId=null;
Long bankNumberId=null;
List<QFilter> qFilters=new ArrayList<>();
qFilters.add(new QFilter("billstatus",QCP.equals,"C"));
for (FilterItemInfo filterItem : filterItems) {
@ -67,6 +69,12 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P
accrualDate=(filterItem.getDate()==null) ? null:new SimpleDateFormat("yyyy-MM-dd").format(filterItem.getDate());
selectFields.append("'").append(accrualDate).append("'").append(FIELDS[12]);
break;
case KEY_FILTER_BANK_NAME:
bankNameId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue();
break;
case KEY_FILTER_BANK_NUM:
bankNumberId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue();
break;
default:
break;
}
@ -74,6 +82,12 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P
if (orgId!=null){
qFilters.add(new QFilter("org", QCP.equals,orgId));
}
if (bankNameId!=null){
qFilters.add(new QFilter("finorginfo", QCP.equals,bankNameId));
}
if (bankNumberId!=null){
qFilters.add(new QFilter("settleaccount", QCP.equals,bankNumberId));
}
//定期存款处理
selectFields.append(",").append("id");
DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "cim_deposit", selectFields.toString(), qFilters.toArray(new QFilter[]{}), null);
@ -84,17 +98,22 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P
//组合
dataSet = dataSet.join(deaDataSet, JoinType.LEFT).on("id","sourcebillid").select(new String[]{"shjh_orgname","shjh_bankname","shjh_bankaccount","shjh_currency","shjh_depositstartdate","shjh_depositstopdate","shjh_term","shjh_interestrate","shjh_basis","shjh_frequency","shjh_amount","shjh_depositmodel","shjh_accrualdate"},new String[]{"shjh_redeemdate","shjh_realrevenue"}).finish();
//过滤----起始日<=计提日<=截至日到截止日年底
//过滤1----起始日<=计提日<=截至日期所在年年末
//起始日shjh_depositstartdate
//截止日shjh_depositstopdate
// 转换为字符串格式用于filter表达式如果需要
// 获取计提日假设已从queryParam中获取
Date filterDate = param.getFilter().getDate("shjh_filterdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String filterDateStr = sdf.format(filterDate);
dataSet=dataSet.filter("shjh_depositstartdate <= to_date('" + filterDateStr + "','yyyy-MM-dd') " +
"and to_date('" + filterDateStr + "','yyyy-MM-dd') <= " +
"to_date(concat(year(shjh_depositstopdate),'-12-31'),'yyyy-MM-dd')");
//过滤2----计提日<=解活日期所在年年末
//解活日期shjh_redeemdate
dataSet = dataSet.filter(
"to_date('" + filterDateStr + "','yyyy-MM-dd') <= " +
"to_date(concat(year(shjh_redeemdate),'-12-31'),'yyyy-MM-dd')");
//分组小计
DataSet groupDataSet = dataSet.groupBy(new String[]{FIELDS[0]}).sum(FIELDS[10]).finish();
// 由于分组计算之后Dataset的字段少了一个需要通过addField加回来为之后union做准备