diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java index 13c0072..110d5ff 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentApplyFundExtOp.java @@ -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 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); } }