提交内容:唐经理的报表代码

时间:2025-11-03 18:56
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-11-03 18:57:17 +08:00
parent 96bf7240e6
commit 1cb34a5206
2 changed files with 433 additions and 0 deletions

View File

@ -0,0 +1,57 @@
package shkd.sys.sys.plugin.report;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.report.ReportShowParameter;
import kd.bos.report.filter.ReportFilter;
import kd.bos.report.plugin.AbstractReportFormPlugin;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import java.util.EventObject;
public class InterestBearingFromListPlugin extends AbstractReportFormPlugin {
/**
* 值改变事件监听
* @param e
*/
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
if(e.getProperty().getName().equals("shkd_datasel")){ //是否是修改下拉框数据
if (e.getChangeSet()[0].getNewValue() != null) {
this.getView().getModel().setValue("shkd_bizdate", this.getModel().getValue("shkd_bizdate")); //日期
this.getView().getModel().setValue("shkd_amtunit", this.getModel().getValue("shkd_amtunit")); //金额单位
this.getView().getModel().setValue("shkd_datevar", this.getModel().getValue("shkd_datevar")); //期限数
this.getView().getModel().setValue("shkd_datetype", this.getModel().getValue("shkd_datetype")); //期限类型
this.getView().getModel().setValue("shkd_datasel", e.getChangeSet()[0].getNewValue()); //数据查询维度
ReportFilter filter = this.getView().getControl("reportfilterap");//调用页面的自动查询
filter.search();
}
}
}
/**
* 重新加载事件
* @param e
*/
@Override
public void afterBindData(EventObject e) {
super.afterBindData(e);
ReportShowParameter formShowParameter = (ReportShowParameter) this.getView().getFormShowParameter();
Object shkd_bizdate = formShowParameter.getCustomParam("shkd_bizdate"); //日期
Object shkd_amtunit = formShowParameter.getCustomParam("shkd_amtunit"); //金额单位
Object shkd_datevar = formShowParameter.getCustomParam("shkd_datevar"); //期限数
Object shkd_datetype = formShowParameter.getCustomParam("shkd_datetype"); //期限类型
Object shkd_datasel = formShowParameter.getCustomParam("shkd_datasel"); //数据查询维度
if (shkd_datasel != null) {
this.getView().getModel().setValue("shkd_bizdate", shkd_bizdate);
this.getView().getModel().setValue("shkd_amtunit", shkd_amtunit);
this.getView().getModel().setValue("shkd_datevar", shkd_datevar);
this.getView().getModel().setValue("shkd_datetype", shkd_datetype);
this.getView().getModel().setValue("shkd_datasel", shkd_datasel);
ReportFilter filter = this.getView().getControl("reportfilterap");//调用页面的自动查询
filter.search();
}
}
}

View File

@ -0,0 +1,376 @@
package shkd.sys.sys.plugin.report;
import kd.bos.algo.*;
import kd.bos.algo.input.CollectionInput;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.entity.LocaleString;
import kd.bos.dataentity.metadata.clr.DataEntityPropertyCollection;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
import kd.bos.entity.report.*;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.tmc.fbp.common.constant.Constants;
import kd.tmc.fbp.common.enums.BillStatusEnum;
import kd.tmc.fbp.common.helper.GuaranteeUseHelper;
import kd.tmc.fbp.common.helper.TmcBusinessBaseHelper;
import kd.tmc.fbp.common.helper.TmcDataServiceHelper;
import kd.tmc.fbp.common.util.EmptyUtil;
import kd.tmc.gm.common.helper.GuaranteeContractHelper;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 唐天龙-带息债务统计表
*/
public class InterestBearingRptListPlugin extends AbstractReportListDataPlugin {
public static final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
private static final Log logger = LogFactory.getLog(InterestBearingRptListPlugin.class);
/**
* 过滤条件查询
* @param reportQueryParam
* @param o
* @return
* @throws Throwable
*/
@Override
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
// 获取过滤条件
FilterInfo filterInfo = reportQueryParam.getFilter();
FilterItemInfo bizDateFilter = filterInfo.getFilterItem("shkd_bizdate"); //日期
FilterItemInfo amtUnitFilter = filterInfo.getFilterItem("shkd_amtunit"); //金额单位
FilterItemInfo dateVarFilter = filterInfo.getFilterItem("shkd_datevar"); //期限数
FilterItemInfo dateTypeFiler = filterInfo.getFilterItem("shkd_datetype"); //期限类型
FilterItemInfo dataSelFilter = filterInfo.getFilterItem("shkd_datasel"); //数据查询维度
//下拉列表值查询不同类型数据
String amtUnit = null; //金额单位 yuan/qyuan/wyuan/bwyuan/yyuan
String dateType = null; //期限类型 year/month/day
String dateSel = null; //数据查询维度 数据表data1/融资主体汇总datagp1/报表科目汇总datagp2/金融机构汇总datagp3/借款期限汇总datagp4/到期时间汇总datagp5/融资渠道汇总datagp6
String bizDate = null; //日期
String dateVar = null; //期限类型
// 使用过滤条件创建QFilter
if(bizDateFilter != null && bizDateFilter.getValue() != null){
bizDate = sdfDate.format(bizDateFilter.getValue()); //日期
}
if(amtUnitFilter != null && amtUnitFilter.getValue() != null){
amtUnit = amtUnitFilter.getValue().toString(); //金额单位 yuan/qyuan/wyuan/bwyuan/yyuan
}
if(dateVarFilter != null && dateVarFilter.getValue() != null){
dateVar = dateVarFilter.getValue().toString(); //期限数
}
if(dateTypeFiler != null && dateTypeFiler.getValue() != null){
dateType = dateTypeFiler.getValue().toString(); //期限类型 year/month/day
}
if(dataSelFilter != null && dataSelFilter.getValue() != null){
dateSel = dataSelFilter.getValue().toString(); //数据查询维度 数据表data1/融资主体汇总datagp1/报表科目汇总datagp2/金融机构汇总datagp3/借款期限汇总datagp4/到期时间汇总datagp5/融资渠道汇总datagp6
}
//报表查询数据返回
DataSet selData = null;
//业务单元数据集
DataSet orgDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"bos_org","id,number as orgnumber,name as orgname", null, null);
// 查询提款处理和债券发行这两PC布局属于一个单据
String sql = " SELECT t1.FBILLNO billno,t1.fk_shkd_ejgs shkd_ejgs,t2.forgid orgid,t1.fk_shkd_zqrzh shkd_zqrzh,t2.ftextcreditor textcreditor,\n" +
" t5.fname shkd_rzpz,\n" +
" CASE \n" +
" \tWHEN (t1.fk_shkd_rzqd IS NULL OR t1.fk_shkd_rzqd == ' ') THEN '无'\n" +
" \tWHEN (t1.fk_shkd_rzqd == '01') THEN '直接融资'\n" +
" \tWHEN (t1.fk_shkd_rzqd == '02') THEN '间接融资'\n" +
" \tELSE ''\n" +
" END shkd_rzqd,\n" +
" CASE \n" +
" \tWHEN (t1.fk_shkd_blxm IS NULL OR t1.fk_shkd_blxm == ' ') THEN '无'\n" +
" \tWHEN (t1.fk_shkd_blxm == '01') THEN '权益融资'\n" +
" \tWHEN (t1.fk_shkd_blxm == '02') THEN '债务融资'\n" +
" \tELSE ''\n" +
" END shkd_blxm,\n" +
" CASE \n" +
" \tWHEN (t1.fk_shkd_dybbkmmc IS NULL OR t1.fk_shkd_dybbkmmc == ' ') THEN '无'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '01') THEN '长期借款'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '02') THEN '一年内到期的非流动负债'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '03') THEN '短期借款'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '04') THEN '应付债券'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '05') THEN '其他权益工具'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '06') THEN '其他流动负债'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '07') THEN '实收资本'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '08') THEN '应付票据'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '09') THEN '长期应付款'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '10') THEN '其他应付款'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '11') THEN '其他非流动负债'\n" +
" \tWHEN (t1.fk_shkd_dybbkmmc == '12') THEN '租赁负债'\n" +
" \tELSE ''\n" +
" END shkd_dybbkmmc,\n" +
" t2.fterm term,to_char(t2.fstartintdate,'yyyy-MM-dd') startintdate,to_char(t1.fexpiredate,'yyyy-MM-dd') expiredate,\n";
if(amtUnit == null || amtUnit.equals("yuan")){
//
sql +=" t1.fdrawamount drawamount,\n" ;
}else if(amtUnit.equals("qyuan")){
//千元
sql +=" t1.fdrawamount/1000 drawamount,\n" ;
}else if(amtUnit.equals("wyuan")){
//万元
sql +=" t1.fdrawamount/10000 drawamount,\n" ;
}else if(amtUnit.equals("bwyuan")){
//百万元
sql +=" t1.fdrawamount/1000000 drawamount,\n" ;
}else if(amtUnit.equals("yyuan")){
//亿元
sql +=" t1.fdrawamount/100000000 drawamount,\n" ;
}
sql +=" REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(CASE \n" +
" \tWHEN (t3.fguaranteeway IS NULL OR t3.fguaranteeway == ' ') AND (t4.fguarantee IS NULL OR t4.fguarantee == ' ') THEN ',无,'\n" +
" \tWHEN t3.fguaranteeway IS NULL OR t3.fguaranteeway == ' ' THEN t4.fguarantee\n" +
" \tELSE t3.fguaranteeway\n" +
" END,'2','保证'),'4','抵押'),'5','质押'),'6','其他'),'7','信用/无担保') guaranteeway,\n" +
" CASE \n" +
" \tWHEN (t6.dywkm IS NULL OR t6.dywkm == ' ') AND (t6.zywkm IS NULL OR t6.zywkm == ' ') THEN '无'\n" +
" \tWHEN (t6.dywkm IS NULL OR t6.dywkm == ' ') THEN t6.zywkm \n" +
" \tWHEN (t6.zywkm IS NULL OR t6.zywkm == ' ') THEN t6.dywkm \n" +
" \tELSE t6.dywkm || ',' || t6.zywkm \n" +
" END dbwkm,\n" +
" CASE \n" +
" \tWHEN (t6.dywname IS NULL OR t6.dywname == ' ') AND (t6.zywname IS NULL OR t6.zywname == ' ') THEN '无'\n" +
" \tWHEN (t6.dywname IS NULL OR t6.dywname == ' ') THEN t6.zywname \n" +
" \tWHEN (t6.zywname IS NULL OR t6.zywname == ' ') THEN t6.dywname \n" +
" \tELSE t6.dywname || ',' || t6.zywname \n" +
" END dbwname,\n" +
" (SELECT TOP 1 s1.frayearrate FROM t_cfm_loanbill_ra_entry s1 where s1.fid = t1.fid AND s1.fraeffectdate <= SYSDATE ORDER BY s1.fraeffectdate desc) lilv," +
" t1.fdescription remark" +
" FROM t_cfm_loanbill t1 \n" +
" INNER JOIN t_cfm_loanbill_e t2 ON t1.fid = t2.FID \n" +
" INNER JOIN t_cfm_loanbill_t t3 ON t1.fid = t3.FID \n" +
" left JOIN t_cfm_loancontractbill t4 ON t2.floancontractbillid = t4.FID \n" +
" LEFT JOIN t_cfm_financingvarieties t5 ON t1.ffinproductid = t5.fid\n" +
" LEFT JOIN \n" +
" ( SELECT LISTAGG(s4.fpledgename, ',') dywname,LISTAGG(s2.fk_shkd_dbwsskm, ',') dywkm, \n" +
" LISTAGG(s5.fpledgename, ',') zywname,LISTAGG(s3.fk_shkd_dbwsskm1, ',') zywkm,\n" +
" s6.fgsrcbillno srcbillno\n" +
" FROM t_gm_guarcontract s1 \n" +
" left JOIN t_gm_guarcontract_mentry s2 ON s1.fid = s2.FID \n" +
" left JOIN t_gm_guarcontract_pentry s3 ON s1.fid = s3.FID \n" +
" left JOIN t_gm_pledgebill s4 ON s2.fplegid = s4.FID \n" +
" left JOIN t_gm_pledgebill s5 ON s3.fplegid = s5.FID \n" +
" left JOIN t_gm_guaranteeuse s6 ON s1.fid = s6.fguaranteecontractid \n" +
" WHERE (s1.fguaranteeway like '%mortgage%' OR s1.fguaranteeway like '%pledge%') \n" +
" AND s6.fgsrcbilltype LIKE 'cfm_loanbill%'\n" +
" AND s1.fbillno = 'SIG5020000-DBHT-202502-0002'\n" + //---------------------担保合同编码条件
" GROUP BY s6.fgsrcbillno ) t6 ON t1.fbillno = t6.srcbillno\n" +
" WHERE 1=1\n";
if(bizDate != null){
sql += " and to_char(t2.fstartintdate,'yyyy-MM-dd') <= '"+bizDate+"'\n"; //起始时间小于等于选择的时间
sql += " and to_char(t1.fexpiredate,'yyyy-MM-dd') >= '"+bizDate+"'\n"; //到期时间大于等于选择的时间
}
if(dateVar != null){
sql += " AND t2.fterm like '%"+dateVar+"%'\n"; //期限条件like
}
sql += " and t1.fbillno in ('SIG1100000-TKCL-202510-0074','SIG1040100-JQFX-202502-0025','SIG5020000-TKCL-202502-0003')"; //---------------------提款处理单据编码条件
/*
获取查询条件的总金额
*/
String selSumAmtSql = " /*dialect*/ SELECT sum(drawamount) sumamt FROM ("+sql+") sumAmt ";
DataSet selSumAmtRes = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selSumAmtSql);//财务云
DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(selSumAmtRes.copy());
BigDecimal sumAmt = srcCollection.get(0).getBigDecimal("sumamt");
/*
开始根据选择的不同类型的报表格式返回不同的结果集
*/
if(dateSel == null || dateSel.equals("data1")){
String selSql = "/*dialect*/";
selSql += sql;
//数据表查询
DataSet dataRes = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), selSql);//财务云
JoinDataSet join1 = dataRes.join(orgDataSet, JoinType.LEFT);//连接二级组织
DataSet dataRes1 = join1.on("shkd_ejgs","id").select(new String[]{"billno","orgname shkd_ejgs","orgid","shkd_zqrzh","textcreditor","shkd_rzpz",
"shkd_rzqd","shkd_blxm","shkd_dybbkmmc","term","startintdate","expiredate","drawamount","SubStr(guaranteeway, 2, LEN(guaranteeway)-2) guaranteeway",
"dbwkm","dbwname","lilv","remark"}).finish();
JoinDataSet join2 = dataRes1.join(orgDataSet, JoinType.LEFT);//连接融资主体
selData = join2.on("orgid","id").select(new String[]{"billno","shkd_ejgs","orgname orgid","shkd_zqrzh","textcreditor","shkd_rzpz","shkd_rzqd",
"shkd_blxm","shkd_dybbkmmc","term","startintdate","expiredate","drawamount","guaranteeway","dbwkm","dbwname","lilv","remark"}).finish();
}else if(dateSel.equals("datagp1")){
//融资主体汇总查询
String groupSql = "/*dialect*/ SELECT orgid,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss GROUP BY orgid";
//数据表查询
DataSet dataRes = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), groupSql);//财务云
JoinDataSet join1 = dataRes.join(orgDataSet, JoinType.LEFT);//连接二级组织
selData = join1.on("orgid","id").select(new String[]{"orgname gpname","sumamt","bili"}).finish();
}else if(dateSel.equals("datagp2")){
//报表科目汇总查询
String groupSql = "/*dialect*/ SELECT shkd_dybbkmmc gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss GROUP BY shkd_dybbkmmc";
//数据表查询
selData = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), groupSql);//财务云
}else if(dateSel.equals("datagp3")){
//金融机构汇总查询
String groupSql = "/*dialect*/ SELECT shkd_zqrzh gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss GROUP BY shkd_zqrzh";
//数据表查询
selData = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), groupSql);//财务云
}else if(dateSel.equals("datagp4")){
//借款期限汇总查询
//一年及一下金额
String termSqlAmt1 = "/*dialect*/ SELECT '1年及以下' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) = fterm or fterm = '1y'";
DataSet termAmtRs1 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt1);//财务云
//一年至五年
String termSqlAmt2 = "/*dialect*/ SELECT '1年不含至5年' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) <> fterm AND fterm <> '1y' AND \n" +
" (SUBSTRING_INDEX(fterm,'y',1) >= 1 AND SUBSTRING_INDEX(fterm,'y',1) < 5) or fterm= '5y' ";
DataSet termAmtRs2 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt2);//财务云
//五年至十年
String termSqlAmt3 = "/*dialect*/ SELECT '5年不含至10年' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) <> fterm AND fterm <> '5y' AND \n" +
" (SUBSTRING_INDEX(fterm,'y',1) >= 5 AND SUBSTRING_INDEX(fterm,'y',1) < 10) or fterm= '10y' ";
DataSet termAmtRs3 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt3);//财务云
//十年至十五年
String termSqlAmt4 = "/*dialect*/ SELECT '10年不含至15年' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) <> fterm AND fterm <> '10y' AND \n" +
" (SUBSTRING_INDEX(fterm,'y',1) >= 10 AND SUBSTRING_INDEX(fterm,'y',1) < 15) or fterm= '15y'";
DataSet termAmtRs4 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt4);//财务云
//十五年至二十年
String termSqlAmt5 = "/*dialect*/ SELECT '15年不含至20年' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) <> fterm AND fterm <> '15y' AND \n" +
" (SUBSTRING_INDEX(fterm,'y',1) >= 15 AND SUBSTRING_INDEX(fterm,'y',1) < 20) or fterm= '20y' ";
DataSet termAmtRs5 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt5);//财务云
//二十年以上
String termSqlAmt6 = "/*dialect*/ SELECT '21年及以上' gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss WHERE SUBSTRING_INDEX(fterm,'y',1) <> fterm AND fterm <> '20y' AND \n" +
" (SUBSTRING_INDEX(fterm,'y',1) >= 20)";
DataSet termAmtRs6 = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), termSqlAmt6);//财务云
selData = termAmtRs1.union(termAmtRs2,termAmtRs3,termAmtRs4,termAmtRs5,termAmtRs6); //union all
}else if(dateSel.equals("datagp5")){
//到期时间汇总查询
String groupSql = "/*dialect*/ SELECT to_char(expiredate,'yyyy') gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss GROUP BY to_char(expiredate,'yyyy') order by to_char(expiredate,'yyyy')";
//数据表查询
selData = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), groupSql);//财务云
}else if(dateSel.equals("datagp6")){
//融资渠道汇总查询
String groupSql = "/*dialect*/ SELECT shkd_rzqd gpname,sum(drawamount) sumamt,ROUND((sum(drawamount)/"+sumAmt+")*100,2) bili FROM ("+sql+") ss GROUP BY shkd_rzqd";
//数据表查询
selData = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), groupSql);//财务云
}
return selData;
}
/**
* 显示列
* @param columns
* @return
* @throws Throwable
*/
@Override
public List<AbstractReportColumn> getColumns(List<AbstractReportColumn> columns) throws Throwable {
//过滤条件
FilterInfo filterInfo = this.getQueryParam().getFilter();
FilterItemInfo amtUnitFilter = filterInfo.getFilterItem("shkd_amtunit"); //金额单位
FilterItemInfo dataSelFilter = filterInfo.getFilterItem("shkd_datasel"); //数据查询维度
//下拉列表值查询不同类型数据
String amtUnit = null; //金额单位 yuan/qyuan/wyuan/bwyuan/yyuan
String dateSel = null; //数据查询维度 数据表data1/融资主体汇总datagp1/报表科目汇总datagp2/金融机构汇总datagp3/借款期限汇总datagp4/到期时间汇总datagp5/融资渠道汇总datagp6
if(amtUnitFilter != null && amtUnitFilter.getValue() != null){
amtUnit = amtUnitFilter.getValue().toString(); //金额单位 yuan/qyuan/wyuan/bwyuan/yyuan
}
if(dataSelFilter != null && dataSelFilter.getValue() != null){
dateSel = dataSelFilter.getValue().toString(); //数据查询维度 数据表data1/融资主体汇总datagp1/报表科目汇总datagp2/金融机构汇总datagp3/借款期限汇总datagp4/到期时间汇总datagp5/融资渠道汇总datagp6
}
/*
开始根据选择的不同类型的报表格式区分不同的显示
*/
if(dateSel == null || dateSel.equals("data1")){
//数据表查询
columns.add(createReportColumn("billno", "text", "单据编号"));
columns.add(createReportColumn("shkd_ejgs", "text", "二级公司名称"));
columns.add(createReportColumn("orgid", "text", "融资主体名称"));
columns.add(createReportColumn("shkd_zqrzh", "text", "金融机构"));
columns.add(createReportColumn("textcreditor", "text", "金融机构支行"));
columns.add(createReportColumn("shkd_rzpz", "text", "融资品种"));
columns.add(createReportColumn("shkd_rzqd", "text", "融资渠道"));
columns.add(createReportColumn("shkd_blxm", "text", "表列项目"));
columns.add(createReportColumn("shkd_dybbkmmc", "text", "对应报表科目项目"));
columns.add(createReportColumn("term", "text", "借款期限"));
columns.add(createReportColumn("startintdate", "text", "借款时间"));
columns.add(createReportColumn("expiredate", "text", "到期时间"));
if(amtUnit == null || amtUnit.equals("yuan")){
//
columns.add(createReportColumn("drawamount", "amount", "金额(元)"));
}else if(amtUnit.equals("qyuan")){
//千元
columns.add(createReportColumn("drawamount", "amount", "金额(千元)"));
}else if(amtUnit.equals("wyuan")){
//万元
columns.add(createReportColumn("drawamount", "amount", "金额(万元)"));
}else if(amtUnit.equals("bwyuan")){
//百万元
columns.add(createReportColumn("drawamount", "amount", "金额(百元)"));
}else if(amtUnit.equals("yyuan")){
//亿元
columns.add(createReportColumn("drawamount", "amount", "金额(亿元)"));
}
columns.add(createReportColumn("guaranteeway", "text", "用信方式"));
columns.add(createReportColumn("dbwkm", "text", "担保物科目"));
columns.add(createReportColumn("dbwname", "text", "担保物名称"));
columns.add(createReportColumn("lilv", "amount", "利率"));
columns.add(createReportColumn("remark", "text", "备注"));
}else {
if(dateSel.equals("datagp1")){
//融资主体汇总查询
columns.add(createReportColumn("gpname", "text", "融资主体"));
}else if(dateSel.equals("datagp2")){
//报表科目汇总查询
columns.add(createReportColumn("gpname", "text", "报表科目名称"));
}else if(dateSel.equals("datagp3")){
//金融机构汇总查询
columns.add(createReportColumn("gpname", "text", "金融机构"));
}else if(dateSel.equals("datagp4")){
//借款期限汇总查询
columns.add(createReportColumn("gpname", "text", "借款期限"));
}else if(dateSel.equals("datagp5")){
//到期时间汇总查询
columns.add(createReportColumn("gpname", "text", "到期时间"));
}else if(dateSel.equals("datagp6")){
//融资渠道汇总查询
columns.add(createReportColumn("gpname", "text", "融资渠道"));
}
//汇总金额字段
if(amtUnit == null || amtUnit.equals("yuan")){
//
columns.add(createReportColumn("sumamt", "amount", "金额(元)"));
}else if(amtUnit.equals("qyuan")){
//千元
columns.add(createReportColumn("sumamt", "amount", "金额(千元)"));
}else if(amtUnit.equals("wyuan")){
//万元
columns.add(createReportColumn("sumamt", "amount", "金额(万元)"));
}else if(amtUnit.equals("bwyuan")){
//百万元
columns.add(createReportColumn("sumamt", "amount", "金额(百元)"));
}else if(amtUnit.equals("yyuan")){
//亿元
columns.add(createReportColumn("sumamt", "amount", "金额(亿元)"));
}
columns.add(createReportColumn("bili", "text", "占比"));
}
/*
报表样式设置
*/
// if (columns.get(0) instanceof ReportColumn) {
// ReportColumn reportColumn = (ReportColumn)columns.get(0);
// reportColumn.setCaption(new LocaleString("随便设置一个标题,修改列的字体颜色"));
// ColumnStyle style = new ColumnStyle();
// style.setForeColor("#f90d58");
// reportColumn.setStyle(style);
// }
return columns;
}
public ReportColumn createReportColumn(String fieldKey, String fieldType, String caption) {
ReportColumn column = new ReportColumn();
column.setFieldKey(fieldKey);
column.setFieldType(fieldType);
column.setCaption(new LocaleString(caption));
return column;
}
}