From 56880b2a4d50f30d175bfa7fe9f85779275285b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Wed, 21 May 2025 19:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E6=8F=90=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/report/RegularFormReport.java | 27 ------------------- .../fi/plugin/report/RegularListReport.java | 12 +++++++++ 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularFormReport.java b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularFormReport.java index 34110d1..6c3022d 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularFormReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularFormReport.java @@ -123,33 +123,6 @@ public class RegularFormReport extends AbstractReportFormPlugin implements Plugi } } -// else { -// //TODO:计提日期年份大于截至日期;计提日期小于启始日期 ---跳过 -// // 计提日期不在有效区间内的情况处理 -// Calendar filterCal = Calendar.getInstance(); -// filterCal.setTime(filterDate); -// -// Calendar startCal = Calendar.getInstance(); -// startCal.setTime(depositStartDate); -// -// Calendar endCal = Calendar.getInstance(); -// endCal.setTime(depositEndDate); -// -// // 检查是否不在同一年 -// boolean notSameYearBefore = filterCal.get(Calendar.YEAR) != startCal.get(Calendar.YEAR); -// boolean notSameYearAfter = filterCal.get(Calendar.YEAR) != endCal.get(Calendar.YEAR); -// -// if (filterDate.before(depositStartDate) && notSameYearBefore) { -// // 计提日期小于起始日期且不在同一年 ---跳过 -// iterator.remove(); -// continue; -// } -// if (filterDate.after(depositEndDate) && notSameYearAfter) { -// // 计提日期大于截至日期且不在同一年 ---跳过 -// iterator.remove(); -// continue; -// } -// } } if (companyName.contains("小计")){ row.set(FIELDS[11], ""); // 计提天数 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 cd6e57a..9519248 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java @@ -14,6 +14,7 @@ import kd.sdk.plugin.Plugin; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -74,6 +75,17 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P } //定期存款处理 DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "cim_deposit", selectFields.toString(), qFilters.toArray(new QFilter[]{}), null); + //过滤----起始日<=计提日<=截至日到截止日年底 + //起始日: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')"); //分组小计 DataSet groupDataSet = dataSet.groupBy(new String[]{FIELDS[0]}).sum(FIELDS[10]).finish(); // 由于分组计算之后,Dataset的字段少了一个,需要通过addField加回来,为之后union做准备