parent
							
								
									7f33236e8c
								
							
						
					
					
						commit
						c55bcf8a1a
					
				| 
						 | 
				
			
			@ -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;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue