diff --git a/main/java/shkd/repc/rebm/validators/DecisionAmountValidator.java b/main/java/shkd/repc/rebm/validators/DecisionAmountValidator.java new file mode 100644 index 0000000..3adbc31 --- /dev/null +++ b/main/java/shkd/repc/rebm/validators/DecisionAmountValidator.java @@ -0,0 +1,52 @@ +package shkd.repc.rebm.validators; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.math.BigDecimal; + +/** + * 动态表单插件 + * 定标环节如果定标总金额大于采购控制金额不允许提交 + */ +public class DecisionAmountValidator extends AbstractValidator { + + @Override + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + if (dataEntities == null || dataEntities.length == 0) { + return; + } + for (ExtendedDataEntity dataEntity : dataEntities) { + if (dataEntity == null) { + continue; + } + DynamicObject bill = dataEntity.getDataEntity(); + DynamicObject decisionBill = BusinessDataServiceHelper.loadSingle(bill.getLong("id"), "rebm_decision"); + if (decisionBill == null) { + continue; + } + + //采购控制明细 + DynamicObjectCollection bottomEntry = decisionBill.getDynamicObjectCollection("bottomentry"); + if (!bottomEntry.isEmpty()){ + BigDecimal allEntryAmount=BigDecimal.ZERO; + for (DynamicObject dynamicObject : bottomEntry) { + //采购控制金额(含税) + BigDecimal botControlAmount = dynamicObject.getBigDecimal("botcontrolamount"); + allEntryAmount=allEntryAmount.add(botControlAmount); + } + //定标总金额 + BigDecimal amount = decisionBill.getBigDecimal("amount"); + if (amount.compareTo(allEntryAmount)>0){ + this.addErrorMessage(dataEntity, "提交失败!定标总金额不能大于采购控制金额(含税)!"); + } + } + } + } +} \ No newline at end of file diff --git a/main/java/shkd/repc/recon/validator/ConNoTextValidator.java b/main/java/shkd/repc/recon/validator/ConNoTextValidator.java index fc4e425..9bb6862 100644 --- a/main/java/shkd/repc/recon/validator/ConNoTextValidator.java +++ b/main/java/shkd/repc/recon/validator/ConNoTextValidator.java @@ -51,7 +51,7 @@ public class ConNoTextValidator extends AbstractValidator { // 计算占用金额,并收集提示信息 BigDecimal occupationAmount = BigDecimal.ZERO; StringBuilder message = new StringBuilder(); - + message.append("申请超额:\n"); for (DynamicObject otherBill : relatedBills) { if (otherBill.getLong("id") == currentBill.getLong("id")) { continue; // 跳过当前单据