设备维修确认单生成成本时工序必填校验

This commit is contained in:
zhangzhiguo 2025-11-24 17:25:51 +08:00
parent b3be09d148
commit 7e1608e0f4
1 changed files with 64 additions and 0 deletions

View File

@ -0,0 +1,64 @@
package zcgj.zcdev.zcdev.pr.plugin.operate;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.StringUtils;
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;
/**
* 设备维修确认单生成成本时工序必填校验
*/
public class MaintenanceackbillCBSCkOp extends AbstractOperationServicePlugIn {
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("entryentity");
e.getFieldKeys().add("entryentity.zcgj_pa_process");//工序
e.getFieldKeys().add("entryentity.zcgj_accounttype");//科目属性
e.getFieldKeys().add("zcgj_maintype");//科目属性
}
@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();
DynamicObjectCollection entryentity = dataEntity.getDynamicObjectCollection("entryentity");//设备维修信息
String zcgjMaintype = dataEntity.getString("zcgj_maintype");
if("20".equals(zcgjMaintype)) {
if(entryentity == null || entryentity.isEmpty()){
this.addFatalErrorMessage(extendedDataEntity, "设备维修信息分录不能为空!");
}else{
int i=0;
for (DynamicObject dynamicObject : entryentity) {
i++;
DynamicObject zcgjAccounttype = dynamicObject.getDynamicObject("zcgj_accounttype");
if(zcgjAccounttype == null){
this.addFatalErrorMessage(extendedDataEntity, String.format("设备维修信息,第%d行科目属性不能为空",i));
return;
}
boolean checkcbs = zcgjAccounttype.getBoolean("zcgj_checkcbs");
DynamicObject cbs = dynamicObject.getDynamicObject("zcgj_pa_process");
if(checkcbs && cbs == null ){ //生成成本时工序必录
this.addFatalErrorMessage(extendedDataEntity, String.format("设备维修信息,第%d行工序不能为空",i));
}
}
}
}
}
}
}
}