提交人:陈绍鑫

日期:2025/4/22 16:30
内容:上划下拨(new)插件
This commit is contained in:
陈绍鑫 2025-04-22 17:44:06 +08:00
parent 85bf4b8545
commit 97aab3d1b5
2 changed files with 40 additions and 32 deletions

View File

@ -3,13 +3,11 @@ package shkd.sys.sys.plugin.report;
import kd.bos.algo.DataSet;
import kd.bos.algo.JoinDataSet;
import kd.bos.algo.JoinType;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.entity.LocaleString;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
import kd.bos.entity.AppMetadataCache;
import kd.bos.entity.MainEntityType;
import kd.bos.entity.report.*;
import kd.bos.entity.tree.TreeNode;
@ -20,14 +18,11 @@ import kd.bos.org.model.OrgTreeParam;
import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.permission.api.HasPermOrgResult;
import kd.bos.permission.cache.constant.PermItemConst;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.MetadataServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
import kd.bos.servicehelper.org.OrgViewType;
import kd.bos.servicehelper.permission.PermissionServiceHelper;
import kd.bos.util.CollectionUtils;
import shkd.sys.sys.plugin.form.PaymentProcessingBillPlugin;
import shkd.sys.sys.plugin.report.domain.FinanceVarietyEnum;
@ -133,44 +128,44 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
// DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy());
// System.out.println(srcCollection);
DataSet dataSet = join.on("shkd_orgnumber","shkd_orgnumber").select(new String[]{"shkd_orgnumber","shkd_org",
"shkd_zqrzamount/ "+shkd_selmoney+" as shkd_zqrzamount","shkd_zqrzrzcb * 100 as shkd_zqrzrzcb","shkd_zqrzqx",
"shkd_dqjkamount/ "+shkd_selmoney+" as shkd_dqjkamount","shkd_dqjkrzcb * 100 as shkd_dqjkrzcb","shkd_dqjkqx",
"shkd_zcqldamount/ "+shkd_selmoney+" as shkd_zcqldamount","shkd_zcqldrzcb * 100 as shkd_zcqldrzcb","shkd_zcqldqx",
"shkd_xmdkamount/ "+shkd_selmoney+" as shkd_xmdkamount","shkd_xmdkrzcb * 100 as shkd_xmdkrzcb","shkd_xmdkqx",
"shkd_rzzlamount/ "+shkd_selmoney+" as shkd_rzzlamount","shkd_rzzlrzcb * 100 as shkd_rzzlrzcb","shkd_rzzlqx",
"shkd_bxzjrzamount/ "+shkd_selmoney+" as shkd_bxzjrzamount","shkd_bxzjrzrzcb * 100 as shkd_bxzjrzrzcb","shkd_bxzjrzqx",
"shkd_yfpjamount/ "+shkd_selmoney+" as shkd_yfpjamount","shkd_yfpjrzcb * 100 as shkd_yfpjrzcb","shkd_yfpjqx",
"shkd_fjrqyjkamount/ "+shkd_selmoney+" as shkd_fjrqyjkamount","shkd_fjrqyjkrzcb * 100 as shkd_fjrqyjkrzcb","shkd_fjrqyjkqx",
"shkd_qtzwrzamount/ "+shkd_selmoney+" as shkd_qtzwrzamount","shkd_qtzwrzrzcb * 100 as shkd_qtzwrzrzcb","shkd_qtzwrzqx",
"shkd_jtnbjkamount/ "+shkd_selmoney+" as shkd_jtnbjkamount","shkd_jtnbjkrzcb * 100 as shkd_jtnbjkrzcb","shkd_jtnbjkqx",
"shkd_yxzamount/ "+shkd_selmoney+" as shkd_yxzamount","shkd_yxzrzcb * 100 as shkd_yxzrzcb","shkd_yxzqx",
"shkd_yxxtamount/ "+shkd_selmoney+" as shkd_yxxtamount","shkd_yxxtrzcb * 100 as shkd_yxxtrzcb","shkd_yxxtqx",
"shkd_qtqyrzamount/ "+shkd_selmoney+" as shkd_qtqyrzamount","shkd_qtqyrzrzcb * 100 as shkd_qtqyrzrzcb","shkd_qtqyrzqx",
"shkd_zqrzamount/ "+shkd_selmoney+" as shkd_zqrzamount","shkd_zqrzrzcb","shkd_zqrzqx",
"shkd_dqjkamount/ "+shkd_selmoney+" as shkd_dqjkamount","shkd_dqjkrzcb","shkd_dqjkqx",
"shkd_zcqldamount/ "+shkd_selmoney+" as shkd_zcqldamount","shkd_zcqldrzcb","shkd_zcqldqx",
"shkd_xmdkamount/ "+shkd_selmoney+" as shkd_xmdkamount","shkd_xmdkrzcb","shkd_xmdkqx",
"shkd_rzzlamount/ "+shkd_selmoney+" as shkd_rzzlamount","shkd_rzzlrzcb","shkd_rzzlqx",
"shkd_bxzjrzamount/ "+shkd_selmoney+" as shkd_bxzjrzamount","shkd_bxzjrzrzcb","shkd_bxzjrzqx",
"shkd_yfpjamount/ "+shkd_selmoney+" as shkd_yfpjamount","shkd_yfpjrzcb","shkd_yfpjqx",
"shkd_fjrqyjkamount/ "+shkd_selmoney+" as shkd_fjrqyjkamount","shkd_fjrqyjkrzcb","shkd_fjrqyjkqx",
"shkd_qtzwrzamount/ "+shkd_selmoney+" as shkd_qtzwrzamount","shkd_qtzwrzrzcb","shkd_qtzwrzqx",
"shkd_jtnbjkamount/ "+shkd_selmoney+" as shkd_jtnbjkamount","shkd_jtnbjkrzcb","shkd_jtnbjkqx",
"shkd_yxzamount/ "+shkd_selmoney+" as shkd_yxzamount","shkd_yxzrzcb","shkd_yxzqx",
"shkd_yxxtamount/ "+shkd_selmoney+" as shkd_yxxtamount","shkd_yxxtrzcb","shkd_yxxtqx",
"shkd_qtqyrzamount/ "+shkd_selmoney+" as shkd_qtqyrzamount","shkd_qtqyrzrzcb","shkd_qtqyrzqx",
//1至9合计
"(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)/"+shkd_selmoney+" as shkd_oneotnineje",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb)*100/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount) end as shkd_oneotninerzcb",
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount) end as shkd_oneotninerzcb",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzqx+shkd_dqjkamount*shkd_dqjkqx+shkd_zcqldamount*shkd_zcqldqx+shkd_xmdkamount*shkd_xmdkqx+shkd_rzzlamount*shkd_rzzlqx+shkd_bxzjrzamount*shkd_bxzjrzqx+shkd_yfpjamount*shkd_yfpjqx+shkd_fjrqyjkamount*shkd_fjrqyjkqx+shkd_qtzwrzamount*shkd_qtzwrzqx)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount) end as shkd_oneotnineqx",
//1至10合计
"(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount)/"+shkd_selmoney+" as shkd_oneottenje",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb+shkd_jtnbjkamount*shkd_jtnbjkrzcb)*100/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount) end as shkd_oneottenrzcb",
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb+shkd_jtnbjkamount*shkd_jtnbjkrzcb)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount) end as shkd_oneottenrzcb",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzqx+shkd_dqjkamount*shkd_dqjkqx+shkd_zcqldamount*shkd_zcqldqx+shkd_xmdkamount*shkd_xmdkqx+shkd_rzzlamount*shkd_rzzlqx+shkd_bxzjrzamount*shkd_bxzjrzqx+shkd_yfpjamount*shkd_yfpjqx+shkd_fjrqyjkamount*shkd_fjrqyjkqx+shkd_qtzwrzamount*shkd_qtzwrzqx+shkd_jtnbjkamount*shkd_jtnbjkqx)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount) end as shkd_oneottenqx",
//11至13合计
"(shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)/"+shkd_selmoney+" as shkd_11to13je",
"case when (shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)=0 then 0 else " +
"(shkd_yxzamount*shkd_yxzrzcb+shkd_yxxtamount*shkd_yxxtrzcb+shkd_qtqyrzamount*shkd_qtqyrzrzcb)*100/(shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_11to13rzcb",
"(shkd_yxzamount*shkd_yxzrzcb+shkd_yxxtamount*shkd_yxxtrzcb+shkd_qtqyrzamount*shkd_qtqyrzrzcb)/(shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_11to13rzcb",
"case when (shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)=0 then 0 else " +
"(shkd_yxzamount*shkd_yxzqx+shkd_yxxtamount*shkd_yxxtqx+shkd_qtqyrzamount*shkd_qtqyrzqx)/(shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_11to13qx",
//1至13合计
"(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)/"+shkd_selmoney+" as shkd_1to13je",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb+shkd_jtnbjkamount*shkd_jtnbjkrzcb+shkd_yxzamount*shkd_yxzrzcb+shkd_yxxtamount*shkd_yxxtrzcb+shkd_qtqyrzamount*shkd_qtqyrzrzcb)*100/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_1to13jrcb",
"(shkd_zqrzamount*shkd_zqrzrzcb+shkd_dqjkamount*shkd_dqjkrzcb+shkd_zcqldamount*shkd_zcqldrzcb+shkd_xmdkamount*shkd_xmdkrzcb+shkd_rzzlamount*shkd_rzzlrzcb+shkd_bxzjrzamount*shkd_bxzjrzrzcb+shkd_yfpjamount*shkd_yfpjrzcb+shkd_fjrqyjkamount*shkd_fjrqyjkrzcb+shkd_qtzwrzamount*shkd_qtzwrzrzcb+shkd_jtnbjkamount*shkd_jtnbjkrzcb+shkd_yxzamount*shkd_yxzrzcb+shkd_yxxtamount*shkd_yxxtrzcb+shkd_qtqyrzamount*shkd_qtqyrzrzcb)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_1to13jrcb",
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount)=0 then 0 else " +
"(shkd_zqrzamount*shkd_zqrzqx+shkd_dqjkamount*shkd_dqjkqx+shkd_zcqldamount*shkd_zcqldqx+shkd_xmdkamount*shkd_xmdkqx+shkd_rzzlamount*shkd_rzzlqx+shkd_bxzjrzamount*shkd_bxzjrzqx+shkd_yfpjamount*shkd_yfpjqx+shkd_fjrqyjkamount*shkd_fjrqyjkqx+shkd_qtzwrzamount*shkd_qtzwrzqx+shkd_jtnbjkamount*shkd_jtnbjkqx+shkd_yxzamount*shkd_yxzqx+shkd_yxxtamount*shkd_yxxtqx+shkd_qtqyrzamount*shkd_qtqyrzqx)/(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount+shkd_jtnbjkamount+shkd_yxzamount+shkd_yxxtamount+shkd_qtqyrzamount) end as shkd_1to13qx"
}).finish();
@ -253,7 +248,7 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("FROM ( \n");
sqlBuilder.append("SELECT\n" +
"t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,e.forgid as zz,t.flatestrate/100.0 as zxll,e.fterm AS qx,\n" +
"t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,e.forgid as zz,raentry.frayearrate as zxll,e.fterm AS qx,\n" +
"CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM 1 FOR POSITION ( 'y' IN e.fterm ) - 1 ) AS INT ) ELSE 0 END AS y,\n" +
"CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'm' IN e.fterm ) - CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS M,\n" +
"CASE WHEN POSITION ( 'd' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'd' IN e.fterm ) - CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS d,\n" +
@ -262,8 +257,10 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
"FROM\n" +
" t_cfm_loanbill t1 -- 债券发行\n" +
" INNER JOIN t_cfm_loanbill_e e ON e.fid = t1.fid -- 内连接组织拆分表\n" +
" INNER JOIN t_cfm_loanbill_t t ON t.fid = t1.fid -- 内连接最新利率拆分表\n" +
" INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t1.fid -- 债券发行明细表\n" +
" LEFT JOIN (SELECT t_cfm_loanbill_ra_entry.fid, t_cfm_loanbill_ra_entry.fraeffectdate, t_cfm_loanbill_ra_entry.frayearrate FROM t_cfm_loanbill_ra_entry\n" +
"JOIN (SELECT fid, MAX(fraeffectdate) AS latest_date FROM t_cfm_loanbill_ra_entry WHERE fraeffectdate < CURRENT_DATE GROUP BY fid) AS latest_dates\n" +
"ON t_cfm_loanbill_ra_entry.fid = latest_dates.fid AND t_cfm_loanbill_ra_entry.fraeffectdate = latest_dates.latest_date) AS raentry ON raentry.fid = t1.fid -- 最新利率 \n"+
"WHERE\n" +
" t1.fbillstatus='C' \n" +
" and e.forgid IN ( "+result+" )\n" +
@ -273,7 +270,7 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("UNION ALL \n");
sqlBuilder.append("SELECT \n" +
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ,t.flatestrate/100.0 as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" +
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ,raentry.frayearrate as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" +
" TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate) AS y,\n" +
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
@ -285,7 +282,9 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
" INNER JOIN t_cfm_loanbill_e e1 ON e1.floancontractbillid = t2.fid -- 内连接合同拆分表\n" +
" INNER JOIN t_cfm_loanbill t3 ON t3.fid = e1.fid -- 银行提款处理表\n" +
" INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t3.fid -- 银行提款处理明细表\n" +
" INNER JOIN t_cfm_loanbill_t t ON t.fid = t3.fid -- 内连接最新利率拆分表\n" +
" LEFT JOIN (SELECT t_cfm_loanbill_ra_entry.fid, t_cfm_loanbill_ra_entry.fraeffectdate, t_cfm_loanbill_ra_entry.frayearrate FROM t_cfm_loanbill_ra_entry\n" +
"JOIN (SELECT fid, MAX(fraeffectdate) AS latest_date FROM t_cfm_loanbill_ra_entry WHERE fraeffectdate < CURRENT_DATE GROUP BY fid) AS latest_dates\n" +
"ON t_cfm_loanbill_ra_entry.fid = latest_dates.fid AND t_cfm_loanbill_ra_entry.fraeffectdate = latest_dates.latest_date) AS raentry ON raentry.fid = t3.fid -- 最新利率\n" +
"WHERE\n" +
" t2.fbillstatus='C' AND e.floantype IN ('loan','sl')\n" +
" AND t3.fbillstatus='C'\n" +
@ -296,7 +295,13 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("UNION ALL \n");
sqlBuilder.append("SELECT\n" +
" t4.fbillno,t4.ffinproductid as rzpz,planmx.frentamt as je,e.forgid as zz,f.flatestrate/100.0 as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t4.fstartdate, planmx.fpaydate), 'y',TIMESTAMPDIFF(MONTH, t4.fstartdate, planmx.fpaydate) % 12, 'm',DATEDIFF(DAY,t4.fstartdate, planmx.fpaydate) % 30, 'd') AS qx,\n" +
" t4.fbillno,t4.ffinproductid as rzpz,planmx.frentamt as je,e.forgid as zz," +
" CASE \n" +
" WHEN t4.finteresttype='fixed' THEN (SELECT fstartinterestrate FROM t_cfm_loancontractbill_f WHERE fid= t4.fid)\n" +
" WHEN t4.finteresttype='float' THEN (SELECT fendprice FROM t_md_datarate WHERE fbizdate < GETDATE() AND e.freferrateid = freferrateid ORDER BY fbizdate DESC LIMIT 1)+ e.fratefloatpoint*IF( e.fratesign='add', 0.01, -0.01)\n" +
" WHEN t4.finteresttype='agree' THEN (SELECT fstartinterestrate FROM t_cfm_loancontractbill_f WHERE fid= t4.fid)\n" +
" END AS zxll," +
"CONCAT(TIMESTAMPDIFF(YEAR, t4.fstartdate, planmx.fpaydate), 'y',TIMESTAMPDIFF(MONTH, t4.fstartdate, planmx.fpaydate) % 12, 'm',DATEDIFF(DAY,t4.fstartdate, planmx.fpaydate) % 30, 'd') AS qx,\n" +
" TIMESTAMPDIFF(YEAR, t4.fstartdate, planmx.fpaydate) AS y,\n" +
" TIMESTAMPDIFF(MONTH, t4.fstartdate, planmx.fpaydate) % 12 AS m,\n" +
" DATEDIFF(DAY,t4.fstartdate, planmx.fpaydate) % 30 AS d,\n" +
@ -305,7 +310,6 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
"FROM\n" +
" t_cfm_loancontractbill t4 -- 融资租赁合同\n" +
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t4.fid -- 内连接组织拆分表\n" +
" INNER JOIN t_cfm_loancontractbill_f f ON f.fid = t4.fid -- 内连接最新利率拆分表\n" +
" INNER JOIN t_cfm_contractbill_plan planmx ON planmx.fid = t4.fid -- 融资租赁合同明细表\n" +
"WHERE\n" +
" t4.fbillstatus='C' AND e.floantype='finlease'\n" +
@ -316,7 +320,7 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("UNION ALL \n");
sqlBuilder.append("SELECT\n" +
" t5.fbillno, 6666666666666666666 as rzpz,t5.famount as je,t5.fcompanyid as zz,0/100.0 as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t5.fissuedate, t5.fdraftbillexpiredate), 'y',TIMESTAMPDIFF(MONTH, t5.fissuedate, t5.fdraftbillexpiredate) % 12, 'm',DATEDIFF(DAY,t5.fissuedate, t5.fdraftbillexpiredate) % 30, 'd') AS qx,\n" +
" t5.fbillno, 6666666666666666666 as rzpz,t5.famount as je,t5.fcompanyid as zz,0.0 as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t5.fissuedate, t5.fdraftbillexpiredate), 'y',TIMESTAMPDIFF(MONTH, t5.fissuedate, t5.fdraftbillexpiredate) % 12, 'm',DATEDIFF(DAY,t5.fissuedate, t5.fdraftbillexpiredate) % 30, 'd') AS qx,\n" +
" TIMESTAMPDIFF(YEAR, t5.fissuedate, t5.fdraftbillexpiredate) AS y,\n" +
" TIMESTAMPDIFF(MONTH, t5.fissuedate, t5.fdraftbillexpiredate) % 12 AS m,\n" +
" DATEDIFF(DAY,t5.fissuedate, t5.fdraftbillexpiredate) % 30 AS d,\n" +
@ -333,7 +337,9 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("UNION ALL \n");
sqlBuilder.append(" SELECT \n" +
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ,t.flatestrate/100.0 as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" +
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ," +
"raentry.frayearrate as zxll," +
"CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" +
" TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate) AS y,\n" +
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
@ -345,7 +351,9 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
" INNER JOIN t_cfm_loanbill_e e1 ON e1.floancontractbillid = t2.fid -- 内连接合同拆分表\n" +
" INNER JOIN t_cfm_loanbill t3 ON t3.fid = e1.fid -- 银行提款处理表\n" +
" INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t3.fid -- 银行提款处理明细表\n" +
" INNER JOIN t_cfm_loanbill_t t ON t.fid = t3.fid -- 内连接最新利率拆分表\n" +
" LEFT JOIN (SELECT t_cfm_loanbill_ra_entry.fid, t_cfm_loanbill_ra_entry.fraeffectdate, t_cfm_loanbill_ra_entry.frayearrate FROM t_cfm_loanbill_ra_entry\n" +
"JOIN (SELECT fid, MAX(fraeffectdate) AS latest_date FROM t_cfm_loanbill_ra_entry WHERE fraeffectdate < CURRENT_DATE GROUP BY fid) AS latest_dates\n" +
"ON t_cfm_loanbill_ra_entry.fid = latest_dates.fid AND t_cfm_loanbill_ra_entry.fraeffectdate = latest_dates.latest_date) AS raentry ON raentry.fid = t3.fid -- 最新利率\n" +
"WHERE\n" +
" t2.fbillstatus='C' AND e.floantype IN ('ec','entrust')\n" +
" AND t3.fbillstatus='C'\n" +

View File

@ -125,7 +125,7 @@ public class transbillreportnewPlugin extends AbstractTmcTreeReportDataPlugin {
sumAmountFieldList1.add("downamount");
sumAmountFieldList1.add("shkd_qmye");
sumAmountFieldList1.add("shkd_qmkyye");
this.setSumAmountFieldList(sumAmountFieldList1);
// this.setSumAmountFieldList(sumAmountFieldList1);
//期末余额
dataSet = dataSet.addField("shkd_qcye+upamount- downamount", "shkd_qmye");
dataSet = dataSet.addField("shkd_qckyye+upamount- downamount", "shkd_qmkyye");