parent
9ecadc415b
commit
f754990c9e
|
@ -30,6 +30,7 @@ import kd.bos.orm.ORM;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.orm.query.QFilterHint;
|
import kd.bos.orm.query.QFilterHint;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.DispatchServiceHelper;
|
import kd.bos.servicehelper.DispatchServiceHelper;
|
||||||
import kd.bos.servicehelper.QueryServiceHelper;
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
import kd.ebg.aqap.common.core.utils.Sequence;
|
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.entity.base.EBHeader;
|
||||||
import kd.ebg.egf.common.model.bank.BankAcnt;
|
import kd.ebg.egf.common.model.bank.BankAcnt;
|
||||||
import kd.ebg.egf.common.repository.acnt.BankAcntRepository;
|
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.enums.ReportOrgQueryWayEnum;
|
||||||
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
|
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
|
||||||
import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
|
import kd.tmc.fbp.common.helper.TmcOrgDataHelper;
|
||||||
|
@ -278,19 +280,45 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
|
||||||
Date startOfYear = calendar.getTime();
|
Date startOfYear = calendar.getTime();
|
||||||
// 将年初日期格式化为字符串
|
// 将年初日期格式化为字符串
|
||||||
|
|
||||||
//业务单元数据集
|
//获取建行的银行id
|
||||||
DataSet balanceDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"bd_accountbanks","id,number as shkd_orgnumber,name as shkd_org", null, null);
|
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);
|
String startOfYearStr = sdf.format(startOfYear);
|
||||||
StringBuilder sqlBuilder1 = new StringBuilder("/*dialect*/ ");
|
StringBuilder sqlBuilder1 = new StringBuilder("/*dialect*/ ");
|
||||||
sqlBuilder1.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
// sqlBuilder1.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||||
"FROM t_bei_bankbalance\n" +
|
// "FROM t_bei_bankbalance\n" +
|
||||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||||
" SELECT faccountbankid, MAX(fcreatetime)\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" +
|
" FROM t_bei_bankbalance\n" +
|
||||||
" WHERE fcreatetime < '"+startOfYearStr+"'\n" +
|
" WHERE fbizdate < '"+startOfYearStr+"'\n" +
|
||||||
" GROUP BY faccountbankid\n" +
|
")\n" +
|
||||||
")");
|
"WHERE rn = 1 ");
|
||||||
|
|
||||||
//年初余额
|
//年初余额
|
||||||
DataSet ncres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder1.toString());//财务云
|
DataSet ncres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder1.toString());//财务云
|
||||||
ncres = addExchangeRateAndCurrencyUnit1(ncres, paramMap);
|
ncres = addExchangeRateAndCurrencyUnit1(ncres, paramMap);
|
||||||
|
@ -331,14 +359,34 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
|
||||||
|
|
||||||
//期末余额
|
//期末余额
|
||||||
StringBuilder sqlBuilder2 = new StringBuilder("/*dialect*/ ");
|
StringBuilder sqlBuilder2 = new StringBuilder("/*dialect*/ ");
|
||||||
sqlBuilder2.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
// sqlBuilder2.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||||
"FROM t_bei_bankbalance\n" +
|
// "FROM t_bei_bankbalance\n" +
|
||||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||||
" SELECT faccountbankid, MAX(fcreatetime)\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" +
|
" FROM t_bei_bankbalance\n" +
|
||||||
" WHERE fcreatetime "+endQCP+" '"+enddate+"'\n" +
|
" WHERE fbizdate "+endQCP+" '"+enddate+"'\n" +
|
||||||
" GROUP BY faccountbankid\n" +
|
")\n" +
|
||||||
")");
|
"WHERE rn = 1 ");
|
||||||
DataSet qmres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder2.toString());//财务云
|
DataSet qmres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder2.toString());//财务云
|
||||||
qmres = addExchangeRateAndCurrencyUnit1(qmres, paramMap);
|
qmres = addExchangeRateAndCurrencyUnit1(qmres, paramMap);
|
||||||
qmres = qmres.select(new String[]{"shkd_subacct","upamount_report as shkd_qmkyye"});
|
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*/ ");
|
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
|
||||||
sqlBuilder.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
// sqlBuilder.append("SELECT faccountbankid as shkd_subacct, fcreatetime,famount as downamount, fvalibalance as upamount,fcurrencyid as currency \n" +
|
||||||
"FROM t_bei_bankbalance\n" +
|
// "FROM t_bei_bankbalance\n" +
|
||||||
"WHERE (faccountbankid, fcreatetime) IN (\n" +
|
// "WHERE (faccountbankid, fcreatetime) IN (\n" +
|
||||||
" SELECT faccountbankid, MAX(fcreatetime)\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" +
|
" FROM t_bei_bankbalance\n" +
|
||||||
" WHERE fcreatetime < '"+startdate+"'\n" +
|
" WHERE fbizdate < '"+startdate+"'\n" +
|
||||||
" GROUP BY faccountbankid\n" +
|
")\n" +
|
||||||
")");
|
"WHERE rn = 1 ");
|
||||||
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
||||||
res = addExchangeRateAndCurrencyUnit1(res, paramMap);
|
res = addExchangeRateAndCurrencyUnit1(res, paramMap);
|
||||||
DataSet select = res.select(new String[]{"shkd_subacct","upamount_report as shkd_qckyye"});
|
DataSet select = res.select(new String[]{"shkd_subacct","upamount_report as shkd_qckyye"});
|
||||||
|
|
Loading…
Reference in New Issue