From ee55e6dd24b431e30ddef638c1a212f0c86648a9 Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Tue, 15 Jul 2025 18:28:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E6=8A=A5=E9=94=80=E5=8D=95?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91=EF=BC=9A?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E4=BA=BA=E9=9C=80=E4=B8=8E=E4=B8=AA=E4=BA=BA?= =?UTF-8?q?=E7=9A=84=E6=94=B6=E6=AC=BE=E4=BF=A1=E6=81=AF=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=94=B6=E6=AC=BE=E4=BA=BA=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/plugin/operate/DailyReimbursSubOp.java | 64 +++++++++++++++++++ ...riOp.java => PublicReimburPayerSubOp.java} | 3 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyReimbursSubOp.java rename code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/{PublicReimburPayeriOp.java => PublicReimburPayerSubOp.java} (96%) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyReimbursSubOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyReimbursSubOp.java new file mode 100644 index 0000000..4777092 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyReimbursSubOp.java @@ -0,0 +1,64 @@ +package zcgj.zcdev.zcdev.fs.plugin.operate; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.validate.AbstractValidator; +import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; + +/* + * 费用报销单提交校验逻辑:申请人需与个人的收款信息中的收款人一致 + */ +public class DailyReimbursSubOp extends AbstractOperationServicePlugIn { + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("costcompany"); + e.getFieldKeys().add("applier"); + e.getFieldKeys().add("zcgj_invoiceremark"); + e.getFieldKeys().add("accountentry"); + e.getFieldKeys().add("payertype"); + } + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + e.getValidators().add(new ValidatorExt()); + } + + class ValidatorExt extends AbstractValidator { + @Override + public void validate() { + ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); + for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + DynamicObject costCompany = dataEntity.getDynamicObject("costcompany");//费用承担公司 + if (costCompany != null) { + Long companyId = costCompany.getLong("id"); + if (OrgCheckUtils.isKS(companyId)) { + //仅针对矿山下组织下的逻辑 + DynamicObject applier = dataEntity.getDynamicObject("applier");//申请人 + String zcgj_invoiceremark = dataEntity.getString("zcgj_invoiceremark");//特殊说明 + DynamicObjectCollection accountEntryCollection = dataEntity.getDynamicObjectCollection("accountentry");//收款信息 + if (accountEntryCollection.size() > 0) { + for (int i = 0; i < accountEntryCollection.size(); i++) { + DynamicObject accountEntry = accountEntryCollection.get(i); + String payerType = accountEntry.getString("payertype");//收款人类型 + if (payerType.equals("er_payeer")) { + DynamicObject payer = accountEntry.getDynamicObject("payer");//收款人(个人 + if (payer != null && applier != null && !applier.getString("number").equals(payer.getString("number")) && "".equals(zcgj_invoiceremark)) { + //申请人和收款人不一致 + this.addFatalErrorMessage(extendedDataEntity, "收款人与申请人不一致!请填写特殊说明!"); + } + } + } + } + } + } + } + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayeriOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java similarity index 96% rename from code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayeriOp.java rename to code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java index 35c3f38..d38b78d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayeriOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicReimburPayerSubOp.java @@ -12,7 +12,7 @@ import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; /* 对公报销单提交校验插件:校验往来单位与开票公司是否一致,不一致需填写特殊说明 */ -public class PublicReimburPayeriOp extends AbstractOperationServicePlugIn { +public class PublicReimburPayerSubOp extends AbstractOperationServicePlugIn { @Override public void onPreparePropertys(PreparePropertysEventArgs e) { @@ -21,6 +21,7 @@ public class PublicReimburPayeriOp extends AbstractOperationServicePlugIn { e.getFieldKeys().add("billpayerid"); e.getFieldKeys().add("zcgj_invoiceremark"); e.getFieldKeys().add("makeoutcompname"); + e.getFieldKeys().add("costcompany"); } @Override