计提报表优化3.0

This commit is contained in:
李贵强 2025-05-30 10:43:50 +08:00
parent feafef3c15
commit 82acdb36cb
1 changed files with 30 additions and 12 deletions

View File

@ -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<FilterItemInfo> filterItems = param.getFilter().getFilterItems();
Long orgId=null;
List<Long> orgIds =new ArrayList<>();
List<Long> bankNameIds =new ArrayList<>();
List<Long> bankNumberIds =new ArrayList<>();
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) {
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<Long> getMultipleFilter(FilterItemInfo filterItem,List<Long> 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;
}
}