diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingFromListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingFromListPlugin.java new file mode 100644 index 0000000..223b4c0 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingFromListPlugin.java @@ -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(); + } + } +} diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java new file mode 100644 index 0000000..5b1ed1a --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java @@ -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 getColumns(List 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; + } +}