package shkd.repc.rebm.opplugin; 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.validate.AbstractValidator; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import java.math.BigDecimal; public class PurPlanSubmitOPPlugin extends AbstractOperationServicePlugIn { private static final Log logger = LogFactory.getLog(PurPlanSubmitOPPlugin.class); @Override public void onAddValidators(AddValidatorsEventArgs e) { super.onAddValidators(e); e.addValidator(new AbstractValidator() { @Override public void validate() { String operateKey = this.getOperateKey(); ExtendedDataEntity[] dataEntities1 = this.getDataEntities(); switch (operateKey) { case "submit": for (ExtendedDataEntity extendedDataEntity : dataEntities1) { //采购需求明细 DynamicObject dataEntity = extendedDataEntity.getDataEntity(); DynamicObjectCollection cgxuentry = dataEntity.getDynamicObjectCollection("qeug_cgxuentryss"); if (cgxuentry.isEmpty()) { this.addErrorMessage(extendedDataEntity, "采购需求明细不能为空,不允许提交。"); } //采购计划明细 BigDecimal cgxuentry_a = BigDecimal.ZERO; for (DynamicObject dynamicObject : cgxuentry) { cgxuentry_a = cgxuentry_a.add(dynamicObject.getBigDecimal("qeug_applyamount")); } //合约规划金额 entryentity DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("entryentity"); BigDecimal cgxuentry_b = BigDecimal.ZERO; for (DynamicObject dynamicObject : entryentity) { cgxuentry_b = cgxuentry_b.add(dynamicObject.getBigDecimal("planamount")); } if (cgxuentry_a.compareTo(cgxuentry_b) > 0) { // 如果 cgxuentry_a 大于 cgxuentry_b this.addErrorMessage(extendedDataEntity, "采购计划明细中的申请金额大于合约规划金额,不允许提交。"); } } break; default: break; } } }); } }