工序成本预算单提交操作插件:验证项目和年份的组合是否已经存在

This commit is contained in:
xuhaihui 2025-06-05 17:21:38 +08:00
parent bec5bc505b
commit d3e465cdc0
1 changed files with 45 additions and 0 deletions

View File

@ -0,0 +1,45 @@
package zcgj.zcdev.zcdev.pr.plugin;
import kd.bos.dataentity.entity.DynamicObject;
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.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
//工序成本预算单提交操作插件验证项目和年份的组合是否已经存在
public class AimcostcbsBllSubmitOp extends AbstractOperationServicePlugIn {
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("zcgj_periodyear");//年份
e.getFieldKeys().add("project");//项目
}
@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();
String zcgj_periodyear = dataEntity.getString("zcgj_periodyear");//年份
DynamicObject project = dataEntity.getDynamicObject("project");//项目
QFilter filter = new QFilter("zcgj_periodyear", "=", zcgj_periodyear);
filter.and(new QFilter("project", "=", project.getPkValue()));
DynamicObject ecco_aimcostbillcbs = BusinessDataServiceHelper.loadSingle("ecco_aimcostbillcbs", "id", new QFilter[]{filter});
if (ecco_aimcostbillcbs != null) {
this.addFatalErrorMessage(extendedDataEntity, "该年份的项目已编制预算,请勿重复创建!");
}
}
}
}
}