parent
9ecadc415b
commit
f754990c9e
|
@ -30,6 +30,7 @@ import kd.bos.orm.ORM;
|
|||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.orm.query.QFilterHint;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.DispatchServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.ebg.aqap.common.core.utils.Sequence;
|
||||
|
@ -41,6 +42,7 @@ import kd.ebg.aqap.formplugin.util.StringUtil;
|
|||
import kd.ebg.egf.common.entity.base.EBHeader;
|
||||
import kd.ebg.egf.common.model.bank.BankAcnt;
|
||||
import kd.ebg.egf.common.repository.acnt.BankAcntRepository;
|
||||
import kd.tmc.cdm.common.constant.CdmEntityConst;
|
||||
import kd.tmc.fbp.common.enums.ReportOrgQueryWayEnum;
|
||||
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
|
||||
import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
|
||||
|
@ -278,19 +280,45 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
|
|||
Date startOfYear = calendar.getTime();
|
||||
// 将年初日期格式化为字符串
|
||||
|
||||
//业务单元数据集
|
||||
DataSet balanceDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"bd_accountbanks","id,number as shkd_orgnumber,name as shkd_org", null, null);
|
||||
//获取建行的银行id
|
||||
DynamicObject[] banks = BusinessDataServiceHelper.load("bd_finorginfo", "id", new QFilter("bank_cate.name", QCP.equals, "建设银行").toArray());
|
||||
List<Long> idList = Arrays.stream(banks) // 将 banks 数组转换为流
|
||||
.map(bank -> (Long)bank.get("id")) // 提取 id 字段并转换为字符串
|
||||
.collect(Collectors.toList()); // 收集到 List 中
|
||||
String bankids = idList.toString();
|
||||
bankids = bankids.substring(1, bankids.length() - 1);
|
||||
|
||||
String startOfYearStr = sdf.format(startOfYear);
|
||||
StringBuilder sqlBuilder1 = new StringBuilder("/*dialect*/ ");
|
||||
sqlBuilder1.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
"FROM t_bei_bankbalance\n" +
|
||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
" SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// sqlBuilder1.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
// "FROM t_bei_bankbalance\n" +
|
||||
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
// " SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// " FROM t_bei_bankbalance\n" +
|
||||
// " WHERE fcreatetime < '"+startOfYearStr+"'\n" +
|
||||
// " GROUP BY faccountbankid\n" +
|
||||
// ")");
|
||||
sqlBuilder1.append("SELECT \n" +
|
||||
" shkd_subacct,fmodifytime,fbizdate,downamount,currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" CASE \n" +
|
||||
" WHEN fbankid in (\n" +
|
||||
bankids
|
||||
+
|
||||
" ) THEN upamount\n" +
|
||||
" ELSE fk_shkd_depositbalance\n" +
|
||||
" END AS upamount\n" +
|
||||
"FROM (\n" +
|
||||
" SELECT \n" +
|
||||
" fmodifytime,fbizdate,faccountbankid AS shkd_subacct,famount AS downamount,fvalibalance AS upamount,fcurrencyid AS currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" ROW_NUMBER() OVER (\n" +
|
||||
" PARTITION BY faccountbankid \n" +
|
||||
" ORDER BY fbizdate DESC, fmodifytime DESC\n" +
|
||||
" ) AS rn\n" +
|
||||
" FROM t_bei_bankbalance\n" +
|
||||
" WHERE fcreatetime < '"+startOfYearStr+"'\n" +
|
||||
" GROUP BY faccountbankid\n" +
|
||||
")");
|
||||
" WHERE fbizdate < '"+startOfYearStr+"'\n" +
|
||||
")\n" +
|
||||
"WHERE rn = 1 ");
|
||||
|
||||
//年初余额
|
||||
DataSet ncres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder1.toString());//财务云
|
||||
ncres = addExchangeRateAndCurrencyUnit1(ncres, paramMap);
|
||||
|
@ -331,14 +359,34 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
|
|||
|
||||
//期末余额
|
||||
StringBuilder sqlBuilder2 = new StringBuilder("/*dialect*/ ");
|
||||
sqlBuilder2.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
"FROM t_bei_bankbalance\n" +
|
||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
" SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// sqlBuilder2.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
// "FROM t_bei_bankbalance\n" +
|
||||
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
// " SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// " FROM t_bei_bankbalance\n" +
|
||||
// " WHERE fcreatetime "+endQCP+" '"+enddate+"'\n" +
|
||||
// " GROUP BY faccountbankid\n" +
|
||||
// ")");
|
||||
sqlBuilder2.append("SELECT \n" +
|
||||
" shkd_subacct,fmodifytime,fbizdate,downamount,currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" CASE \n" +
|
||||
" WHEN fbankid in (\n" +
|
||||
bankids
|
||||
+
|
||||
" ) THEN upamount\n" +
|
||||
" ELSE fk_shkd_depositbalance\n" +
|
||||
" END AS upamount\n" +
|
||||
"FROM (\n" +
|
||||
" SELECT \n" +
|
||||
" fmodifytime,fbizdate,faccountbankid AS shkd_subacct,famount AS downamount,fvalibalance AS upamount,fcurrencyid AS currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" ROW_NUMBER() OVER (\n" +
|
||||
" PARTITION BY faccountbankid \n" +
|
||||
" ORDER BY fbizdate DESC, fmodifytime DESC\n" +
|
||||
" ) AS rn\n" +
|
||||
" FROM t_bei_bankbalance\n" +
|
||||
" WHERE fcreatetime "+endQCP+" '"+enddate+"'\n" +
|
||||
" GROUP BY faccountbankid\n" +
|
||||
")");
|
||||
" WHERE fbizdate "+endQCP+" '"+enddate+"'\n" +
|
||||
")\n" +
|
||||
"WHERE rn = 1 ");
|
||||
DataSet qmres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder2.toString());//财务云
|
||||
qmres = addExchangeRateAndCurrencyUnit1(qmres, paramMap);
|
||||
qmres = qmres.select(new String[]{"shkd_subacct","upamount_report as shkd_qmkyye"});
|
||||
|
@ -348,14 +396,34 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
|
|||
|
||||
//期初可用余额
|
||||
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
|
||||
sqlBuilder.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
"FROM t_bei_bankbalance\n" +
|
||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
" SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// sqlBuilder.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||
// "FROM t_bei_bankbalance\n" +
|
||||
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||
// " SELECT faccountbankid, MAX(fcreatetime)\n" +
|
||||
// " FROM t_bei_bankbalance\n" +
|
||||
// " WHERE fcreatetime < '"+startdate+"'\n" +
|
||||
// " GROUP BY faccountbankid\n" +
|
||||
// ")");
|
||||
sqlBuilder.append("SELECT \n" +
|
||||
" shkd_subacct,fmodifytime,fbizdate,downamount,currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" CASE \n" +
|
||||
" WHEN fbankid in (\n" +
|
||||
bankids
|
||||
+
|
||||
" ) THEN upamount\n" +
|
||||
" ELSE fk_shkd_depositbalance\n" +
|
||||
" END AS upamount \n" +
|
||||
"FROM (\n" +
|
||||
" SELECT \n" +
|
||||
" fmodifytime,fbizdate,faccountbankid AS shkd_subacct,famount AS downamount,fvalibalance AS upamount,fcurrencyid AS currency,fbankid,fk_shkd_depositbalance,\n" +
|
||||
" ROW_NUMBER() OVER (\n" +
|
||||
" PARTITION BY faccountbankid \n" +
|
||||
" ORDER BY fbizdate DESC, fmodifytime DESC\n" +
|
||||
" ) AS rn\n" +
|
||||
" FROM t_bei_bankbalance\n" +
|
||||
" WHERE fcreatetime < '"+startdate+"'\n" +
|
||||
" GROUP BY faccountbankid\n" +
|
||||
")");
|
||||
" WHERE fbizdate < '"+startdate+"'\n" +
|
||||
")\n" +
|
||||
"WHERE rn = 1 ");
|
||||
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
||||
res = addExchangeRateAndCurrencyUnit1(res, paramMap);
|
||||
DataSet select = res.select(new String[]{"shkd_subacct","upamount_report as shkd_qckyye"});
|
||||
|
|
Loading…
Reference in New Issue