package fi.er.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.plugin.PreparePropertysEventArgs; import kd.bos.entity.plugin.args.BeforeOperationArgs; import kd.bos.entity.validate.AbstractValidator; import kd.fi.er.business.share.ERHandleBeforeShareService; import fi.er.opplugin.ErVerifyShareRuleHelperNew; import kd.fi.er.business.utils.OperateUtils; import org.apache.commons.lang3.StringUtils; public class ExspenseBeforeShareEXOpPlugin extends AbstractOperationServicePlugIn { public ExspenseBeforeShareEXOpPlugin() { } public void onPreparePropertys(PreparePropertysEventArgs e) { super.onPreparePropertys(e); OperateUtils.addAllFields(e, this.billEntityType, this.operateMeta); } public void onAddValidators(AddValidatorsEventArgs e) { super.onAddValidators(e); e.addValidator(new AbstractValidator() { public void validate() { ExtendedDataEntity[] billEntitys = this.getDataEntities(); ExtendedDataEntity[] var2 = billEntitys; int var3 = billEntitys.length; for(int var4 = 0; var4 < var3; ++var4) { ExtendedDataEntity billEntity = var2[var4]; DynamicObject bill = billEntity.getDataEntity(); Boolean isShare = bill.getBoolean("isbeforeshare"); if (!isShare) { bill.set("sharerule_startdate", (Object)null); bill.set("sharerule_enddate", (Object)null); bill.set("isshared", false); DynamicObjectCollection shareEntrys = bill.getDynamicObjectCollection("expenseentryentity_rule"); if (shareEntrys != null && shareEntrys.size() > 0) { shareEntrys.clear(); } DynamicObjectCollection shareDetailEntrys = bill.getDynamicObjectCollection("sharedetailentry"); if (shareDetailEntrys != null && shareDetailEntrys.size() > 0) { shareDetailEntrys.clear(); } return; } String msg = ErVerifyShareRuleHelperNew.getVerifyShareRuleMsg(bill); if (StringUtils.isNotBlank(msg)) { this.addErrorMessage(billEntity, msg); return; } } } }); } public void beforeExecuteOperationTransaction(BeforeOperationArgs e) { super.beforeExecuteOperationTransaction(e); DynamicObject[] var2 = e.getDataEntities(); int var3 = var2.length; for(int var4 = 0; var4 < var3; ++var4) { DynamicObject bill = var2[var4]; ERHandleBeforeShareService.buildAndGetDoneEntrys(bill, false); } } }