付款处理单无合同付款代码移除
This commit is contained in:
parent
3403774ea8
commit
d55f5745be
|
@ -1,25 +1,13 @@
|
|||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.EntityMetadataCache;
|
||||
import kd.bos.entity.MainEntityType;
|
||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||
import kd.bos.entity.validate.AbstractValidator;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.ec.contract.opplugin.fund.PaymentApplyFundOp;
|
||||
import kd.ec.contract.opplugin.fund.validator.PaymentMaxAmountValidator;
|
||||
import kd.ec.contract.opplugin.fund.validator.PaymentTypeValidator;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
// 付款申请单提交审核操作插件
|
||||
public class PaymentApplyFundExtOp extends PaymentApplyFundOp {
|
||||
|
@ -39,77 +27,5 @@ public class PaymentApplyFundExtOp extends PaymentApplyFundOp {
|
|||
validators.removeIf(validator -> validator instanceof PaymentTypeValidator);
|
||||
// 添加定制二开的校验器(位置放第一位,优先执行) 不需要产品校验,自定义开发校验
|
||||
//validators.add(0, new PaymentMaxAmountExtValidator());
|
||||
|
||||
}
|
||||
|
||||
protected void updateContTypeAmtTotalShowAmt(DynamicObject[] dataEntities) {
|
||||
Map<Long, BigDecimal> contractDeductionMap = new HashMap(16);
|
||||
DynamicObject[] var3 = dataEntities;
|
||||
int var4 = dataEntities.length;
|
||||
|
||||
label50:
|
||||
for (int var5 = 0; var5 < var4; ++var5) {
|
||||
DynamicObject paymentApply = var3[var5];
|
||||
DynamicObjectCollection entryCol = paymentApply.getDynamicObjectCollection("entryentity");//付款信息分录
|
||||
Iterator var8 = entryCol.iterator();
|
||||
|
||||
while (true) {
|
||||
while (true) {
|
||||
if (!var8.hasNext()) {
|
||||
continue label50;
|
||||
}
|
||||
|
||||
DynamicObject entry = (DynamicObject) var8.next();
|
||||
DynamicObject contract = entry.getDynamicObject("contract");//合同名称
|
||||
if (contract != null) {
|
||||
BigDecimal thisApplyOfTaxAmt = entry.getBigDecimal("applyoftaxamount");//本次应付金额⑭
|
||||
BigDecimal deduction = entry.getBigDecimal("thisdeduction");//本期预付款抵扣⑬
|
||||
BigDecimal contractDeduction = (BigDecimal) contractDeductionMap.getOrDefault(contract.getLong("id"), BigDecimal.ZERO);
|
||||
contractDeductionMap.put(contract.getLong("id"), contractDeduction.add(deduction));
|
||||
String type = entry.getString("paymenttype");//支付类型
|
||||
QFilter contractFilter = new QFilter("contract", "=", contract.getLong("id"));
|
||||
QFilter typeFilter = new QFilter("type", "=", type);
|
||||
DynamicObject node = entry.getDynamicObject("paynode");//节点(隐藏)
|
||||
String nodeText = entry.getString("paynodetext");//节点
|
||||
if (node != null) {
|
||||
typeFilter.and("paynode", "=", node.getPkValue());
|
||||
} else if (StringUtils.isNotEmpty(nodeText)) {
|
||||
typeFilter.and("node", "=", nodeText);
|
||||
}
|
||||
|
||||
DynamicObject[] contTypeAmts = BusinessDataServiceHelper.load("ecpf_conttypeamt",
|
||||
"totalshowamt,totaldeductionamt", new QFilter[]{contractFilter, typeFilter});//合同的收付类型对应金额单
|
||||
if (contTypeAmts != null && contTypeAmts.length != 0) {
|
||||
DynamicObject[] var28 = contTypeAmts;
|
||||
int var26 = contTypeAmts.length;
|
||||
|
||||
for (int var27 = 0; var27 < var26; ++var27) {
|
||||
DynamicObject contTypeAmt = var28[var27];
|
||||
BigDecimal totalShowAmt = contTypeAmt.getBigDecimal("totalshowamt");//合同的收付类型对应金额单-累计应付金额
|
||||
contTypeAmt.set("totalshowamt", totalShowAmt.add(thisApplyOfTaxAmt));
|
||||
BigDecimal totalDeduction = contTypeAmt.getBigDecimal("totaldeductionamt");//合同的收付类型对应金额单-累计申请抵扣金额
|
||||
contTypeAmt.set("totaldeductionamt", totalDeduction.add(deduction));
|
||||
}
|
||||
|
||||
SaveServiceHelper.save(contTypeAmts);
|
||||
} else {
|
||||
BigDecimal payRate = entry.getBigDecimal("controlrate");//付款控制比例(%)③
|
||||
MainEntityType entityType = EntityMetadataCache.getDataEntityType("ecpf_conttypeamt");//合同的收付类型对应金额单
|
||||
DynamicObject newContTypeAmtObj = new DynamicObject(entityType);
|
||||
newContTypeAmtObj.set("contract", contract);//合同
|
||||
newContTypeAmtObj.set("type", type);//收付款类型
|
||||
newContTypeAmtObj.set("ratio", payRate);//收付款比例(%)
|
||||
newContTypeAmtObj.set("totalshowamt", thisApplyOfTaxAmt);//累计应付金额
|
||||
newContTypeAmtObj.set("totaldeductionamt", deduction);//累计申请抵扣金额
|
||||
newContTypeAmtObj.set("paynode", entry.get("paynode"));//节点(隐藏)
|
||||
newContTypeAmtObj.set("node", entry.get("paynode") == null ? entry.get("paynodetext") : "");//节点
|
||||
SaveServiceHelper.save(new DynamicObject[]{newContTypeAmtObj});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.updatePrePaymentDeduction(contractDeductionMap, true);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue