parent
96bf7240e6
commit
1cb34a5206
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue