lc/lc123/cloud/app/plugin/operate/sys/RegistrationSaveOp.java

55 lines
2.1 KiB
Java

package tqq9.lc123.cloud.app.plugin.operate.sys;
import kd.bos.algo.DataSet;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.db.DB;
import kd.bos.db.DBRoute;
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 kd.bos.orm.ORM;
import kd.sdk.plugin.Plugin;
/**
* 单据操作插件
*/
public class RegistrationSaveOp extends AbstractOperationServicePlugIn implements Plugin {
private static final Log log = LogFactory.getLog(MaterialSaveOp.class);
public void onAddValidators(AddValidatorsEventArgs e) {
super.onAddValidators(e);
e.addValidator(new UniqueNameValidate());
}
/**
*校验器,根据物料名称(去空格)验重
*/
class UniqueNameValidate extends AbstractValidator {
@Override
public void validate() {
for (ExtendedDataEntity dataEntity : this.getDataEntities()) {
String name = dataEntity.getDataEntity().getString("name");//注册证名称
String id = dataEntity.getDataEntity().getString("id");//id
String sql = "/*dialect*/ SELECT REPLACE(fname, ' ', '') AS name\n" +
"FROM tk_tqq9_registration\n" +
"WHERE REPLACE(fname, ' ', '') = REPLACE('" + name + "', ' ', '')";
if (id != null && !id.isEmpty() && !"0".equals(id)) {
sql += " AND fid <> " + id;
}
DataSet materialDataSet = DB.queryDataSet(this.getClass().getName(), DBRoute.of("sys"), sql);
DataSet copy1 = materialDataSet.copy();
DynamicObjectCollection dynamicObjects = ORM.create().toPlainDynamicObjectCollection(copy1);
if (dynamicObjects.size()>0) {
this.addErrorMessage(dataEntity, "注册证:" + name + ", 在系统中存在同名数据,无法保存");
}
}
}
}
}