package com.vci.server.base.utility;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.vci.corba.omd.atm.AttribItem;
|
|
public final class OmdHelper {
|
|
// 业务类型系统属性
|
private static AttribItem[] _btSysAttributes = null;
|
// 链接类型系统属性
|
private static AttribItem[] _ltSysAttrItems = null;
|
|
private static String[] _btSysANames = {"OID","REVISIONOID","NAMEOID","BTMNAME",
|
"ISLastR","ISFirstR","ISLastV","ISFirstV",
|
"Creator","CreateTime",
|
"LastModifier","LastModifyTime","RevisionRule","VersionRule","RevisionSeq",
|
"RevisionValue","VersionSeq","VersionValue","LCTID","LCStatus","TS",
|
"ID", "NAME", "DESCRIPTION", "OWNER", "CHECKINBY", "CHECKINTIME",
|
"CHECKOUTBY", "CHECKOUTTIME", "COPYFROMVERSION"};
|
|
private static String[] _ltSysAttibutes = {"OID","Creator","CreateTime","LastModifier","LASTMODIFYTIME","F_OID","F_REVISIONOID","F_NAMEOID","F_BtwName",
|
"T_OID","T_REVISIONOID","T_NAMEOID","T_BtwName","TS"};
|
|
|
/**
|
* 业务table名的前缀
|
*/
|
private static final String PLATFORMBTM_ = "PLATFORMBTM_";
|
/**
|
* 链接类型table名的前缀
|
*/
|
private static final String PLATFORMLT_ = "PLATFORMLT_";
|
|
private static final String _TV = "_TV";
|
private static final String _FV = "_FV";
|
private static final String _V = "_V";
|
|
/**
|
* 表名最大长度
|
*/
|
private static final int TABLEMAXLENTGH = 30;
|
|
/**
|
* 获取链接类型名的最大长度:
|
* 30(oracle中table名的最大长度) - PLATFORMLT_.length()
|
* @return
|
*/
|
public static int getLTNameMaxLength() {
|
// TODO Auto-generated method stub
|
return TABLEMAXLENTGH - PLATFORMLT_.length();
|
}
|
|
/**
|
* 获取业务名的最大长度:
|
* 30(oracle中table名的最大长度) - PLATFORMBTM_.length()
|
* @return
|
*/
|
public static int getBTNameMaxLength() {
|
// TODO Auto-generated method stub
|
return TABLEMAXLENTGH - PLATFORMBTM_.length();
|
}
|
|
|
/**
|
* 由业务类型名获取该业务类型的table名
|
* @param btmName
|
* @return
|
*/
|
public static String getBTTableName(String btmName){
|
if(btmName == null || btmName.equals("")){
|
return "";
|
}
|
return PLATFORMBTM_ + btmName.toUpperCase();
|
}
|
|
/**
|
* 由链接类型名获取该业务类型的table名
|
* @param ltName
|
* @return
|
*/
|
public static String getLTTableName(String ltName){
|
if(ltName == null || ltName.equals("")){
|
return "";
|
}
|
return PLATFORMLT_ + ltName.toUpperCase();
|
}
|
|
/**
|
* 获取索引名称
|
* @param ltName
|
* @return
|
*/
|
public static String getIndexName(String typeName, String name){
|
if(StringUtils.isBlank(name) || StringUtils.isBlank(typeName)){
|
return "";
|
}
|
|
return String.format("PI_%s_%s", typeName.toUpperCase(), name.toUpperCase());
|
}
|
|
/**
|
* 获取链接类型TO端业务类型视图名
|
* @param ltName
|
* @return
|
*/
|
public static String getToViewName(String ltName){
|
return ltName + _TV;
|
}
|
|
/**
|
* 获取链接类型From端业务类型视图名
|
* @param ltName
|
* @return
|
*/
|
public static String getFromViewName(String ltName){
|
return ltName + _FV;
|
}
|
|
/**
|
* 获取业务类型视图名
|
* @param ltName
|
* @return
|
*/
|
public static String getBtViewName(String btName){
|
return btName + _V;
|
}
|
|
|
/**
|
* 获取系统属性
|
* @return
|
*/
|
public static String[] getBTSysANames() {
|
return _btSysANames;
|
}
|
|
public static AttribItem[] getBTSysAttribItems() {
|
if (_btSysAttributes == null) {
|
int count = _btSysANames.length;
|
_btSysAttributes = new AttribItem[count];
|
for (int i = 0; i < count; i++) {
|
AttribItem attr = new AttribItem();
|
_btSysAttributes[i] = attr;
|
attr.name = _btSysANames[i].toLowerCase();
|
attr.vtDataType = getSysAttribDataType(attr.name);
|
attr.label = getSysAttribLabel(attr.name);
|
}
|
}
|
return _btSysAttributes;
|
}
|
|
|
private static String getSysAttribLabel(String name) {
|
|
String field = name.toUpperCase();
|
if (field.equals("OID")) {
|
return "版次对象ID";
|
} else if (field.equals("REVISIONOID")) {
|
return "版本对象ID";
|
} else if (field.equals("NAMEOID")) {
|
return "对象ID";
|
} else if (field.equals("BTMNAME")) {
|
return "对象类型";
|
} else if (field.equals("ISLASTR")) {
|
return "是否最新版本";
|
} else if (field.equals("ISFIRSTR")) {
|
return "是否第一版本";
|
} else if (field.equals("ISLASTV")) {
|
return "是否最新版次";
|
} else if (field.equals("ISFIRSTV")) {
|
return "是否第一版次";
|
} else if (field.equals("CREATOR")) {
|
return "创建时间";
|
} else if (field.equals("CREATETIME")) {
|
return "创建时间";
|
} else if (field.equals("LASTMODIFIER")) {
|
return "修改人";
|
} else if (field.equals("LASTMODIFYTIME")) {
|
return "修改时间";
|
} else if (field.equals("REVISIONRULE")) {
|
return "版本规则";
|
} else if (field.equals("VERSIONRULE")) {
|
return "版次规则";
|
} else if (field.equals("REVISIONSEQ")) {
|
return "版本序号";
|
} else if (field.equals("REVISIONVALUE")) {
|
return "版本";
|
} else if (field.equals("VERSIONSEQ")) {
|
return "版次序号";
|
} else if (field.equals("VERSIONVALUE")) {
|
return "版次";
|
} else if (field.equals("LCTID")) {
|
return "生命周期模型";
|
} else if (field.equals("LCStatus")) {
|
return "状态";
|
} else if (field.equals("TS")) {
|
return "时间戳";
|
} else if (field.equals("ID")) {
|
return "编码";
|
} else if (field.equals("NAME")) {
|
return "名称";
|
} else if (field.equals("DESCRIPTION")) {
|
return "描述";
|
} else if (field.equals("OWNER")) {
|
return "所有者";
|
} else if (field.equals("CHECKINBY")) {
|
return "检入人";
|
} else if (field.equals("CHECKINTIME")) {
|
return "检入时间";
|
} else if (field.equals("CHECKOUTBY")) {
|
return "检出人";
|
} else if (field.equals("CHECKOUTTIME")) {
|
return "检出时间";
|
} else if (field.equals("COPYFROMVERSION")) {
|
return "源版本";
|
} else if (field.equals("F_OID")) {
|
return "F端对象版次ID";
|
} else if (field.equals("F_REVISIONOID")) {
|
return "F端对象版本ID";
|
} else if (field.equals("F_NAMEOID")) {
|
return "F端对象ID";
|
} else if (field.equals("F_BTWNAME")) {
|
return "F端对象类型";
|
} else if (field.equals("T_OID")) {
|
return "T对象版次ID";
|
} else if (field.equals("T_REVISIONOID")) {
|
return "T对象版本ID";
|
} else if (field.equals("T_NAMEOID")) {
|
return "T端对象ID";
|
} else if (field.equals("T_BTWNAME")) {
|
return "T端对象类型";
|
}
|
|
return "";
|
}
|
|
|
public static String[] getLTSysAbItems(){
|
return _ltSysAttibutes;
|
}
|
|
|
public static AttribItem[] getLTSysAttribItems() {
|
if (_ltSysAttrItems == null) {
|
int count = _ltSysAttibutes.length;
|
_ltSysAttrItems = new AttribItem[count];
|
for (int i = 0; i < count; i++) {
|
AttribItem attr = new AttribItem();
|
_ltSysAttrItems[i] = attr;
|
attr.name = _ltSysAttibutes[i].toLowerCase();
|
attr.vtDataType = getSysAttribDataType(attr.name);
|
attr.label = getLTSysAttribItemLabel(attr.name);
|
}
|
}
|
return _ltSysAttrItems;
|
}
|
|
|
|
private static String getLTSysAttribItemLabel(String name) {
|
|
String field = name.toUpperCase();
|
if (field.equals("OID")) {
|
return "链接对象ID";
|
} else if (field.equals("CREATOR")) {
|
return "创建时间";
|
} else if (field.equals("CREATETIME")) {
|
return "创建时间";
|
} else if (field.equals("LASTMODIFIER")) {
|
return "修改人";
|
} else if (field.equals("LASTMODIFYTIME")) {
|
return "修改时间";
|
} else if (field.equals("F_OID")) {
|
return "F端对象版次ID";
|
} else if (field.equals("F_REVISIONOID")) {
|
return "F端对象版本ID";
|
} else if (field.equals("F_NAMEOID")) {
|
return "F端对象ID";
|
} else if (field.equals("F_BTWNAME")) {
|
return "F端对象类型";
|
} else if (field.equals("T_OID")) {
|
return "T对象版次ID";
|
} else if (field.equals("T_REVISIONOID")) {
|
return "T对象版本ID";
|
} else if (field.equals("T_NAMEOID")) {
|
return "T端对象ID";
|
} else if (field.equals("T_BTWNAME")) {
|
return "T端对象类型";
|
} else if (field.equals("TS")) {
|
return "时间戳";
|
}
|
|
return "";
|
}
|
|
/**
|
* 获取属性的数据类型, 属性: 系统属性, 属性池属性
|
* @param abUpperName
|
* @return"ISLastR","ISFirstR","ISLastV","ISFirstV",
|
*/
|
public static String getSysAttribDataType(String abName){
|
String dataType = null;
|
String abUpperName = abName.toUpperCase();
|
//系统属性
|
if(abUpperName.equals("OID") || abUpperName.equals("REVISIONOID") || abUpperName.equals("NAMEOID") || abUpperName.equals("BTMNAME")
|
|| abUpperName.equals("CREATOR") || abUpperName.equals("LASTMODIFIER") || abUpperName.equals("REVISIONRULE")
|
|| abUpperName.equals("VERSIONRULE") || abUpperName.equals("REVISIONVALUE") || abUpperName.equals("VERSIONVALUE")
|
|| abUpperName.equals("LCTID") || abUpperName.equals("LCSTATUS")
|
|| abUpperName.equals("ID") || abUpperName.equals("NAME") || abUpperName.equals("DESCRIPTION")
|
|| abUpperName.equals("OWNER") || abUpperName.equals("CHECKINBY")
|
|| abUpperName.equals("CHECKOUTBY") || abUpperName.equals("COPYFROMVERSION")
|
|| abUpperName.equals("ISLASTR") || abUpperName.equals("ISFIRSTR")
|
|| abUpperName.equals("ISLASTV") || abUpperName.equals("ISFIRSTV")
|
|| abUpperName.equals("F_OID") || abUpperName.equals("F_REVISIONOID")
|
|| abUpperName.equals("F_NAMEOID") || abUpperName.equals("F_BTWNAME")
|
|| abUpperName.equals("T_OID") || abUpperName.equals("T_REVISIONOID")
|
|| abUpperName.equals("T_NAMEOID") || abUpperName.equals("T_BTWNAME")){
|
dataType = "VTString";
|
}else if(abUpperName.equals("REVISIONSEQ") || abUpperName.equals("VERSIONSEQ")){
|
dataType = "VTInteger";
|
}else if(abUpperName.equals("CREATETIME") || abUpperName.equals("LASTMODIFYTIME")
|
|| abUpperName.equals("TS") || abUpperName.equals("CHECKINTIME") || abUpperName.equals("CHECKOUTTIME")){
|
dataType = "VTDateTime";
|
}
|
return dataType;
|
}
|
}
|