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