提交人:陈绍鑫

日期:2025/10/17 12:00
内容:报表优化
This commit is contained in:
陈绍鑫 2025-10-17 11:37:56 +08:00
parent 7f33236e8c
commit c55bcf8a1a
1 changed files with 40 additions and 7 deletions

View File

@ -39,14 +39,13 @@ public class AccountbankReportPlugin extends AbstractReportListDataPlugin {
}
String selectFields="id,openorg.shkd_comcode as shkd_ssjtbm,openorg.shkd_comname as shkd_ssjtmc," +
"openorg.uniformsocialcreditcode as shkd_khdwbm,openorg.name as shkd_khdwmc," +
"openorg.uniformsocialcreditcode as shkd_khdwbm,openorg.name as shkd_khdwmc,shkd_namegzw as shkd_newkhdwmc," +
"openorg.shkd_comlevel as shkd_khdwqyjc,acctname as shkd_zhmc,bankaccountnumber as shkd_yhzh," +
"shkd_subcompany as shkd_sfwnbdwzh,bank.name as shkd_khhmc,bank.number as shkd_khhbm," +
"bank.country.name as shkd_khhszgj,shkd_bank_head_office as shkd_khhzh,currency," +
"acctstyle as shkd_zhytbm,case when issetbankinterface=1 then '是' else '否' end as shkd_ktyqjk,shkd_direct_time1 as shkd_ktyqsj," +
"acctstyle as shkd_zhytmc,fundaccflag as shkd_jzjzzhbs,case when closedate IS NULL then acctstatus else (case when closedate>'"+dateList.get(0)+"' then 'normal' else 'closed' end) end as shkd_zhzt," +
"case when closedate IS NULL then '9999-12-31' else to_char(closedate,'YYYY-MM-DD') end as shkd_xhrq," +
// "closedate as shkd_xhrq," +
"opendate as shkd_khrq,'"+dateList.get(0)+"' as shkd_sjrq,case when ismoneypool=1 then '是' else '否' end as shkd_sfzjczh";
//银行账户数据集
DataSet accountbankDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"am_accountbank",
@ -66,18 +65,52 @@ public class AccountbankReportPlugin extends AbstractReportListDataPlugin {
String[] fieldNames1 = finish.getRowMeta().getFieldNames();
String[] newFieldNames1 = ReportUtils.ExpansionArray(fieldNames1, Arrays.asList("shkd_zhyeyb", "shkd_zhyebb", "shkd_zhyesj"));
//查询余额
String[] newFieldNames1 = ReportUtils.ExpansionArray(fieldNames1, Arrays.asList("shkd_zhyeyb", "shkd_zhyesj"));
//查询日记账余额
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ \n");
sqlBuilder.append("SELECT fbankacctid ,SUM(FDebitAmount-FCreditAmount) as shkd_zhyeyb,SUM(FDebitAmount*fexchangerate-FCreditAmount*fexchangerate) as shkd_zhyebb,fcurrencyid,MAX(FBizDate) as shkd_zhyesj\n" +
"FROM t_cas_bankjournal WHERE FBizDate<'"+dateList.get(0)+"' \n" +
sqlBuilder.append("SELECT fbankacctid ,SUM(FDebitAmount-FCreditAmount) as shkd_zhyeyb," +
// "SUM(FDebitAmount*fexchangerate-FCreditAmount*fexchangerate) as shkd_zhyebb," +//(本位币)
"fcurrencyid,MAX(FBizDate) as shkd_zhyesj\n" +
"FROM t_cas_bankjournal WHERE FBizDate<='"+dateList.get(0)+"' \n" +
"GROUP BY fbankacctid, fcurrencyid");
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
JoinDataSet join1 = finish.join(res, JoinType.LEFT);//左连接
DataSet finish1 = join1.on("id", "fbankacctid").on("shkd_bz", "fcurrencyid").select(newFieldNames1).finish();
return finish1;
//查询指定日期的汇率
StringBuilder sqlBuilder2 = new StringBuilder("/*dialect*/ \n");
sqlBuilder2.append("WITH RankedExRates AS (\n" +
" SELECT\n" +
" FOrgCurID,\n" +
" FCurID,\n" +
" FExRate,\n" +
" FEffectDate,\n" +
" ROW_NUMBER() OVER (PARTITION BY FOrgCurID ORDER BY FEffectDate DESC) AS rn\n" +
" FROM \n" +
" t_bd_exrate\n" +
" WHERE \n" +
" FCurID = 1\n" +
" AND FEffectDate <= '"+dateList.get(0)+"' -- 替换为你的指定日期\n" +
")\n" +
"SELECT\n" +
" FOrgCurID,\n" +
" FCurID,\n" +
" FExRate,\n" +
" FEffectDate\n" +
"FROM \n" +
" RankedExRates\n" +
"WHERE \n" +
" rn = 1;");
DataSet hl = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("sys"), sqlBuilder2.toString());//系统云
String[] fieldNames2 = finish1.getRowMeta().getFieldNames();
String[] newFieldNames2 = ReportUtils.ExpansionArray(fieldNames2, Arrays.asList("FEffectDate","FExRate"));
JoinDataSet join2 = finish1.join(hl, JoinType.INNER);
DataSet finish2 = join2.on("shkd_bz", "FOrgCurID").select(newFieldNames2).finish();
finish2=finish2.addField("FExRate*shkd_zhyeyb","shkd_zhyebb");
return finish2;
}
}