From 3257acbe93451d1f5545f73272e0515cceb9ffba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Thu, 29 May 2025 11:00:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E6=8F=90=E6=8A=A5=E8=A1=A8=E8=A1=A8?= =?UTF-8?q?=E5=A4=B4=E8=BF=87=E6=BB=A4=E3=80=81=E6=95=B0=E6=8D=AE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/report/RegularListReport.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java index 51819d7..cca29f3 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java @@ -56,6 +56,8 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P List filterItems = param.getFilter().getFilterItems(); Long orgId=null; String accrualDate=null; + Long bankNameId=null; + Long bankNumberId=null; List 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做准备