强弱共享查询优化

This commit is contained in:
李贵强 2025-07-09 18:12:49 +08:00
parent 82b76f0756
commit e0d92bbfd9
1 changed files with 29 additions and 12 deletions

View File

@ -50,18 +50,35 @@ public class BankBalanceSummaryFormPlugin extends AbstractReportFormPlugin imple
rowData.add(dynamicObject);
}
QFilter q1 = new QFilter("bizdate", QCP.equals, shjh_benchmarka);//交易日期(基准日期)
QFilter q2 = new QFilter("company.shjh_isshare", QCP.equals, "1");//公司属性为强共享
QFilter q3 = new QFilter("company.shjh_isshare", QCP.equals, "0");//公司属性为弱共享
QFilter q4 = new QFilter("bizdate", QCP.equals, shjh_sameyeara);//交易日期(同年比较日期)
QFilter q5 = new QFilter("bizdate", QCP.equals, shjh_previousyear);//交易日期(上年比较日期)
// 强弱共享
setBenchmarkamount(q1.and(q2),rowData,true,"基准日期");//设置基准日期,强共享,按账号id分组,取最大日期的余额合计
setBenchmarkamount(q1.and(q3),rowData,false,"基准日期");//设置基准日期,弱共享,按账号id分组,取最大日期的余额合计
setBenchmarkamount(q4.and(q2),rowData,true,"同年比较日期");//设置同年比较日期,强共享,按账号id分组,取最大日期的余额合计
setBenchmarkamount(q4.and(q3),rowData,false,"同年比较日期");//设置同年比较日期,弱共享,按账号id分组,取最大日期的余额合计
setBenchmarkamount(q5.and(q2),rowData,true,"上年比较日期");//设置上年比较日期,强共享,按账号id分组,取最大日期的余额合计
setBenchmarkamount(q5.and(q3),rowData,false,"上年比较日期");//设置上年比较日期,弱共享,按账号id分组,取最大日期的余额合计
// 强共享-基准日期
QFilter strongBenchmarkFilter = new QFilter("bizdate", QCP.equals, shjh_benchmarka)
.and(new QFilter("company.shjh_isshare", QCP.equals, "1"));
setBenchmarkamount(strongBenchmarkFilter, rowData, true, "基准日期");
// 弱共享-基准日期
QFilter weakBenchmarkFilter = new QFilter("bizdate", QCP.equals, shjh_benchmarka)
.and(new QFilter("company.shjh_isshare", QCP.equals, "0"));
setBenchmarkamount(weakBenchmarkFilter, rowData, false, "基准日期");
// 强共享-同年比较日期
QFilter strongSameYearFilter = new QFilter("bizdate", QCP.equals, shjh_sameyeara)
.and(new QFilter("company.shjh_isshare", QCP.equals, "1"));
setBenchmarkamount(strongSameYearFilter, rowData, true, "同年比较日期");
// 弱共享-同年比较日期
QFilter weakSameYearFilter = new QFilter("bizdate", QCP.equals, shjh_sameyeara)
.and(new QFilter("company.shjh_isshare", QCP.equals, "0"));
setBenchmarkamount(weakSameYearFilter, rowData, false, "同年比较日期");
// 强共享-上年比较日期
QFilter strongPreviousYearFilter = new QFilter("bizdate", QCP.equals, shjh_previousyear)
.and(new QFilter("company.shjh_isshare", QCP.equals, "1"));
setBenchmarkamount(strongPreviousYearFilter, rowData, true, "上年比较日期");
// 弱共享-上年比较日期
QFilter weakPreviousYearFilter = new QFilter("bizdate", QCP.equals, shjh_previousyear)
.and(new QFilter("company.shjh_isshare", QCP.equals, "0"));
setBenchmarkamount(weakPreviousYearFilter, rowData, false, "上年比较日期");
// 理财
setLcAmount(shjh_benchmarka,rowData,"基准日期");
setLcAmount(shjh_sameyeara,rowData,"同年比较日期");