From 27f8682764b212bfae2ae480c093bf33ea5630e3 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Fri, 31 Oct 2025 11:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E6=94=AF=E5=87=BA=E5=90=88=E5=90=8C=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E9=A1=B9=E7=9B=AE=E5=88=86=E5=BD=95=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E6=8F=92=E4=BB=B6=E5=A2=9E=E5=8A=A0=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rialInAmountToItemEntryWorkFlowPlugin.java | 62 ++++++++++++++----- 1 file changed, 47 insertions(+), 15 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/MaterialInAmountToItemEntryWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/MaterialInAmountToItemEntryWorkFlowPlugin.java index b6e5e4d..3502ff1 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/MaterialInAmountToItemEntryWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/MaterialInAmountToItemEntryWorkFlowPlugin.java @@ -24,6 +24,7 @@ import kd.ec.contract.common.enums.PayDirectionEnum; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.HashSet; +import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -46,21 +47,24 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单"); if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) { log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey); - Long dataId = (Long) outContractSettleMap.toArray()[0]; - DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle"); - log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno")); - sumMaterialInAmountToItemEntry(outContractSettle); - calAllTypeAmount(outContractSettle); - SaveServiceHelper.save(new DynamicObject[]{outContractSettle}); - OperateOption option= OperateOption.create(); - // option.setVariableValue("ishasright", "true");//此处是跳过校验权限 - // option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false)); - // option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true)); - // option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); - option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验 - //option.add(OperateOptionConst.SKIP_PERMISSION_CHECK); - OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option); - log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString()); + for (Long dataId : outContractSettleMap) { + DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle"); + log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno")); + sumMaterialInAmountToItemEntry(outContractSettle); + calAllTypeAmount(outContractSettle); + SaveServiceHelper.save(new DynamicObject[]{outContractSettle}); + + deleteZeroData(dataId); + OperateOption option= OperateOption.create(); + // option.setVariableValue("ishasright", "true");//此处是跳过校验权限 + // option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false)); + // option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true)); + // option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); + option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验 + //option.add(OperateOptionConst.SKIP_PERMISSION_CHECK); + OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option); + log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString()); + } } } @@ -284,4 +288,32 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi outContractSettle.set("totalrealpaytaxamt", totalRealPayTaxAmt); } } + + public void deleteZeroData(Long outContractSettleId){ + DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", + "itementry,itementry.oftaxamount,zcgj_entryentity,zcgj_entryentity.zcgj_oftaxinvoiceamount,zcgj_processallocatentity,zcgj_processallocatentity.zcgj_pa_amount", + new QFilter[]{new QFilter("id","=",outContractSettleId)}); + DynamicObjectCollection itementryCollection = outContractSettle.getDynamicObjectCollection("itementry"); //合同支付项分录 + for (DynamicObject itementry : itementryCollection) { + //删除工序分摊,价税合计为0的数据 + DynamicObjectCollection dynamicObjectCollection = itementry.getDynamicObjectCollection("zcgj_processallocatentity"); + dynamicObjectCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_pa_amount") == null || dynamicObject.getBigDecimal("zcgj_pa_amount").compareTo(BigDecimal.ZERO) == 0); + } + //删除合同支付项价税合计为0的数据 + itementryCollection.removeIf(dynamicObject -> + //dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0 + { + boolean isok = dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0; + DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("zcgj_processallocatentity"); + return isok && dynamicObjectCollection.isEmpty(); + } + ); + + //删除进项发票价税合计为0的数据 + DynamicObjectCollection entryentityCollection = outContractSettle.getDynamicObjectCollection("zcgj_entryentity"); + entryentityCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount") == null || dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount").compareTo(BigDecimal.ZERO) == 0); + + log.info("MaterialInAmountToItemEntryWorkFlowPlugin-PaAmount"); + SaveServiceHelper.save(new DynamicObject[]{outContractSettle}); + } }