计提报表优化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.DataSet;
import kd.bos.algo.JoinType; import kd.bos.algo.JoinType;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.report.AbstractReportListDataPlugin; import kd.bos.entity.report.AbstractReportListDataPlugin;
import kd.bos.entity.report.FilterItemInfo; import kd.bos.entity.report.FilterItemInfo;
import kd.bos.entity.report.ReportQueryParam; 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(","); selectFields.append(DEPOSIT[0]).append(".name").append(" as ").append(FIELDS[0]).append(",");
assembleSQL(selectFields); assembleSQL(selectFields);
List<FilterItemInfo> filterItems = param.getFilter().getFilterItems(); 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; String accrualDate=null;
Long bankNameId=null;
Long bankNumberId=null;
List<QFilter> qFilters=new ArrayList<>(); List<QFilter> qFilters=new ArrayList<>();
qFilters.add(new QFilter("billstatus",QCP.equals,"C")); qFilters.add(new QFilter("billstatus",QCP.equals,"C"));
for (FilterItemInfo filterItem : filterItems) { for (FilterItemInfo filterItem : filterItems) {
switch (filterItem.getPropName()){ switch (filterItem.getPropName()){
case KEY_FILTER_ORG: case KEY_FILTER_ORG:
orgId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue(); this.getMultipleFilter(filterItem, orgIds);
break; break;
case KEY_FILTER_DATE: case KEY_FILTER_DATE:
accrualDate=(filterItem.getDate()==null) ? null:new SimpleDateFormat("yyyy-MM-dd").format(filterItem.getDate()); accrualDate=(filterItem.getDate()==null) ? null:new SimpleDateFormat("yyyy-MM-dd").format(filterItem.getDate());
selectFields.append("'").append(accrualDate).append("'").append(FIELDS[12]); selectFields.append("'").append(accrualDate).append("'").append(FIELDS[12]);
break; break;
case KEY_FILTER_BANK_NAME: case KEY_FILTER_BANK_NAME:
bankNameId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue(); this.getMultipleFilter(filterItem, bankNameIds);
break; break;
case KEY_FILTER_BANK_NUM: case KEY_FILTER_BANK_NUM:
bankNumberId=(filterItem.getValue()==null) ? null: (Long) ((DynamicObject)filterItem.getValue()).getPkValue(); this.getMultipleFilter(filterItem, bankNumberIds);
break; break;
default: default:
break; break;
} }
} }
if (orgId!=null){ if (orgIds.size()!=0){
qFilters.add(new QFilter("org", QCP.equals,orgId)); qFilters.add(new QFilter("org", QCP.in,orgIds));
} }
if (bankNameId!=null){ if (bankNameIds.size()!=0){
qFilters.add(new QFilter("finorginfo", QCP.equals,bankNameId)); qFilters.add(new QFilter("finorginfo", QCP.in,bankNameIds));
} }
if (bankNumberId!=null){ if (bankNumberIds.size()!=0){
qFilters.add(new QFilter("settleaccount", QCP.equals,bankNumberId)); qFilters.add(new QFilter("settleaccount", QCP.in,bankNumberIds));
} }
//定期存款处理 //定期存款处理
selectFields.append(",").append("id"); 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(","); 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;
}
} }