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做准备