/** * Դ�������ƣ�SubSystemMergeHelper.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui * ����˵����$desc * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.database.pdm; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.lang.StringUtils; import com.hundsun.ares.studio.core.ARESModelException; import com.hundsun.ares.studio.core.IARESModule; import com.hundsun.ares.studio.core.IARESModuleRoot; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.database.constant.IDatabaseRefType; import com.hundsun.ares.studio.jres.database.pdm.bean.PDMBusinessDataType; import com.hundsun.ares.studio.jres.database.pdm.bean.PDMStandardField; import com.hundsun.ares.studio.jres.database.pdm.bean.PDMTableResource; import com.hundsun.ares.studio.jres.database.ui.model.MergePojo; import com.hundsun.ares.studio.jres.model.database.TableColumn; import com.hundsun.ares.studio.jres.model.database.TableResourceData; import com.hundsun.ares.studio.jres.model.metadata.BusinessDataType; import com.hundsun.ares.studio.jres.model.metadata.MetadataFactory; import com.hundsun.ares.studio.jres.model.metadata.StandardDataType; import com.hundsun.ares.studio.jres.model.metadata.StandardField; import com.hundsun.ares.studio.jres.model.metadata.TypeDefaultValue; import com.hundsun.ares.studio.jres.model.metadata.util.MetadataServiceProvider; import com.hundsun.ares.studio.model.reference.ReferenceInfo; import com.hundsun.ares.studio.reference.ReferenceManager; /** * @author liaogc * ��ϵͳ�ϲ������� */ public class PDMSubSystemMergeHelper { private IARESProject project; public PDMSubSystemMergeHelper(IARESProject project){ this.project = project; } /** * �ϲ���ͬ��ҵ���������� * @param pdmBusinessDataTypeList * @return */ public List<PDMBusinessDataType> mergeBusinessDataType(List<PDMBusinessDataType> pdmBusinessDataTypeList){ Map<String,List<PDMBusinessDataType>>pdmSystemanalyseStaneardFieldMap = getBusinessDataTypeCategory(pdmBusinessDataTypeList); List<PDMBusinessDataType> mergeList = new ArrayList<PDMBusinessDataType>(); List<String> exclusionNames = new ArrayList<String>(); List<String> businessDataTypeNames = new ArrayList<String>(pdmSystemanalyseStaneardFieldMap.keySet()); Collections.sort(businessDataTypeNames,new NameSorter()); for(String businessDataTypeName:businessDataTypeNames){ List<PDMBusinessDataType> subBusinessDataTypeList = pdmSystemanalyseStaneardFieldMap.get(businessDataTypeName); if(subBusinessDataTypeList.size()==1){//���û����ͬ��ҵ���������� if(!exclusionNames.contains(businessDataTypeName)){//���ҵ���������Ͳ���ͻ mergeList.add(subBusinessDataTypeList.get(0)); exclusionNames.add(businessDataTypeName); }else{//��ͻ��ȡһ��Ψһ��ҵ������������ String newName = PDMHelper.getUniqueName(businessDataTypeName,exclusionNames); subBusinessDataTypeList.get(0).setTypeName(newName); mergeList.add(subBusinessDataTypeList.get(0)); exclusionNames.add(newName); } }else if(subBusinessDataTypeList.size()>1){ List<PDMBusinessDataType> subUniqueBusinessDataTypes = new ArrayList<PDMBusinessDataType>(); for(int i = 0;i < subBusinessDataTypeList.size();i++){ PDMBusinessDataType businessDataType1 = subBusinessDataTypeList.get(i); if(!subUniqueBusinessDataTypes.contains(businessDataType1)){ boolean found = false; for(int j=0;j<subUniqueBusinessDataTypes.size();j++){ PDMBusinessDataType businessDataType2 = subUniqueBusinessDataTypes.get(j); if(isTheBusinessDataType(businessDataType1,businessDataType2)){//�ϲ���ͬ��ҵ���������� found = true; if(businessDataType1.getBelongStandardFieldList().size()>0){//���ӵ�и�ҵ���������ͱ�׼�ֶ� for(String standardFieldName:businessDataType1.getBelongStandardFieldList()){ if(!businessDataType2.getBelongStandardFieldList().contains(standardFieldName)){ businessDataType2.getBelongStandardFieldList().add(standardFieldName); } } } break; } } if(!found){ subUniqueBusinessDataTypes.add(businessDataType1); } } } for(PDMBusinessDataType field:subUniqueBusinessDataTypes){ String name = field.getOldTypeName(); if(!exclusionNames.contains(name)){//���ҵ���������Ͳ���ͻ mergeList.add(field); exclusionNames.add(name); }else{ String newName = PDMHelper.getUniqueName(name,exclusionNames);//�����׼�ֶγ�ͻ,���ȡһ��Ψһ��ҵ������������ field.setTypeName(newName); mergeList.add(field); exclusionNames.add(newName); } } } } return mergeList; } /** * �ϲ���ͬ�ı�׼�ֶ� * @param pmdStandardFieldList * @return */ public List<PDMStandardField> mergeStandardField(List<PDMStandardField> pmdStandardFieldList){ Map<String,List<PDMStandardField>>pdmSystemanalyseStaneardFieldMap = getStandardFieldCategory(pmdStandardFieldList); List<PDMStandardField> mergeList = new ArrayList<PDMStandardField>(); List<String> exclusionNames = new ArrayList<String>(); List<String> fieleNames = new ArrayList<String>(pdmSystemanalyseStaneardFieldMap.keySet()); Collections.sort(fieleNames,new NameSorter()); for(String fieldName:fieleNames){ List<PDMStandardField> fields = pdmSystemanalyseStaneardFieldMap.get(fieldName); if(fields.size()==1){//���û����ͬ�ı�׼�ֶ� if(!exclusionNames.contains(fieldName)){//�����׼�ֶβ���ͻ fields.get(0).setGenName(fieldName); mergeList.add(fields.get(0)); exclusionNames.add(fieldName); fields.get(0).setChanged(true); }else{//��ͻ��ȡһ��Ψһ�ı�׼�ֶ��� String genName = PDMHelper.getUniqueName(fieldName,exclusionNames); fields.get(0).setGenName(genName); mergeList.add(fields.get(0)); exclusionNames.add(genName); fields.get(0).setChanged(true); } }else if(fields.size()>1){//�ϲ���ͬ�ı�׼�ֶ� List<PDMStandardField> subUniqueFeilds = new ArrayList<PDMStandardField>(); for(int i = 0;i < fields.size();i++){ PDMStandardField field1 = fields.get(i); if(!subUniqueFeilds.contains(field1)){ boolean found = false; for(int j=0;j<subUniqueFeilds.size();j++){ PDMStandardField field2 = subUniqueFeilds.get(j); if(isTheSameStandardField(field1,field2)){ found = true; if(field1.getBolongSubSystemList().size()>0){//��Ӵ˱�׼�ֶ������ĸ���ϵͳ String subSystem = field1.getBolongSubSystemList().get(0); if(!field2.getBolongSubSystemList().contains(subSystem)){ field2.getBolongSubSystemList().add(subSystem); } } if(field1.getBelongTableList().size()>0){ for(String tableName:field1.getBelongTableList()){//��ӱ�׼�ֶ����Ĺ�ϵ if(!field2.getBelongTableList().contains(tableName)){ field2.getBelongTableList().add(tableName); } } } break; } } if(!found){ subUniqueFeilds.add(field1); } } } for(PDMStandardField field:subUniqueFeilds){ String name = field.getOldName(); if(!exclusionNames.contains(name)){//�����׼�ֶβ���ͻ mergeList.add(field); field.setGenName(name); exclusionNames.add(name); field.setChanged(true); }else{ String genName = PDMHelper.getUniqueName(name,exclusionNames);//�����׼�ֶγ�ͻ,���ȡһ��Ψһ�ı�׼�ֶ��� for(PDMStandardField aField:fields){ if(field!=aField){ if(isTheSameStandardField(field,aField)){ if(!aField.isChanged()){ aField.setChanged(true); aField.setGenName(genName); } } } } field.setGenName(genName); mergeList.add(field); exclusionNames.add(genName); field.setChanged(true); } } } } return mergeList; } /** * ��ҵ������������Ϊkey��PDMBusinessDataType���� * @param pmdBusinessDataTypeList * @return */ private Map<String,List<PDMBusinessDataType>>getBusinessDataTypeCategory(List<PDMBusinessDataType> pmdBusinessDataTypeList){ Map<String,List<PDMBusinessDataType>>pdmSystemanalyseBusinessDataTypeMap = new HashMap<String,List<PDMBusinessDataType>>(); for(PDMBusinessDataType pmdBusinessDataType:pmdBusinessDataTypeList){ if(pdmSystemanalyseBusinessDataTypeMap.get(pmdBusinessDataType.getOldTypeName())!=null){ pdmSystemanalyseBusinessDataTypeMap.get(pmdBusinessDataType.getOldTypeName()).add(pmdBusinessDataType); }else{ List<PDMBusinessDataType> businessDataTypeCategory = new ArrayList<PDMBusinessDataType>(); businessDataTypeCategory.add(pmdBusinessDataType); pdmSystemanalyseBusinessDataTypeMap.put(pmdBusinessDataType.getOldTypeName(), businessDataTypeCategory); } } return pdmSystemanalyseBusinessDataTypeMap; } /** * ���ֶ���Ϊkey��PDMStandardField���з��� * @param pmdStandardFieldList * @return */ private Map<String,List<PDMStandardField>>getStandardFieldCategory(List<PDMStandardField> pmdStandardFieldList){ Map<String,List<PDMStandardField>>pdmSystemanalyseStaneardFieldMap = new HashMap<String,List<PDMStandardField>>(); for(PDMStandardField pmdStandardField:pmdStandardFieldList){ if(pdmSystemanalyseStaneardFieldMap.get(pmdStandardField.getOldName())!=null){ pdmSystemanalyseStaneardFieldMap.get(pmdStandardField.getOldName()).add(pmdStandardField); }else{ List<PDMStandardField> standardFieldCategory = new ArrayList<PDMStandardField>(); standardFieldCategory.add(pmdStandardField); pdmSystemanalyseStaneardFieldMap.put(pmdStandardField.getOldName(), standardFieldCategory); } } return pdmSystemanalyseStaneardFieldMap; } /** * ����ҵ�������������׼�ֶεĹ�ϵ,������һ��������List<PDMBusinessDataType> * @param businessDataTypeList * @return */ public List<PDMBusinessDataType> analyseBusinessDataType(List<BusinessDataType> businessDataTypeList,List<StandardField> standardFieldList,List<String> subSyses){ List<PDMBusinessDataType>pdmSystemBusinessDataTypeList = new ArrayList<PDMBusinessDataType>(); for(BusinessDataType businessDataType:businessDataTypeList){ PDMBusinessDataType pdmSystemBusinessDataType = createPDMBusinessDataType(businessDataType); for(StandardField standardField:standardFieldList){ if(StringUtils.equals(standardField.getDataType(), businessDataType.getName())){ if(!pdmSystemBusinessDataType.getBelongStandardFieldList().contains(standardField.getName())){ pdmSystemBusinessDataType.getBelongStandardFieldList().add(standardField.getName()); } } } for(String subSyse:subSyses){ if(!pdmSystemBusinessDataType.getSubSyses().contains(subSyse)){ pdmSystemBusinessDataType.getSubSyses().add(subSyse); } } pdmSystemBusinessDataTypeList.add(pdmSystemBusinessDataType); } return pdmSystemBusinessDataTypeList; } /** * ������׼�ֶεĹ�ϵ�����ݿ��Ĺ�ϵ,������һ��������List<PDMStandardField> * @param standardFieldList * @param moduleList * @return * @throws ARESModelException */ public List<PDMStandardField> analyseStandardField(List<StandardField> standardFieldList,List<String> moduleList) throws ARESModelException{ List<PDMStandardField>pdmSubSystemStaneardFieldList = new ArrayList<PDMStandardField>(); List<ReferenceInfo> tabInfoList = ReferenceManager.getInstance().getReferenceInfos( project,IDatabaseRefType.Table, true) ; Map<IARESResource ,TableResourceData> tableResourceMap = getTableResourceMap(tabInfoList); for(StandardField standardField:standardFieldList){ PDMStandardField pdmStandardField = createPDMStandardField(standardField); for(String module :moduleList){ for(IARESResource tableResource:tableResourceMap.keySet()){ if(isOfSubSystem(tableResource, module)){ boolean find = false; TableResourceData tableInfo = tableResourceMap.get(tableResource); for(TableColumn tableColumn:tableInfo.getColumns()){ if(StringUtils.equals(pdmStandardField.getOldName(), tableColumn.getName())){ if(!pdmStandardField.getBelongTableList().contains(tableInfo.getName())){ pdmStandardField.getBelongTableList().add(tableInfo.getName()); find = true; //break; } } } if(find){ if(!pdmStandardField.getBolongSubSystemList().contains(module)){ pdmStandardField.getBolongSubSystemList().add(module); } } } } } pdmSubSystemStaneardFieldList.add(pdmStandardField); } tableResourceMap.clear(); return pdmSubSystemStaneardFieldList; } public Map<IARESResource ,TableResourceData> getTableResourceMap(List<ReferenceInfo> tabInfoList) throws ARESModelException{ Map<IARESResource ,TableResourceData> tableResourceMap = new HashMap<IARESResource ,TableResourceData>(); for(ReferenceInfo referenceInfo:tabInfoList){ IARESResource tableResource =referenceInfo.getResource(); TableResourceData tableInfo = tableResource.getInfo(TableResourceData.class); tableResourceMap.put(tableResource, tableInfo); } return tableResourceMap; } /** * ��BusinessDataTypeת����PDMBusinessDataType * @param businessDataType * @return */ private PDMBusinessDataType createPDMBusinessDataType(BusinessDataType businessDataType){ PDMBusinessDataType pdmBusinessDataType = new PDMBusinessDataType(); pdmBusinessDataType.setComment(businessDataType.getDescription()); pdmBusinessDataType.setDefaultValue(businessDataType.getDefaultValue()); pdmBusinessDataType.setLength(businessDataType.getLength()); pdmBusinessDataType.setPrecision(businessDataType.getPrecision()); pdmBusinessDataType.setStandardTypeName(businessDataType.getStdType()); pdmBusinessDataType.setTypeChineseName(businessDataType.getChineseName()); //pdmBusinessDataType.setTypeName(businessDataType.getName()); pdmBusinessDataType.setOldTypeName(businessDataType.getName()); return pdmBusinessDataType; } /** * ��StandardFieldת����PDMStandardField * @param standardField * @return */ private PDMStandardField createPDMStandardField(StandardField standardField){ PDMStandardField pdmStandardField = new PDMStandardField(); pdmStandardField.setDictId(standardField.getDictionaryType()); pdmStandardField.setGenBusType(standardField.getDataType()); pdmStandardField.setGenName(standardField.getName()); pdmStandardField.setOldBusType(standardField.getDataType()); pdmStandardField.setOldChineseName(standardField.getChineseName()); pdmStandardField.setOldComment(standardField.getDescription()); pdmStandardField.setOldName(standardField.getName()); return pdmStandardField; } /** * ��PDMBusinessDataTypeת����BusinessDataType * @param pdmBusinessDataType * @return */ public BusinessDataType createBusinessDataType(PDMBusinessDataType pdmBusinessDataType){ BusinessDataType businessDataType =MetadataFactory.eINSTANCE.createBusinessDataType(); String name = StringUtils.isNotBlank(pdmBusinessDataType.getTypeName())?pdmBusinessDataType.getTypeName():pdmBusinessDataType.getOldTypeName(); businessDataType.setName(name); businessDataType.setChineseName(pdmBusinessDataType.getTypeChineseName()); businessDataType.setDefaultValue(pdmBusinessDataType.getDefaultValue()); businessDataType.setDescription(pdmBusinessDataType.getComment()); businessDataType.setLength(pdmBusinessDataType.getLength()); businessDataType.setPrecision(pdmBusinessDataType.getPrecision()); businessDataType.setStdType(pdmBusinessDataType.getStandardTypeName()); return businessDataType; } /** * ��PDMStandardFieldת����StandardField * @param pdmStandardField * @return */ public StandardField createStandardField(PDMStandardField pdmStandardField){ StandardField standardField =MetadataFactory.eINSTANCE.createStandardField(); standardField.setChineseName(StringUtils.isBlank(pdmStandardField.getNewChineseName())?pdmStandardField.getOldChineseName():pdmStandardField.getNewChineseName()); standardField.setDataType(StringUtils.isBlank(pdmStandardField.getNewBusType())?pdmStandardField.getGenBusType():pdmStandardField.getGenBusType()); standardField.setDescription(StringUtils.isBlank(pdmStandardField.getNewComment())?pdmStandardField.getOldComment():pdmStandardField.getNewComment()); standardField.setDictionaryType(pdmStandardField.getDictId()); standardField.setName(StringUtils.isBlank(pdmStandardField.getGenName())?pdmStandardField.getOldName():pdmStandardField.getGenName()); return standardField; } /** * �������еĵ���Ϊ�ܵı�׼�ֶκϲ������¼�еı�׼�ֶ�,�Ժϲ��ı�׼�ֶν��в��:��ֱ����Բ�ͬ��ϵͳ������µĺϲ����ı�׼�ֶβŽ��в��) * @param allPDMStaneardFieldMap * @return * @throws InvocationTargetException * @throws IllegalAccessException */ public List<PDMStandardField> getAllPDMStandardFieldList(List<PDMStandardField> allPDMStaneardFieldList,Map<String ,List<PDMTableResource>> tableResourceMap) throws IllegalAccessException, InvocationTargetException{ String databaseType = "oracle"; try { databaseType = project.getProjectProperty().getString("tabledir"); int _index = -1 ; int dotIndex = -1; if((_index=StringUtils.lastIndexOf(databaseType,"_" ))>-1 && (dotIndex=StringUtils.lastIndexOf(databaseType,"."))>-1 ){ databaseType = StringUtils.substring(databaseType,_index+1, dotIndex).toLowerCase(); }else{ databaseType = "oracle"; } } catch (ARESModelException e) { e.printStackTrace(); } List<PDMStandardField> allPDMStandardFieldList = new ArrayList<PDMStandardField>(); for(PDMStandardField pdmStandardField:allPDMStaneardFieldList){ String realDataType = PDMHelper.getRealDataType(this.project,pdmStandardField.getGenName(),databaseType); if(pdmStandardField.getBolongSubSystemList().size()>1){ for(String subSystem: pdmStandardField.getBolongSubSystemList()){ PDMStandardField pdmStandardField1 = new PDMStandardField(); BeanUtilsBean.getInstance().copyProperties(pdmStandardField1,pdmStandardField);//�Ժϲ��ı�׼�ֶν��в�� pdmStandardField1.getBolongSubSystemList().clear(); pdmStandardField1.getBolongSubSystemList().add(subSystem);//���ֶ�ͳ��������ϵͳ pdmStandardField1.getBelongTableList().clear(); List<String> belongTableList = new ArrayList<String>(); for(String tableName:pdmStandardField.getBelongTableList()){ List<PDMTableResource> tableResourceList = tableResourceMap.get(tableName); if(tableResourceList!=null){ for(PDMTableResource tableResource:tableResourceList){ if(StringUtils.equals(tableResource.getSubSystem(), subSystem)){ belongTableList.add(tableName);//���ֶ�ͳ�������� } } } } pdmStandardField1.getBelongTableList().addAll(belongTableList); pdmStandardField1.setOldBusType(realDataType); allPDMStandardFieldList.add(pdmStandardField1); } }else{ pdmStandardField.setOldBusType(realDataType); allPDMStandardFieldList.add(pdmStandardField); } } return allPDMStandardFieldList; } /** * ��ҵ�������������ºϲ���ͬ��ʱ,��ʱҵ�����ݵ������Ѿ��޸�. * @param allUniqueStaneardFieldList * @param allUniquePDMBusinessDataTypeList */ public void updatePDMSStandardFieldBusinessType(List<PDMStandardField> allUniqueStaneardFieldList,List<PDMBusinessDataType> allUniquePDMBusinessDataTypeList){ Map<String,List<PDMStandardField>>pdmStaneardFieldMap =getStandardFieldCategory(allUniqueStaneardFieldList);//map��list�ٶȿ�,����������ĸ��� for(PDMBusinessDataType pdmBusinessDataType :allUniquePDMBusinessDataTypeList){ if(!StringUtils.equals(pdmBusinessDataType.getOldTypeName(), pdmBusinessDataType.getTypeName()) && StringUtils.isNotBlank(pdmBusinessDataType.getTypeName())){ for(String standardFieldName:pdmBusinessDataType.getBelongStandardFieldList()){ if(pdmStaneardFieldMap.get(standardFieldName)!=null){ List<PDMStandardField> pdmStandardFields = pdmStaneardFieldMap.get(standardFieldName); for(PDMStandardField pdmStandardField:pdmStandardFields){ pdmStandardField.setGenBusType(pdmBusinessDataType.getTypeName());//ֻ��excelʱ����setNewBusType(); } } } } } } /** * ����ҵ���������͵��޸�,���±�׼�ֶε���ҵ�����������޸� * @param listInfo * @param allUniquePDMBusinessDataTypeList */ public void updateStandardFieldBusinessType(Collection<MergePojo> listInfo,List<PDMBusinessDataType> allUniquePDMBusinessDataTypeList){ for(MergePojo mergePojo:listInfo){ List<StandardField> stdFields =mergePojo.getStdFields(); for(StandardField standardField:stdFields){ String fieldName = standardField.getName(); boolean isChange = false; for(PDMBusinessDataType pdmBusinessDataType :allUniquePDMBusinessDataTypeList){//���ҵ���������ͽ������޸� if(!StringUtils.equals(pdmBusinessDataType.getOldTypeName(), pdmBusinessDataType.getTypeName()) && StringUtils.isNotBlank(pdmBusinessDataType.getTypeName())){ for(String standardFieldName:pdmBusinessDataType.getBelongStandardFieldList()){//�����׼�ֶζ�Ӧ��ҵ�������������ҵ������������ͬ if(StringUtils.equals(fieldName, standardFieldName)){ for(String subSys:pdmBusinessDataType.getSubSyses()){ if(mergePojo.getSubSyses().contains(subSys)){//���ڶ�Ӧ����ϵͳ�� isChange = true; break; } } } } } if(isChange){//���ȷʵҵ���������ͽ������޸����޸ı�׼�ֶζ�Ӧ��ҵ���������� standardField.setDataType(pdmBusinessDataType.getTypeName()); break; } } } } } /** * �ж�ָ���ı����Դ�Ƿ���ָ�������ģ����(����ģ��) * @param tableResource * @param subSystem * @return */ public boolean isOfSubSystem(IARESResource tableResource,String subSystem){ if(tableResource==null){ return false; } //StringUtils.isNotBlank(moduleName) && StringUtils.indexOf(moduleName, ".") == -1; IARESModule module =tableResource.getModule(); IARESModule parentModule = module; while(parentModule!=null){ module = parentModule; parentModule =parentModule.getParentModule(); } if(StringUtils.equals(module.getElementName(), subSystem)){ return true; } return false; } /** * �ж�ָ���ı����Դ�Ƿ���ָ�������ģ���б���(����ģ��) * @param tableResource * @param subSystemList * @return */ public boolean isInSubSystems(IARESResource tableResource,List<String> subSystemList){ if(tableResource==null){ return false; } IARESModule module =tableResource.getModule(); for (String subSystem : subSystemList) { IARESModule parentModule = tableResource.getModule(); while (parentModule != null) { module = parentModule; parentModule = parentModule.getParentModule(); } if (StringUtils.equals(module.getElementName(), subSystem)) { return true; } } return false; } /** * ��tableName��PDMStandardField���з��� * @param pmdStandardFieldList * @return */ public Map<String,List<PDMStandardField>>getStandardFieldCategoryByTable(List<PDMStandardField> pmdStandardFieldList){ Map<String,List<PDMStandardField>>pdmStaneardFieldMap = new HashMap<String,List<PDMStandardField>>(); for(PDMStandardField pmdStandardField:pmdStandardFieldList){ for(String tableName:pmdStandardField.getBelongTableList()){ if(pdmStaneardFieldMap.get(tableName)!=null){ pdmStaneardFieldMap.get(tableName).add(pmdStandardField); }else{ List<PDMStandardField> standardFieldCategory = new ArrayList<PDMStandardField>(); standardFieldCategory.add(pmdStandardField); pdmStaneardFieldMap.put(tableName, standardFieldCategory); } } } return pdmStaneardFieldMap; } /** * �ж�ҵ�����������Ƿ���ͬ:ҵ��ҵ������������,��׼����,����,������ͬ��ͬ * @param field1 * @param field2 * @return */ private boolean isTheBusinessDataType(PDMBusinessDataType pdmBusinessDataType1,PDMBusinessDataType pdmBusinessDataType2){ return StringUtils.equals(pdmBusinessDataType1.getOldTypeName(), pdmBusinessDataType2.getOldTypeName()) //&& StringUtils.equals(businessDataType.getChineseName(), pdmBusinessDataType.getTypeChineseName()) && StringUtils.equals(pdmBusinessDataType1.getStandardTypeName(), pdmBusinessDataType2.getStandardTypeName()) && StringUtils.equals(pdmBusinessDataType1.getLength(), pdmBusinessDataType2.getLength()) && StringUtils.equals(pdmBusinessDataType1.getPrecision(), pdmBusinessDataType2.getPrecision()); } /** * �ж�������׼�ֶ��Ƿ���ͬ:��׼�ֶ���,������,ҵ��������������ͬ����ͬ * @param field1 * @param field2 * @return */ private boolean isTheSameStandardField(PDMStandardField field1,PDMStandardField field2){ return StringUtils.equalsIgnoreCase(field1.getOldName(), field2.getOldName()) && StringUtils.equalsIgnoreCase(field1.getOldBusType(), field2.getOldBusType()) &&StringUtils.equalsIgnoreCase(field1.getOldChineseName(), field2.getOldChineseName()) ; } /** * * @param pdmFeild * @return */ public String getModifyInfo(PDMStandardField pdmFeild){ StringBuffer modifyStr = new StringBuffer(); if(StringUtils.isNotBlank(pdmFeild.getGenName()) && !StringUtils.equals(pdmFeild.getGenName(), pdmFeild.getOldName())){ modifyStr.append("�ֶ���:").append(pdmFeild.getOldName()).append("�޸�Ϊ:").append(pdmFeild.getGenName()); } if(StringUtils.isNotBlank(pdmFeild.getGenBusType())&& !StringUtils.equals(pdmFeild.getOldBusType(), pdmFeild.getGenBusType())){ modifyStr.append("����:").append(pdmFeild.getOldBusType()).append("�޸�Ϊ:").append(pdmFeild.getGenBusType()); } return modifyStr.toString(); } }