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 5db8a77..84a4774 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/report/RegularListReport.java @@ -3,6 +3,7 @@ package shjh.jhzj7.fi.fi.plugin.report; import kd.bos.algo.DataSet; import kd.bos.algo.JoinType; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.report.AbstractReportListDataPlugin; import kd.bos.entity.report.FilterItemInfo; import kd.bos.entity.report.ReportQueryParam; @@ -54,39 +55,39 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P selectFields.append(DEPOSIT[0]).append(".name").append(" as ").append(FIELDS[0]).append(","); assembleSQL(selectFields); List filterItems = param.getFilter().getFilterItems(); - Long orgId=null; + List orgIds =new ArrayList<>(); + List bankNameIds =new ArrayList<>(); + List bankNumberIds =new ArrayList<>(); 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) { switch (filterItem.getPropName()){ case KEY_FILTER_ORG: - orgId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue(); + this.getMultipleFilter(filterItem, orgIds); break; case KEY_FILTER_DATE: 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(); + this.getMultipleFilter(filterItem, bankNameIds); break; case KEY_FILTER_BANK_NUM: - bankNumberId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue(); + this.getMultipleFilter(filterItem, bankNumberIds); break; default: break; } } - if (orgId!=null){ - qFilters.add(new QFilter("org", QCP.equals,orgId)); + if (orgIds.size()!=0){ + qFilters.add(new QFilter("org", QCP.in,orgIds)); } - if (bankNameId!=null){ - qFilters.add(new QFilter("finorginfo", QCP.equals,bankNameId)); + if (bankNameIds.size()!=0){ + qFilters.add(new QFilter("finorginfo", QCP.in,bankNameIds)); } - if (bankNumberId!=null){ - qFilters.add(new QFilter("settleaccount", QCP.equals,bankNumberId)); + if (bankNumberIds.size()!=0){ + qFilters.add(new QFilter("settleaccount", QCP.in,bankNumberIds)); } //定期存款处理 selectFields.append(",").append("id"); @@ -168,4 +169,21 @@ public class RegularListReport extends AbstractReportListDataPlugin implements P selectFields.append(RegularListReport.DEPOSIT[i]).append(" as ").append(RegularListReport.FIELDS[i]).append(","); } } + + /** + * 获取报表多选基础资料过滤数据 + * @param filterItem + * @param bankNameIds + * @return + */ + private List getMultipleFilter(FilterItemInfo filterItem,List bankNameIds){ + DynamicObjectCollection value = (DynamicObjectCollection) filterItem.getValue(); + if (value!=null && value.size()!=0){ + for (DynamicObject dynamicObject : value) { + Long pkValue = (Long) dynamicObject.getPkValue(); + bankNameIds.add(pkValue); + } + } + return bankNameIds; + } } \ No newline at end of file