资金日表取数逻辑更新

This commit is contained in:
zengweihai 2024-08-15 14:44:16 +08:00
parent 9f15f95342
commit 88b872bac3
1 changed files with 24 additions and 93 deletions

View File

@ -116,50 +116,15 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple
public BigDecimal getTransactions(DynamicObject[] per_cas_recbills){ public BigDecimal getTransactions(DynamicObject[] per_cas_recbills){
BigDecimal recAmountTotal = BigDecimal.ZERO; BigDecimal recAmountTotal = BigDecimal.ZERO;
for (DynamicObject per_cas_recbill : per_cas_recbills) { for (DynamicObject per_cas_recbill : per_cas_recbills) {
//查询收款单为内部往来的公司 //查询收款单为内部往来的公司:收款类型为公司内部往来或者集团内部往来
String payertype = per_cas_recbill.getString("payertype");//付款人类型 DynamicObject receivingtype = per_cas_recbill.getDynamicObject("receivingtype");//收款类型
Long payerid = per_cas_recbill.getLong("payer");//收款人id if (receivingtype != null){
//判断是否内部不是则跳过该循环 String number = receivingtype.getString("number");
if("bd_customer".equals(payertype)||"bd_supplier".equals(payertype)||"bos_org".equals(payertype)){ if("901".equals(number) || "902".equals(number)){
if("bd_supplier".equals(payertype)){ //是内部往来累计金额
QFilter per_recQF = new QFilter("id", QCP.equals, payerid); BigDecimal actrecamt = per_cas_recbill.getBigDecimal("actrecamt");
DynamicObject bd_supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", "id,number,internal_company", per_recQF.toArray()); recAmountTotal = recAmountTotal.add(actrecamt);//添加收入金额
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;
}
} }
//是内部往来累计金额
BigDecimal actrecamt = per_cas_recbill.getBigDecimal("actrecamt");
recAmountTotal = recAmountTotal.add(actrecamt);//添加收入金额
} }
} }
return recAmountTotal; return recAmountTotal;
@ -171,53 +136,19 @@ public class CapitalDayListDataPlugin extends AbstractReportListDataPlugin imple
BigDecimal perPayAmountTotal = BigDecimal.ZERO; BigDecimal perPayAmountTotal = BigDecimal.ZERO;
BigDecimal addRecAmountTotal = BigDecimal.ZERO; BigDecimal addRecAmountTotal = BigDecimal.ZERO;
for (DynamicObject per_cas_paybill : per_cas_paybills) { for (DynamicObject per_cas_paybill : per_cas_paybills) {
//查询收款单为内部往来的公司 //查询收款单为内部往来的公司:收款类型为公司内部往来或者集团内部往来
String payertype = per_cas_paybill.getString("payeetype");//收款人款人类型 DynamicObject paymenttype = per_cas_paybill.getDynamicObject("paymenttype");//付款类型
Long payerid = per_cas_paybill.getLong("payee");//收款人id if (paymenttype != null){
//判断是否内部不是则跳过该循环 String number = paymenttype.getString("number");
if("bd_customer".equals(payertype)||"bd_supplier".equals(payertype)||"bos_org".equals(payertype)){ if("901".equals(number) || "902".equals(number)){
if("bd_supplier".equals(payertype)){ //是内部往来累计金额
QFilter per_recQF = new QFilter("id",QCP.equals,payerid); String payNumber = per_cas_paybill.getDynamicObject("org").getString("number");
DynamicObject bd_supplier = BusinessDataServiceHelper.loadSingle("bd_supplier", "id,number,internal_company", per_recQF.toArray()); String recNumber = per_cas_paybill.getString("payeenumber");
if (bd_supplier != null){ BigDecimal actpayamt = per_cas_paybill.getBigDecimal("actpayamt");
DynamicObject internal_company = bd_supplier.getDynamicObject("internal_company"); perPayAmountTotal = perPayAmountTotal.add(actpayamt);
if (internal_company != null){ if (payNumber.equals(recNumber)){//当付款编码同收款编码时
if (isYuYe(internal_company.getLong("id"))){ addRecAmountTotal = addRecAmountTotal.add(actpayamt);//补充收款数据
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;
}
}
//是内部往来累计金额
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);//过滤条件-开始日期 Date startDate = this.getStartDate(firstDate);//过滤条件-开始日期
bef_payQF.and("paydate","<",startDate); 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) { for (DynamicObject bef_cas_paybill : bef_cas_paybills) {
String payNumber = bef_cas_paybill.getDynamicObject("org").getString("number"); String payNumber = bef_cas_paybill.getDynamicObject("org").getString("number");
String recNumber = bef_cas_paybill.getString("payeenumber"); 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("org.id",QCP.equals,orgPkValue);
bef_recQF.and("payeedate",QCP.large_equals,begindate);//收款日期payeedate 业务日期bizdate bef_recQF.and("payeedate",QCP.large_equals,begindate);//收款日期payeedate 业务日期bizdate
bef_recQF.and("payeedate","<",startDate); 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) { for (DynamicObject cas_recbill : cas_recbills) {
BigDecimal actrecamt = cas_recbill.getBigDecimal("actrecamt"); BigDecimal actrecamt = cas_recbill.getBigDecimal("actrecamt");
recAmountTotal = recAmountTotal.add(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.large_equals,startDate);//收款日期payeedate 业务日期bizdate
per_recQF.and("payeedate",QCP.less_equals,overDate); 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); BigDecimal transactions = this.getTransactions(per_cas_recbills);
recLB =recLB.add(transactions); //内部往来收入合计 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("org.id",QCP.equals,orgPkValue);
per_payQF.and("paydate",QCP.large_equals,startDate);//付款日期paydate 业务日期bizdate per_payQF.and("paydate",QCP.large_equals,startDate);//付款日期paydate 业务日期bizdate
per_payQF.and("paydate",QCP.less_equals,overDate); 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<String, BigDecimal> stringBigDecimalHashMap = this.getTransactionsByfk(per_cas_paybills); HashMap<String, BigDecimal> stringBigDecimalHashMap = this.getTransactionsByfk(per_cas_paybills);
payLB =payLB.add(stringBigDecimalHashMap.get("pay")); //内部往来支出合计 payLB =payLB.add(stringBigDecimalHashMap.get("pay")); //内部往来支出合计
recLB = recLB.add(stringBigDecimalHashMap.get("rec"));//内部往来收入合计同公司收入补充 recLB = recLB.add(stringBigDecimalHashMap.get("rec"));//内部往来收入合计同公司收入补充