From b9905f695e34338a6b47d34a8f989205ecac3f20 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Tue, 18 Nov 2025 15:19:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E5=85=A5=E5=BA=93=E5=8D=95=E7=BB=93?= =?UTF-8?q?=E7=AE=97-=E5=88=A4=E6=96=AD=E4=B8=8A=E6=B8=B8=E6=9C=89?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95=E6=97=B6=E5=8F=8D=E5=86=99=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OutFinaceconfirmReversalamountCkOp.java | 9 +- .../OutFinaceconfirmReversalamountOp.java | 105 +++++------------- ...ContractSettleFiConfirmWorkFlowPlugin.java | 5 + 3 files changed, 36 insertions(+), 83 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java index f448dbf..a28e55e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountCkOp.java @@ -34,6 +34,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplyentryid"); e.getFieldKeys().add("zcgj_prepayentry.zcgj_boltamount"); e.getFieldKeys().add("zcgj_isprepay"); + e.getFieldKeys().add("zcgj_billsource"); } @Override @@ -48,9 +49,8 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { DynamicObject dataEntity = extendedDataEntity.getDataEntity();//支出财务确认单 - DynamicObjectCollection entryEntityCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//付款信息分录 - for (int i = 0; i < entryEntityCollection.size(); i++) { - DynamicObject entryEntity = entryEntityCollection.get(i); + String billsource = dataEntity.getString("zcgj_billsource"); + if(!"1".equals(billsource)){ //来源入库单时,不进行校验 DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录 String isprepay = dataEntity.getString("zcgj_isprepay"); if("10".equals(isprepay)){ @@ -62,7 +62,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService seq++; long sourceapplybillid = prepay.getLong("zcgj_sourceapplybillid"); long sourceapplyentryid = prepay.getLong("zcgj_sourceapplyentryid"); - BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单冲销金额 + BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单本次冲销金额 DynamicObject paymentapply = BusinessDataServiceHelper.loadSingle(sourceapplybillid, "ec_paymentapply");//工程资金付款申请单 if (paymentapply != null) { DynamicObjectCollection entryentityCollection = paymentapply.getDynamicObjectCollection("entryentity"); @@ -83,6 +83,7 @@ public class OutFinaceconfirmReversalamountCkOp extends AbstractOperationService } } } + } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountOp.java index 2b6835e..2c86fb2 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmReversalamountOp.java @@ -31,6 +31,7 @@ public class OutFinaceconfirmReversalamountOp extends AbstractOperationServicePl e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplybillid"); e.getFieldKeys().add("zcgj_prepayentry.zcgj_sourceapplyentryid"); e.getFieldKeys().add("zcgj_prepayentry.zcgj_boltamount"); + e.getFieldKeys().add("zcgj_billsource"); } @Override @@ -55,91 +56,37 @@ public class OutFinaceconfirmReversalamountOp extends AbstractOperationServicePl List updateData = new ArrayList<>(); for (DynamicObject dataEntity : dataEntities) { long id = dataEntity.getLong("id"); - DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录 - for (DynamicObject prepay : prepayentryCollection) { - long sourceapplybillid = prepay.getLong("zcgj_sourceapplybillid"); - long sourceapplyentryid = prepay.getLong("zcgj_sourceapplyentryid"); - BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单冲销金额 - DynamicObject paymentapply = BusinessDataServiceHelper.loadSingle(sourceapplybillid, "ec_paymentapply");//工程资金付款申请单 - if (paymentapply != null) { - DynamicObjectCollection entryentityCollection = paymentapply.getDynamicObjectCollection("entryentity"); - for (DynamicObject dynamicObject : entryentityCollection) { - BigDecimal thisrealpayamt = dynamicObject.getBigDecimal("thisrealpayamt");//付款申请单本次实付金额 - long pkValue = (long)dynamicObject.getPkValue(); - if(pkValue==sourceapplyentryid){ - BigDecimal zcgjYreversalamount = dynamicObject.getBigDecimal("zcgj_yreversalamount"); - if(!isSubmit){ - boltamount = boltamount.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数 + String billsource = dataEntity.getString("zcgj_billsource"); + if("1".equals(billsource)){//来源入库单时,不反写付款申请单 + DynamicObjectCollection prepayentryCollection = dataEntity.getDynamicObjectCollection("zcgj_prepayentry");//冲销预付分录 + for (DynamicObject prepay : prepayentryCollection) { + long sourceapplybillid = prepay.getLong("zcgj_sourceapplybillid"); + long sourceapplyentryid = prepay.getLong("zcgj_sourceapplyentryid"); + BigDecimal boltamount = prepay.getBigDecimal("zcgj_boltamount");//支出财务确认单冲销金额 + DynamicObject paymentapply = BusinessDataServiceHelper.loadSingle(sourceapplybillid, "ec_paymentapply");//工程资金付款申请单 + if (paymentapply != null) { + DynamicObjectCollection entryentityCollection = paymentapply.getDynamicObjectCollection("entryentity"); + for (DynamicObject dynamicObject : entryentityCollection) { + BigDecimal thisrealpayamt = dynamicObject.getBigDecimal("thisrealpayamt");//付款申请单本次实付金额 + long pkValue = (long)dynamicObject.getPkValue(); + if(pkValue==sourceapplyentryid){ + BigDecimal zcgjYreversalamount = dynamicObject.getBigDecimal("zcgj_yreversalamount"); + if(!isSubmit){ + boltamount = boltamount.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数 + } + zcgjYreversalamount = zcgjYreversalamount.add(boltamount); + dynamicObject.set("zcgj_yreversalamount",zcgjYreversalamount); } - zcgjYreversalamount = zcgjYreversalamount.add(boltamount); - dynamicObject.set("zcgj_yreversalamount",zcgjYreversalamount); } } + updateData.add(paymentapply); } - updateData.add(paymentapply); - } - if(!updateData.isEmpty()){ - try (TXHandle txType = TX.requiresNew("updateAmt")) { - SaveServiceHelper.save(updateData.toArray(new DynamicObject[0])); - } - } - - - // idList.add(id); - /*Map> sourceBills = BFTrackerServiceHelper.findSourceBills("cas_paybill", new Long[]{id}); - HashSet zcgjEcFundingplanapply = sourceBills.get("zcgj_ec_fundingplanapply"); - if(zcgjEcFundingplanapply != null && !zcgjEcFundingplanapply.isEmpty()) { - Long dataId = (Long)zcgjEcFundingplanapply.toArray()[0]; - - //计算实际付款金额 - DynamicObject paybill = BusinessDataServiceHelper.loadSingle(id, "cas_paybill"); - DynamicObject settletype = paybill.getDynamicObject("settletype"); - String typeString = ""; - - DynamicObjectCollection entryCpllection = paybill.getDynamicObjectCollection("entry"); - BigDecimal allActamt = BigDecimal.ZERO; - for (DynamicObject entry : entryCpllection) { - BigDecimal val = entry.getBigDecimal("e_actamt"); - BigDecimal eActamt = val !=null ?val:BigDecimal.ZERO;//获取实付金额 - allActamt = allActamt.add(eActamt); - } - - //读取资金计划申请 - DynamicObject fundingplanapply = BusinessDataServiceHelper.loadSingle(dataId, "zcgj_ec_fundingplanapply"); - DynamicObjectCollection zcgjFinApprovedAmount = fundingplanapply.getDynamicObjectCollection("zcgj_fin_approved_amount"); - for (DynamicObject dynamicObject : zcgjFinApprovedAmount) { - String zcgjSetttype = dynamicObject.getString("zcgj_setttype"); - if(typeString.equals(zcgjSetttype)){ - BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid"); - BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额 - BigDecimal amountrecommended = BigDecimal.ZERO; - if(!isSubmit){ - amountrecommended = allActamt; - allActamt = allActamt.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数 - } - allActamt = allActamt.add(zcgjAmountRecommended); - dynamicObject.set("zcgj_amountpaid", allActamt);//实付金额 - dynamicObject.set("zcgj_amount_inpayment",amountrecommended);// - - //zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid - //剩余待拨付金额 = 财务核定金额 - 付款处理中金额 - 实付金额 - BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount"); - if(hdamount !=null && isSubmit){ - BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt); - dynamicObject.set("zcgj_amount_remaining",subtract); - }else if(hdamount != null){ - BigDecimal subtract = hdamount.add(amountrecommended).subtract(allActamt);//实付金额已经成为相反数 - dynamicObject.set("zcgj_amount_remaining",subtract); - } + if(!updateData.isEmpty()){ + try (TXHandle txType = TX.requiresNew("updateAmt")) { + SaveServiceHelper.save(updateData.toArray(new DynamicObject[0])); } } - updateData.add(fundingplanapply); - }*/ + } } - /*if(!updateData.isEmpty()){ - try (TXHandle txType = TX.requiresNew("updateAmt")) { - SaveServiceHelper.save(updateData.toArray(new DynamicObject[0])); - } - }*/ } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java index 341134b..d2cb6b9 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java @@ -27,6 +27,7 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin boolean isReversabillid = outContractSettle.getBoolean("zcgj_is_reversabillid"); boolean isInvalid = outContractSettle.getBoolean("zcgj_is_invalid"); boolean nofinconfirm = outContractSettle.getBoolean("zcgj_nofinconfirm"); + if(!isReversabillid && !isInvalid && !nofinconfirm) { //如果时冲销单据 //生成支出财务确认单 start @@ -51,6 +52,10 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); outFinaceconfirm.set("billstatus","A"); outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator")); + //按入库单结算-判断上游有入库单 + if(outContractSettle.getBoolean("issettlebymatin")){ + outFinaceconfirm.set("zcgj_billsource","1"); + } DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry"); DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");