From 8a8d012064a6b17d22bbc1d96b1b0a2a47f50a5b Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Tue, 30 Sep 2025 14:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E6=88=90=E6=9C=AC=E6=A0=B8?= =?UTF-8?q?=E7=AE=97=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BC=98=E5=8C=96=E5=AD=90=E5=88=86=E5=BD=95?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E4=B8=8E=E5=88=86=E5=BD=95=E5=8F=96=E6=95=B0?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pr/plugin/form/EntCostSplitBillPlugin.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EntCostSplitBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EntCostSplitBillPlugin.java index 489c28f..21017bf 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EntCostSplitBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EntCostSplitBillPlugin.java @@ -61,6 +61,12 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn { Map summaryMap = new HashMap<>(); for (DynamicObject rptAssistBalanceGx : rptAssistBalanceGxCollection) { + Object debitLocal = rptAssistBalanceGx.get("zcgj_debitlocal");//本期发生借方 + if (debitLocal == null || + (debitLocal instanceof BigDecimal && ((BigDecimal) debitLocal).compareTo(BigDecimal.ZERO) <= 0) || + (debitLocal instanceof String && ((String) debitLocal).equals("0"))) { + continue; + } QFilter[] qFilter = new QFilter[]{new QFilter("id", QCP.equals, rptAssistBalanceGx.get("zcgj_account"))};//科目ID DynamicObject bd_accountview = BusinessDataServiceHelper.loadSingle("bd_accountview", "id,number,name", qFilter);//"会计科目" @@ -103,12 +109,18 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn { if (existingEntry != null) { // 如果已存在相同key的记录,则累加成本金额 Object existingAmount = existingEntry.get("costamount"); - Object newAmount = rptAssistBalanceGx.get("zcgj_debitlocal"); + Object newAmount = rptAssistBalanceGx.get("zcgj_debitlocal");//本期发生借方 // 进行金额累加 BigDecimal totalAmount = new BigDecimal(existingAmount != null ? existingAmount.toString() : "0") .add(new BigDecimal(newAmount != null ? newAmount.toString() : "0")); existingEntry.set("costamount", totalAmount); + + // 同时更新子分录的金额 + DynamicObject subEntry = existingEntry.getDynamicObjectCollection("zcgj_subentryentity").get(0); + if (subEntry != null) { + subEntry.set("zcgj_costamount", totalAmount); + } } else { // 如果不存在相同key的记录,则创建新记录 DynamicObject newEntry = new DynamicObject(entryType); @@ -146,6 +158,7 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn { newEntrySubEntryEntity.set("zcgj_sectype1", zcgj_accountcost.get("zcgj_acccostentry.zcgj_sectype"));//二级分类 } newEntry.set("costamount", rptAssistBalanceGx.get("zcgj_debitlocal"));//成本金额 + newEntrySubEntryEntity.set("zcgj_costamount", rptAssistBalanceGx.get("zcgj_debitlocal"));//成本金额 summaryMap.put(uniqueKey, newEntry); subEntryEntityCollection.add(newEntrySubEntryEntity);