From b6697b98d0df696dc03f28ac8be71b0d9db10849 Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Fri, 28 Nov 2025 14:56:39 +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=E6=B7=BB=E5=8A=A0=E5=AE=A1=E6=A0=B8=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=90=8E=E5=8F=8D=E5=86=99=E9=A1=B9=E7=9B=AE=E4=B8=AD=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=A1=B9=E7=9B=AE=E5=AD=97=E6=AE=B5=E5=80=BC=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/EntCostSplitAuditOp.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/EntCostSplitAuditOp.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/EntCostSplitAuditOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/EntCostSplitAuditOp.java new file mode 100644 index 0000000..be22e0e --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/EntCostSplitAuditOp.java @@ -0,0 +1,55 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.args.AfterOperationArgs; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * 企业成本核算审核操作插件 + * 说明:1、审核通过后反写项目中默认项目字段值 + */ +public class EntCostSplitAuditOp extends AbstractOperationServicePlugIn { + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + + OperationResult operationResult = getOperationResult(); + List successPkIds = operationResult.getSuccessPkIds(); + + for (Object model : successPkIds) { + long id = (long) model; + QFilter f1 = new QFilter("id", "=", id); + DynamicObject entCostSplit = BusinessDataServiceHelper.loadSingle("ecco_entcostsplit", + "entryentity,entryentity.project", new QFilter[]{f1});//企业成本核算 + + Set uniqueNumbers = new HashSet<>(); + DynamicObjectCollection entryEntityCollection = entCostSplit.getDynamicObjectCollection("entryentity");//企业费用成本分摊明细分录 + for (DynamicObject entryEntity : entryEntityCollection) { + DynamicObject project = entryEntity.getDynamicObject("project");//项目 + if (project != null) { + String number = project.getString("number");//项目编号 + uniqueNumbers.add(number); + } + } + if (!uniqueNumbers.isEmpty()) { + QFilter[] qFilters = new QFilter[]{new QFilter("billno", QCP.in, uniqueNumbers.toArray())}; + DynamicObject[] ec_projects = BusinessDataServiceHelper.load("ec_project", "id,zcgj_init", qFilters);//项目 + for (DynamicObject ec_project : ec_projects) { + ec_project.set("zcgj_init", true);//默认项目 + SaveServiceHelper.update(ec_project);//更新项目数据 + } + } + } + } +}