lihang
2023-05-06 9f46e04d61a13f0fc39e307d6f1a1f7d9a9f75ca
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessor.java
@@ -7,12 +7,14 @@
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.StringPool;
import org.springblade.core.tool.utils.StringUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
@@ -145,4 +147,27 @@
   }
   public abstract VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr,Integer length);
   protected final VciFieldTypeEnum getFieldTypeBeColumnStrInMap(String columnStr,Integer length,BidiMap<VciFieldTypeEnum, DdlFieldMappingAttrBO> map){
      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;
         }
      }
      return finalField;
   }
}