📄 metadatabizlet.java
字号:
PersistenceBroker broker = param.getDBBroker();
Element e = doc.createElement("EOSENTITYDEF");
BNXmlUtil.setNodeValue(e, "ENTITYNAME", entity.entityName);
e.setAttribute("criteria", "=");
broker.expandAll(e);
String rowNum = e.getAttribute("rowNum");
if (rowNum == null || rowNum.equals("0")) { // 元数据中并没有定义当前实体
BNXmlUtil.setNodeValue(e, "TABLENAME", entity.getTableName());
BNXmlUtil.setNodeValue(e, "ENTITYDESC", entity.displayName);
BNXmlUtil.setNodeValue(e, "ENTITYTYPE", "0");
BNXmlUtil.setNodeValue(e, "ISADD", "N");
BNXmlUtil.setNodeValue(e, "ISDEL", "N");
BNXmlUtil.setNodeValue(e, "ISMODIFY", "N");
BNXmlUtil.setNodeValue(e, "ISVIEW", "Y");
BNXmlUtil.setNodeValue(e, "ISPAGE", "Y");
BNXmlUtil.setNodeValue(e, "PAGELEN", "10");
BNXmlUtil.setNodeValue(e, "DISPLAYORDER", "10");
broker.insert(e);
Collection fields = entity.fetchFieldList();
Iterator iter = fields.iterator();
int i = 0;
while (iter.hasNext()) {
FieldMap field = (FieldMap) iter.next();
Element f = doc.createElement("EOSFIELDDEF");
BNXmlUtil.setNodeValue(f, "FIELDNAME", field.fieldName);
BNXmlUtil.setNodeValue(f, "ENTITYNAME", entity.entityName);
BNXmlUtil.setNodeValue(f, "COLUMNNAME", field.getColumnName());
BNXmlUtil.setNodeValue(f, "FIELDDESC", field.displayName);
BNXmlUtil.setNodeValue(f, "WIDTH", "60");
BNXmlUtil.setNodeValue(f, "DISPLAYORDER", String.valueOf(i));
String typeName = field.getDefineType().getName();
if (typeName.equals("Date")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DATE);
} else if (typeName.equals("TimeStamp") || typeName.equals("Time")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_TIMESTAMP);
} else if (typeName.equals("smallint") || typeName.equals("int") || typeName.equals("long")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_INTEGER);
BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
BNXmlUtil.setNodeValue(f, "PRECISION", String.valueOf(field.getColumnMap().getMPrecision()));
} else if (typeName.equals("double") || typeName.equals("BigDecimal")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DOUBLE);
} else {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_CHAR);
BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
}
if (field.isKey)
BNXmlUtil.setNodeValue(f, "ISPK", "Y");
else
BNXmlUtil.setNodeValue(f, "ISPK", "N");
if (field.isNULLAble)
BNXmlUtil.setNodeValue(f, "ISINPUT", "N");
else
BNXmlUtil.setNodeValue(f, "ISINPUT", "Y");
broker.insert(f);
i++;
}
return 1;
}
Element list = doc.createElement("list");
Element criteria = doc.createElement("EOSFIELDDEF");
BNXmlUtil.setNodeValue(criteria, "ENTITYNAME", entityName);
criteria.setAttribute("criteria", "=");
broker.findAll(list, criteria);
HashMap map = new HashMap();
NodeList nl = list.getChildNodes();
for (int i=0; i<nl.getLength(); i++) {
Node n = nl.item(i);
if (n.getNodeType() == Node.ELEMENT_NODE) {
FieldMap field = entity.fetchFieldMap(BNXmlUtil.getNodeValue(n, "FIELDNAME"));
if (field == null) {
Element rolefield = doc.createElement("EOSROLEFIELD");
BNXmlUtil.setNodeValue(rolefield, "ENTITYNAME", entityName);
BNXmlUtil.setNodeValue(rolefield, "FIELDNAME", BNXmlUtil.getNodeValue(n, "FIELDNAME"));
rolefield.setAttribute("criteria", "=");
broker.delete(rolefield);
Element f = doc.createElement("EOSFIELDDEF");
BNXmlUtil.setNodeValue(f, "ENTITYNAME", entityName);
BNXmlUtil.setNodeValue(f, "FIELDNAME", BNXmlUtil.getNodeValue(n, "FIELDNAME"));
f.setAttribute("criteria", "=");
broker.delete(f);
}
String fieldName = BNXmlUtil.getNodeValue(n, "FIELDNAME");
map.put(fieldName, fieldName);
}
}
Collection fields = entity.fetchFieldList();
Iterator iter = fields.iterator();
while (iter.hasNext()) {
FieldMap field = (FieldMap)iter.next();
if (map.get(field.fieldName) == null) {
Element f = doc.createElement("EOSFIELDDEF");
BNXmlUtil.setNodeValue(f, "FIELDNAME", field.fieldName);
BNXmlUtil.setNodeValue(f, "ENTITYNAME", entity.entityName);
BNXmlUtil.setNodeValue(f, "COLUMNNAME", field.getColumnName());
BNXmlUtil.setNodeValue(f, "FIELDDESC", field.displayName);
BNXmlUtil.setNodeValue(f, "DISPLAYORDER", "99");
BNXmlUtil.setNodeValue(f, "WIDTH", "60");
String typeName = field.getDefineType().getName();
if (typeName.equals("Date")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DATE);
} else if (typeName.equals("TimeStamp") || typeName.equals("Time")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_TIMESTAMP);
} else if (typeName.equals("smallint") || typeName.equals("int") || typeName.equals("long")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_INTEGER);
BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
BNXmlUtil.setNodeValue(f, "PRECISION", String.valueOf(field.getColumnMap().getMPrecision()));
} else if (typeName.equals("double") || typeName.equals("BigDecimal")) {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_DOUBLE);
} else {
BNXmlUtil.setNodeValue(f, "FIELDTYPE", TYPE_CHAR);
BNXmlUtil.setNodeValue(f, "LENGTH", String.valueOf(field.getColumnMap().getMLength()));
}
if (field.isKey)
BNXmlUtil.setNodeValue(f, "ISPK", "Y");
else
BNXmlUtil.setNodeValue(f, "ISPK", "N");
if (field.isNULLAble)
BNXmlUtil.setNodeValue(f, "ISINPUT", "N");
else
BNXmlUtil.setNodeValue(f, "ISINPUT", "Y");
broker.insert(f);
}
}
return 1;
}
/**
* 根据传入的entityName和RoleID初始化角色权限数据,包含数据实体权限和其对应的字段角色权限
* @param doc
* @param param
* @return
* @throws Exception
* <p>
* ** 导入角色实体 **
* @bizlet_displayName test
* @bizlet_param passing="in" type="variable" value="/" name="" desc="实体名"
* @bizlet_param passing="in" type="variable" value="/" name="" desc="角色编号"
*/
public static int BL_importRoleEntity(Document doc, BizContext param) throws Exception{
//获取数据持久链接
PersistenceBroker broker = param.getDBBroker();
//获取实体名和角色ID
String entityName = (String) param.getParaObjectAt(0);
String roleID = (String) param.getParaObjectAt(1);
//构造往数据库里写入的数据
Element e = doc.createElement("EOSROLEENTITY");
BNXmlUtil.setNodeValue(e, "ENTITYNAME", entityName);
BNXmlUtil.setNodeValue(e, "ROLEID", roleID);
BNXmlUtil.setNodeValue(e, "ISADD", "N");
BNXmlUtil.setNodeValue(e, "ISDEL", "N");
BNXmlUtil.setNodeValue(e, "ISMODIFY", "N");
BNXmlUtil.setNodeValue(e, "ISVIEW", "Y");
//将数据实体权限写入数据库
broker.insert(e);
//获取导入实体对应的值对象
MetaDataSet entitySet = MetaDataSet.getInstance();
EntityBean entityBean = entitySet.getEntity(entityName);
List fieldList = entityBean.getFieldList();
Iterator it = fieldList.iterator();
while(it.hasNext()){
FieldBean f = (FieldBean)it.next();
Element elementField = doc.createElement("EOSROLEFIELD");
BNXmlUtil.setNodeValue(elementField, "ENTITYNAME", entityName);
BNXmlUtil.setNodeValue(elementField, "FIELDNAME", f.getFIELDNAME());
BNXmlUtil.setNodeValue(elementField, "ROLEID", roleID);
BNXmlUtil.setNodeValue(elementField, "ISMODIFY", "N");
BNXmlUtil.setNodeValue(elementField, "ISVIEW", "Y");
broker.insert(elementField);
}
return 1;
}
/**
* 重新刷新角色和字段关联,
* 如果新增了角色和实体的关联,没有继续维护角色和实体字段的关联时
* 插入用户缺省的对实体字段的权限。
* @param doc type: Document, DOM;
* @param param type: BizContext;
* @return: int ,运算逻辑返回值,如果失败返回0,成功返回1
* @throws Exception
* <p>
* ** bizlet 的显示名称 **
* @bizlet_displayName BL_reloadRoleField
* @bizlet_param passing="in" type="variable" value="/" name="" desc="实体名称"
* @bizlet_param passing="in" type="variable" value="/" name="" desc="角色编号"
*/
public static int BL_reloadRoleField(Document doc, BizContext param) throws Exception{
String entityName = (String)param.getParaObjectAt(0);
String roleID = (String) param.getParaObjectAt(1);
//获取数据持久链接
PersistenceBroker broker = param.getDBBroker();
//获取导入实体对应的值对象
MetaDataSet entitySet = MetaDataSet.getInstance();
EntityBean entityBean = entitySet.getEntity(entityName);
List fieldList = entityBean.getFieldList();
Iterator it = fieldList.iterator();
while(it.hasNext()){
FieldBean f = (FieldBean)it.next();
RoleField rf = entitySet.getRoleField(roleID, entityName, f.getFIELDNAME());
if (rf == null) {
Element elementField = doc.createElement("EOSROLEFIELD");
BNXmlUtil.setNodeValue(elementField, "ENTITYNAME", entityName);
BNXmlUtil.setNodeValue(elementField, "FIELDNAME", f.getFIELDNAME());
BNXmlUtil.setNodeValue(elementField, "ROLEID", roleID);
BNXmlUtil.setNodeValue(elementField, "ISMODIFY", "N");
BNXmlUtil.setNodeValue(elementField, "ISVIEW", "Y");
broker.insert(elementField);
}
}
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -