应收票据台账报表插件1

This commit is contained in:
wenlukang1 2025-07-23 16:27:40 +08:00
parent 09a0103673
commit 1722c6ed48
1 changed files with 134 additions and 2 deletions

View File

@ -1,10 +1,12 @@
package shkd.sys.sys.plugin.report;
import kd.bos.algo.DataSet;
import kd.bos.algo.JoinDataSet;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
import kd.bos.entity.report.AbstractReportListDataPlugin;
import kd.bos.entity.report.ReportQueryParam;
import kd.bos.report.plugin.AbstractReportFormPlugin;
import kd.sdk.plugin.Plugin;
import kd.bos.servicehelper.QueryServiceHelper;
/**
* 报表界面插件
@ -12,6 +14,136 @@ import kd.sdk.plugin.Plugin;
public class BillReceivableReportFormPlugin extends AbstractReportListDataPlugin {
@Override
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
String selectFields = "id as shkd_id,company.name as shkd_skdw,bizdate as shkd_spyf,bizdate as shkd_sprq,draftbillno as shkd_pjhm" +
"amount as shkd_hpje,availableamount as shkd_kyje,drawername as shkd_cprqc,delivername as shkd_jprqcqs," +
"acceptername as shkd_cdrqc";
DataSet draftBillData = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"cdm_receivablebill",
selectFields, null, null);
DataSet disCountData = getDisCountData();
JoinDataSet select = draftBillData.join(disCountData).select("");
DataSet pledgeData = getPledgeData();
DataSet endorseData = getEndorseData();
DataSet collectData = getCollectData();
return null;
}
//贴现
private DataSet getDisCountData(){
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
"/*dialect*/SELECT " +
" pjid3," +
" MAX(discountid) AS discountid," +
" MAX(discounttradetype) AS discounttradetype," +
" LISTAGG(" +
" TO_CHAR(discountdate, 'YYYY-MM-DD'), -- 格式化日期" +
" '' " +
" ) WITHIN GROUP (ORDER BY discountdate) AS shkd_txrq, -- 按日期排序" +
// " -- 合并所有记录为 \"贴现人;金额; 贴现人;金额; ...\" 格式" +
" LISTAGG(" +
" disfrecbodyname || ';' || TO_CHAR(discamt, '999,999,999,999.99')," +
// " ';' -- 用分号分隔" +
" ) WITHIN GROUP (ORDER BY discountdate) AS shkd_txjg" +
"FROM (" +
" SELECT " +
" t1.fid AS pjid3," +
" t2.fid AS discountid," +
" t2.ftradetype AS discounttradetype," +
" t2.frecbodyname AS disfrecbodyname," +
" t2.FBIZDATE AS discountdate," +
" t2.fdiscamt AS discamt" +
" FROM " +
" CTSK0414_FI.t_cdm_draftbill t1" +
" LEFT JOIN " +
" CTSK0414_FI.t_cdm_drafttrdbill_entry t3 ON t1.fid = t3.fdraftbillid" +
" LEFT JOIN " +
" CTSK0414_FI.t_cdm_drafttradebill t2 ON t2.fid = t3.fid" +
" WHERE " +
" t1.fsource <> 'cdm'" +
" AND t2.ftradetype = 'discount'" +
") src" +
"GROUP BY pjid3");
}
//背书
private DataSet getEndorseData() {
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
"/*dialect*/SELECT \n" +
" pjid2,\n" +
" MAX(discountid) AS discountid,\n" +
" MAX(discounttradetype) AS discounttradetype,\n" +
" LISTAGG(\n" +
" TO_CHAR(bizdate, 'YYYY-MM-DD'), '\\n' \n" +
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_bsrq, \n" +
" LISTAGG(\n" +
" endorsename || ';' || TO_CHAR(endorseamt, '999,999,999,999.99'),'\\n'\n" +
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_bsr,\n" +
" SUM(endorseamt) AS shkd_bsje\n" +
"FROM (\n" +
" SELECT \n" +
" t1.fid AS pjid2,\n" +
" t2.fid AS discountid,\n" +
" t2.ftradetype AS discounttradetype,\n" +
" t2.fbeendorsortext AS endorsename,\n" +
" t2.FBIZDATE AS bizdate,\n" +
" t2.famount AS endorseamt\n" +
" FROM CTSK0414_FI.t_cdm_draftbill t1\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttrdbill_entry t3 ON t1.fid = t3.fdraftbillid\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttradebill t2 ON t2.fid = t3.fid\n" +
" WHERE t1.fsource <> 'cdm' AND t2.ftradetype = 'endorse'\n" +
") src\n" +
"GROUP BY pjid2;");
}
//托收
private DataSet getCollectData(){
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
"/*dialect*/SELECT \n" +
" t1.fid AS pjid1,\n" +
" t2.fid AS discountid,\n" +
" t2.ftradetype AS discounttradetype,\n" +
" t4.freceivername AS shkd_tsjg,\n" +
" t2.FBIZDATE AS shkd_tsrq,\n" +
" t2.fcollection AS shkd_tsje\n" +
"FROM CTSK0414_FI.t_cdm_draftbill t1\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_draftbill_e t4 ON t4.fid = t1.fid\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttrdbill_entry t3 ON t1.fid = t3.fdraftbillid\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttradebill t2 ON t2.fid = t3.fid\n" +
" WHERE t1.fsource <> 'cdm' AND t2.ftradetype = 'collect'");
}
//托收
private DataSet getPledgeData(){
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
"/*dialect*/SELECT \n" +
" pjid4,\n" +
" MAX(t2id4) AS t2id4,\n" +
" MAX(tradetype4) AS tradetype4,\n" +
" LISTAGG(\n" +
" TO_CHAR(bizdate, 'YYYY-MM-DD'),';' \n" +
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_zyrq,\n" +
" LISTAGG(\n" +
" pledgename || ';' || TO_CHAR(pledgeamt, '999,999,999,999.99'),';'\n" +
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_zyr,\n" +
" SUM(pledgeamt) AS shkd_zyje\n" +
"FROM (\n" +
" SELECT \n" +
" t1.fid AS pjid4,\n" +
" t2.fid AS t2id4,\n" +
" t2.ftradetype AS tradetype4,\n" +
" t2.fpledgeetext AS pledgename,\n" +
" t2.FBIZDATE AS bizdate,\n" +
" t2.famount AS pledgeamt\n" +
" FROM CTSK0414_FI.t_cdm_draftbill t1\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttrdbill_entry t3 ON t1.fid = t3.fdraftbillid\n" +
" LEFT JOIN CTSK0414_FI.t_cdm_drafttradebill t2 ON t2.fid = t3.fid\n" +
" WHERE t1.fsource <> 'cdm' AND t2.ftradetype = 'pledge'\n" +
") src\n" +
"GROUP BY pjid4");
}
}