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; } }