| | |
| | | List<VciFieldTypeEnum> fieldTypes = listFieldInMapByColumnStr(columnStr, map); |
| | | VciFieldTypeEnum finalField = null; |
| | | int i = Integer.MAX_VALUE; |
| | | if (CollectionUtils.isEmpty(fieldTypes)){ |
| | | return null; |
| | | } |
| | | if (fieldTypes.size() == 1){ |
| | | return fieldTypes.get(0); |
| | | } |
| | | for (VciFieldTypeEnum fieldType : fieldTypes) { |
| | | DdlFieldMappingAttrBO bo = map.get(fieldType); |
| | | int i1 = Math.abs(bo.getDataLength() - length); |
| | | if (i1 < i){ |
| | | finalField = fieldType; |
| | | i = i1; |
| | | if (fieldType.equals(VciFieldTypeEnum.VTString)) { |
| | | finalField = VciFieldTypeEnum.VTString; |
| | | } |
| | | if (fieldType.equals(VciFieldTypeEnum.VTDateTime)){ |
| | | finalField = VciFieldTypeEnum.VTDateTime; |
| | | } |
| | | if (fieldType.equals(VciFieldTypeEnum.VTInteger) && length <= 26){ |
| | | finalField = VciFieldTypeEnum.VTInteger; |
| | | } |
| | | } |
| | | return finalField; |