From 88b872bac314ef11d1132baa2fef33ae8a74031f Mon Sep 17 00:00:00 2001 From: zengweihai Date: Thu, 15 Aug 2024 14:44:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E9=87=91=E6=97=A5=E8=A1=A8=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E9=80=BB=E8=BE=91=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/data/CapitalDayListDataPlugin.java | 117 ++++-------------- 1 file changed, 24 insertions(+), 93 deletions(-) diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayListDataPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayListDataPlugin.java index 6bfe319..863f086 100644 --- a/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayListDataPlugin.java +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/cas/report/data/CapitalDayListDataPlugin.java @@ -116,50 +116,15 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple public BigDecimal getTransactions(DynamicObject[] per_cas_recbills){ BigDecimal recAmountTotal = BigDecimal.ZERO; for (DynamicObject per_cas_recbill : per_cas_recbills) { - //查询收款单,为内部往来的公司 - String payertype = per_cas_recbill.getString("payertype");//付款人类型 - Long payerid = per_cas_recbill.getLong("payer");//收款人id - //判断是否内部,不是则跳过该循环 - if("bd_customer".equals(payertype)||"bd_supplier".equals(payertype)||"bos_org".equals(payertype)){ - if("bd_supplier".equals(payertype)){ - QFilter per_recQF = new QFilter("id", QCP.equals, payerid); - DynamicObject bd_supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", "id,number,internal_company", per_recQF.toArray()); - if(bd_supplier != null){ - DynamicObject internal_company = bd_supplier.getDynamicObject("internal_company"); - if (internal_company != null){ - if (isYuYe(internal_company.getLong("id"))){ - continue; - } - }else { - continue; - } - }else { - continue; - } - } else if ("bd_customer".equals(payertype)) { - QFilter per_recQF = new QFilter("id", QCP.equals, payerid); - DynamicObject bd_customer = BusinessDataServiceHelper.loadSingle("bd_customer", "id,number,internal_company", per_recQF.toArray()); - if (bd_customer != null){ - DynamicObject internal_company = bd_customer.getDynamicObject("internal_company"); - if (internal_company != null){ - if (isYuYe(internal_company.getLong("id"))){ - continue; - } - }else { - continue; - } - }else { - continue; - } - }else { - if (isYuYe(payerid)){ - continue; - } + //查询收款单,为内部往来的公司:收款类型为公司内部往来,或者集团内部往来 + DynamicObject receivingtype = per_cas_recbill.getDynamicObject("receivingtype");//收款类型 + if (receivingtype != null){ + String number = receivingtype.getString("number"); + if("901".equals(number) || "902".equals(number)){ + //是内部往来,累计金额 + BigDecimal actrecamt = per_cas_recbill.getBigDecimal("actrecamt"); + recAmountTotal = recAmountTotal.add(actrecamt);//添加收入金额 } - //是内部往来,累计金额 - BigDecimal actrecamt = per_cas_recbill.getBigDecimal("actrecamt"); - recAmountTotal = recAmountTotal.add(actrecamt);//添加收入金额 - } } return recAmountTotal; @@ -171,53 +136,19 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple BigDecimal perPayAmountTotal = BigDecimal.ZERO; BigDecimal addRecAmountTotal = BigDecimal.ZERO; for (DynamicObject per_cas_paybill : per_cas_paybills) { - //查询收款单,为内部往来的公司 - String payertype = per_cas_paybill.getString("payeetype");//收款人款人类型 - Long payerid = per_cas_paybill.getLong("payee");//收款人id - //判断是否内部,不是则跳过该循环 - if("bd_customer".equals(payertype)||"bd_supplier".equals(payertype)||"bos_org".equals(payertype)){ - if("bd_supplier".equals(payertype)){ - QFilter per_recQF = new QFilter("id",QCP.equals,payerid); - DynamicObject bd_supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", "id,number,internal_company", per_recQF.toArray()); - if (bd_supplier != null){ - DynamicObject internal_company = bd_supplier.getDynamicObject("internal_company"); - if (internal_company != null){ - if (isYuYe(internal_company.getLong("id"))){ - continue; - } - }else { - continue; - } - }else { - continue; + //查询收款单,为内部往来的公司:收款类型为公司内部往来,或者集团内部往来 + DynamicObject paymenttype = per_cas_paybill.getDynamicObject("paymenttype");//付款类型 + if (paymenttype != null){ + String number = paymenttype.getString("number"); + if("901".equals(number) || "902".equals(number)){ + //是内部往来,累计金额 + String payNumber = per_cas_paybill.getDynamicObject("org").getString("number"); + String recNumber = per_cas_paybill.getString("payeenumber"); + BigDecimal actpayamt = per_cas_paybill.getBigDecimal("actpayamt"); + perPayAmountTotal = perPayAmountTotal.add(actpayamt); + if (payNumber.equals(recNumber)){//当付款编码同收款编码时 + addRecAmountTotal = addRecAmountTotal.add(actpayamt);//补充收款数据 } - } else if ("bd_customer".equals(payertype)) { - QFilter per_recQF = new QFilter("id",QCP.equals,payerid); - DynamicObject bd_customer = BusinessDataServiceHelper.loadSingle("bd_customer", "id,number,internal_company", per_recQF.toArray()); - if (bd_customer != null){ - DynamicObject internal_company = bd_customer.getDynamicObject("internal_company"); - if (internal_company != null){ - if (isYuYe(internal_company.getLong("id"))){ - continue; - } - }else { - continue; - } - }else { - continue; - } - }else{ - if (isYuYe(payerid)){ - continue; - } - } - //是内部往来,累计金额 - String payNumber = per_cas_paybill.getDynamicObject("org").getString("number"); - String recNumber = per_cas_paybill.getString("payeenumber"); - BigDecimal actpayamt = per_cas_paybill.getBigDecimal("actpayamt"); - perPayAmountTotal = perPayAmountTotal.add(actpayamt); - if (payNumber.equals(recNumber)){//当付款编码同收款编码时 - addRecAmountTotal = addRecAmountTotal.add(actpayamt);//补充收款数据 } } } @@ -312,7 +243,7 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple } Date startDate = this.getStartDate(firstDate);//过滤条件-开始日期 bef_payQF.and("paydate","<",startDate); - DynamicObject[] bef_cas_paybills = BusinessDataServiceHelper.load("cas_paybill", "id,org,org.id,org.number,payeenumber,actpayamt,currency", bef_payQF.toArray()); + DynamicObject[] bef_cas_paybills = BusinessDataServiceHelper.load("cas_paybill", "id,org,org.id,org.number,payeenumber,actpayamt,currency,paymenttype", bef_payQF.toArray()); for (DynamicObject bef_cas_paybill : bef_cas_paybills) { String payNumber = bef_cas_paybill.getDynamicObject("org").getString("number"); String recNumber = bef_cas_paybill.getString("payeenumber"); @@ -334,7 +265,7 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple bef_recQF.and("org.id",QCP.equals,orgPkValue); bef_recQF.and("payeedate",QCP.large_equals,begindate);//收款日期payeedate 业务日期bizdate bef_recQF.and("payeedate","<",startDate); - DynamicObject[] cas_recbills = BusinessDataServiceHelper.load("cas_recbill", "id,org,org.id,org.number,actrecamt,currency", bef_recQF.toArray()); + DynamicObject[] cas_recbills = BusinessDataServiceHelper.load("cas_recbill", "id,org,org.id,org.number,actrecamt,currency,receivingtype", bef_recQF.toArray()); for (DynamicObject cas_recbill : cas_recbills) { BigDecimal actrecamt = cas_recbill.getBigDecimal("actrecamt"); recAmountTotal = recAmountTotal.add(actrecamt); @@ -361,7 +292,7 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple } per_recQF.and("payeedate",QCP.large_equals,startDate);//收款日期payeedate 业务日期bizdate per_recQF.and("payeedate",QCP.less_equals,overDate); - DynamicObject[] per_cas_recbills = BusinessDataServiceHelper.load("cas_recbill", "id,org,org.id,org.number,actrecamt,currency,payertype,customerf7,customerf7,payer", per_recQF.toArray()); + DynamicObject[] per_cas_recbills = BusinessDataServiceHelper.load("cas_recbill", "id,org,org.id,org.number,actrecamt,currency,payertype,customerf7,customerf7,payer,receivingtype", per_recQF.toArray()); BigDecimal transactions = this.getTransactions(per_cas_recbills); recLB =recLB.add(transactions); //内部往来收入合计 @@ -382,7 +313,7 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple per_payQF.and("org.id",QCP.equals,orgPkValue); per_payQF.and("paydate",QCP.large_equals,startDate);//付款日期paydate 业务日期bizdate per_payQF.and("paydate",QCP.less_equals,overDate); - DynamicObject[] per_cas_paybills = BusinessDataServiceHelper.load("cas_paybill", "id,org,org.id,org.number,payeenumber,actpayamt,currency,payeetype,payee", per_payQF.toArray()); + DynamicObject[] per_cas_paybills = BusinessDataServiceHelper.load("cas_paybill", "id,org,org.id,org.number,payeenumber,actpayamt,currency,payeetype,payee,paymenttype", per_payQF.toArray()); HashMap stringBigDecimalHashMap = this.getTransactionsByfk(per_cas_paybills); payLB =payLB.add(stringBigDecimalHashMap.get("pay")); //内部往来支出合计 recLB = recLB.add(stringBigDecimalHashMap.get("rec"));//内部往来收入合计(同公司收入补充)