应收票据台账报表插件6
This commit is contained in:
parent
15f7a89e2c
commit
0f66629e8b
|
@ -10,110 +10,116 @@ import kd.bos.orm.query.QCP;
|
|||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 报表界面插件
|
||||
*/
|
||||
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," +
|
||||
String selectFields = "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,issuedate as shkd_cprq, draftbillexpiredate as shkd_pjdqr";
|
||||
DataSet draftBillData = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"cdm_receivablebill",
|
||||
selectFields, new QFilter[]{new QFilter("source", QCP.not_equals,"cdm")}, null);
|
||||
String[] fieldNames = draftBillData.getRowMeta().getFieldNames();
|
||||
String[] newFieldNames1 = ExpansionArray(fieldNames, Arrays.asList("shkd_txrq", "shkd_txjg","shkd_txje"));
|
||||
String[] newFieldNames2 = ExpansionArray(newFieldNames1, Arrays.asList("shkd_tsrq", "shkd_tsyh","shkd_tsje"));
|
||||
String[] newFieldNames3 = ExpansionArray(newFieldNames2, Arrays.asList("shkd_bsrq", "shkd_bsr","shkd_bsje"));
|
||||
String[] newFieldNames4 = ExpansionArray(newFieldNames3, Arrays.asList("shkd_zyrq", "shkd_zyr","shkd_yzyje"));
|
||||
|
||||
DataSet disCountData = getDisCountData();
|
||||
DataSet pledgeData = getPledgeData();
|
||||
DataSet endorseData = getEndorseData();
|
||||
DataSet collectData = getCollectData();
|
||||
|
||||
return draftBillData.join(disCountData, JoinType.LEFT).select("shkd_txrq,shkd_txjg,shkd_txje")
|
||||
.on("shkd_id","pjid3").finish()
|
||||
.join(collectData, JoinType.LEFT).select("shkd_tsrq,shkd_tsje")
|
||||
.on("shkd_id","pjid1").finish()
|
||||
.join(endorseData, JoinType.LEFT).select("shkd_bsrq,shkd_bsr,shkd_bsje")
|
||||
.on("shkd_id","pjid2").finish()
|
||||
.join(pledgeData, JoinType.LEFT).select("shkd_zyrq,shkd_zyr,shkd_zyje")
|
||||
.on("shkd_id","pjid4").finish();
|
||||
return draftBillData.join(disCountData, JoinType.LEFT)
|
||||
.on("shkd_id","pjid3").select(newFieldNames1).finish()
|
||||
.join(collectData, JoinType.LEFT)
|
||||
.on("shkd_id","pjid1").select(newFieldNames2).finish()
|
||||
.join(endorseData, JoinType.LEFT)
|
||||
.on("shkd_id","pjid2").select(newFieldNames3).finish()
|
||||
.join(pledgeData, JoinType.LEFT)
|
||||
.on("shkd_id","pjid4").select(newFieldNames4).finish();
|
||||
}
|
||||
|
||||
//贴现
|
||||
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");
|
||||
"/*dialect*/ SELECT \n" +
|
||||
" pjid3,\n" +
|
||||
" MAX(discountid) AS discountid,\n" +
|
||||
" MAX(discounttradetype) AS discounttradetype,\n" +
|
||||
" LISTAGG(TO_CHAR(bizdate, 'YYYY-MM-DD'),';') WITHIN GROUP (ORDER BY bizdate ASC) AS shkd_txrq, \n" +
|
||||
" LISTAGG(disfrecbodyname || ';' || TO_CHAR(discamt, '999,999,999,999.99'),';') \n" +
|
||||
" WITHIN GROUP (ORDER BY bizdate ASC) AS shkd_txjg,\n" +
|
||||
" SUM(discamt) AS shkd_txje\n" +
|
||||
" FROM (\n" +
|
||||
" SELECT \n" +
|
||||
" t1.fid AS pjid3,\n" +
|
||||
" t2.fid AS discountid,\n" +
|
||||
" t2.ftradetype AS discounttradetype,\n" +
|
||||
" t2.frecbodyname AS disfrecbodyname,\n" +
|
||||
" t2.FBIZDATE AS bizdate,\n" +
|
||||
" t2.fdiscamt AS discamt\n" +
|
||||
" FROM \n" +
|
||||
" CTSK0414_FI.t_cdm_draftbill t1\n" +
|
||||
" LEFT JOIN \n" +
|
||||
" CTSK0414_FI.t_cdm_drafttrdbill_entry t3 ON t1.fid = t3.fdraftbillid\n" +
|
||||
" LEFT JOIN \n" +
|
||||
" CTSK0414_FI.t_cdm_drafttradebill t2 ON t2.fid = t3.fid\n" +
|
||||
" WHERE \n" +
|
||||
" t1.fsource <> 'cdm'\n" +
|
||||
" AND t2.ftradetype = 'discount'\n" +
|
||||
" ) src\n" +
|
||||
" GROUP BY pjid3;");
|
||||
|
||||
}
|
||||
|
||||
//背书
|
||||
private DataSet getEndorseData() {
|
||||
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
|
||||
"/*dialect*/SELECT " +
|
||||
" pjid2," +
|
||||
" MAX(discountid) AS discountid," +
|
||||
" MAX(discounttradetype) AS discounttradetype," +
|
||||
" LISTAGG(" +
|
||||
" TO_CHAR(bizdate, 'YYYY-MM-DD'), '/n'" +
|
||||
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_bsrq, " +
|
||||
" LISTAGG(" +
|
||||
" endorsename || ';' || TO_CHAR(endorseamt, '999,999,999,999.99'),'/n'" +
|
||||
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_bsr," +
|
||||
" SUM(endorseamt) AS shkd_bsje" +
|
||||
"FROM (" +
|
||||
" SELECT " +
|
||||
" t1.fid AS pjid2," +
|
||||
" t2.fid AS discountid," +
|
||||
" t2.ftradetype AS discounttradetype," +
|
||||
" t2.fbeendorsortext AS endorsename," +
|
||||
" t2.FBIZDATE AS bizdate," +
|
||||
" t2.famount AS endorseamt" +
|
||||
" 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 = 'endorse'" +
|
||||
") src" +
|
||||
"GROUP BY pjid2;");
|
||||
"/*dialect*/ SELECT \n" +
|
||||
" pjid2,\n" +
|
||||
" MAX(discountid) AS discountid,\n" +
|
||||
" MAX(discounttradetype) AS discounttradetype,\n" +
|
||||
" LISTAGG(TO_CHAR(bizdate, 'YYYY-MM-DD'), ';') WITHIN GROUP (ORDER BY bizdate ASC) AS shkd_bsrq,\n" +
|
||||
" LISTAGG(endorsename || ';' || TO_CHAR(endorseamt, '999,999,999,999.99'), ';') WITHIN GROUP " +
|
||||
" (ORDER BY bizdate ASC) 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 \n" +
|
||||
" ON t1.fid = t3.fdraftbillid\n" +
|
||||
" LEFT JOIN CTSK0414_FI.t_cdm_drafttradebill t2 \n" +
|
||||
" ON t2.fid = t3.fid\n" +
|
||||
" WHERE \n" +
|
||||
" t1.fsource <> 'cdm' \n" +
|
||||
" AND t2.ftradetype = 'endorse'\n" +
|
||||
") src\n" +
|
||||
" GROUP BY pjid2;");
|
||||
}
|
||||
|
||||
//托收
|
||||
private DataSet getCollectData(){
|
||||
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
|
||||
"/*dialect*/SELECT " +
|
||||
"SELECT " +
|
||||
" t1.fid AS pjid1," +
|
||||
" t2.fid AS discountid," +
|
||||
" t2.ftradetype AS discounttradetype," +
|
||||
" t4.freceivername AS shkd_tsjg," +
|
||||
" t4.freceivername AS shkd_tsyh," +
|
||||
" t2.FBIZDATE AS shkd_tsrq," +
|
||||
" t2.fcollection AS shkd_tsje" +
|
||||
"FROM CTSK0414_FI.t_cdm_draftbill t1" +
|
||||
" FROM CTSK0414_FI.t_cdm_draftbill t1" +
|
||||
" LEFT JOIN CTSK0414_FI.t_cdm_draftbill_e t4 ON t4.fid = t1.fid" +
|
||||
" 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" +
|
||||
|
@ -124,32 +130,47 @@ public class BillReceivableReportFormPlugin extends AbstractReportListDataPlugin
|
|||
//托收
|
||||
private DataSet getPledgeData(){
|
||||
return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
|
||||
"/*dialect*/SELECT " +
|
||||
" pjid4," +
|
||||
" MAX(t2id4) AS t2id4," +
|
||||
" MAX(tradetype4) AS tradetype4," +
|
||||
" LISTAGG(" +
|
||||
" TO_CHAR(bizdate, 'YYYY-MM-DD'),';' " +
|
||||
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_zyrq," +
|
||||
" LISTAGG(" +
|
||||
" pledgename || ';' || TO_CHAR(pledgeamt, '999,999,999,999.99'),';'" +
|
||||
" ) WITHIN GROUP (ORDER BY bizdate) AS shkd_zyr," +
|
||||
" SUM(pledgeamt) AS shkd_zyje" +
|
||||
"FROM (" +
|
||||
" SELECT " +
|
||||
" t1.fid AS pjid4," +
|
||||
" t2.fid AS t2id4," +
|
||||
" t2.ftradetype AS tradetype4," +
|
||||
" t2.fpledgeetext AS pledgename," +
|
||||
" t2.FBIZDATE AS bizdate," +
|
||||
" t2.famount AS pledgeamt" +
|
||||
" 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 = 'pledge'" +
|
||||
") src" +
|
||||
"GROUP BY pjid4");
|
||||
"/*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 ASC) AS shkd_zyrq,\n" +
|
||||
" LISTAGG(\n" +
|
||||
" pledgename || ';' || TO_CHAR(pledgeamt, '999,999,999,999.99'),';'\n" +
|
||||
" ) WITHIN GROUP (ORDER BY bizdate ASC) AS shkd_zyr,\n" +
|
||||
" SUM(pledgeamt) AS shkd_yzyje\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;");
|
||||
|
||||
}
|
||||
|
||||
|
||||
private String[] ExpansionArray(String[] fieldNames, List<String> list){
|
||||
|
||||
// 创建一个新的数组
|
||||
String[] newFieldNames = new String[fieldNames.length + list.size()];
|
||||
|
||||
// 将原来的字段名数组复制到新数组
|
||||
System.arraycopy(fieldNames, 0, newFieldNames, 0, fieldNames.length);
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
// 添加两个新的字段到新数组的末尾
|
||||
newFieldNames[fieldNames.length+i] = list.get(i); // 第i个新字段
|
||||
}
|
||||
return newFieldNames;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue