From fc72394ab4bdda7d2716e3f1ba9d391b9a8341d7 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Tue, 19 Aug 2025 14:45:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A0=E5=90=88=E5=90=8C=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8D=95(=E5=AF=B9=E5=85=AC=E6=8A=A5?= =?UTF-8?q?=E9=94=80=E5=8D=95)=E5=90=88=E5=90=8C=E5=BF=85=E5=BD=95?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/PublicBillContractCkOp.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillContractCkOp.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillContractCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillContractCkOp.java new file mode 100644 index 0000000..a638654 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillContractCkOp.java @@ -0,0 +1,71 @@ +package zcgj.zcdev.zcdev.fs.plugin.operate; + +import kd.bos.context.RequestContext; +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 kd.bos.servicehelper.user.UserServiceHelper; +import kd.bos.util.StringUtils; +import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 无合同付款申请单(对公报销单)合同必录校验 + */ +public class PublicBillContractCkOp extends AbstractOperationServicePlugIn { + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("costcompany"); + e.getFieldKeys().add("zcgj_isec"); + e.getFieldKeys().add("zcgj_invoiceremark");//特殊说明 + e.getFieldKeys().add("zcgj_nocontract");//合同付款类型 无合同付款 NOCONTRACT , 合同付款 CONTRACT + e.getFieldKeys().add("contractentry");//关联合同 + } + + @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(); + Object costcompanyObj = dataEntity.get("costcompany"); + Object costdeptObj = dataEntity.get("costdept"); + if(costcompanyObj!=null && costdeptObj != null){ + DynamicObject costcompany = (DynamicObject)costcompanyObj; + long costcompanyId = costcompany.getLong("id"); + if(OrgCheckUtils.isKS(costcompanyId)){ + boolean isec = dataEntity.getBoolean("zcgj_isec"); + if(isec){ + String nocontract = dataEntity.getString("zcgj_nocontract"); + if("CONTRACT".equals(nocontract)){ //如果是合同付款 + DynamicObjectCollection contractentry = dataEntity.getDynamicObjectCollection("contractentry"); + String invoiceremark = dataEntity.getString("zcgj_invoiceremark"); + if((contractentry == null || contractentry.isEmpty()) && StringUtils.isEmpty(invoiceremark)){ + this.addFatalErrorMessage(extendedDataEntity, String.format("合同付款类型为合同付款时,关联合同分录不能为空或填写特殊说明!")); + } + } + } + + } + } + } + } + } +}