lihang
2023-05-04 3579af2945dd38d841a23cd340acd474bb63773a
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
@@ -1,18 +1,17 @@
package com.vci.ubcs.ddl.processor.dll;
import com.vci.ubcs.ddl.mapper.DdlMSMapper;
import com.vci.ubcs.ddl.mapper.DllMapper;
import com.vci.ubcs.ddl.mapper.DllMsMapper;
import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
import com.vci.ubcs.starter.exception.VciBaseException;
<<<<<<< HEAD
import com.vci.ubcs.starter.util.VciSpringUtil;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
import org.apache.commons.lang3.StringUtils;
=======
>>>>>>> dd3a6c681f938fd53d5f6cc3a4fcee40e71b259c
import org.springblade.core.tool.utils.StringPool;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
@@ -21,24 +20,19 @@
 * @author LiHang
 * @date 2023/4/24
 */
@Component
public class DllMsMapperProcessor extends DllMapperProcessor {
   @Resource
   private DllMsMapper realMapper;
   private static DllMapper mapper;
   @PostConstruct
   public void init(){
      mapper = realMapper;
   }
   private static DllMapper mapper = VciSpringUtil.getBean(DllMsMapper.class);
   public DllMsMapperProcessor() {
      super(mapper);
   }
   public static class SINGLE {
      public static DllMsMapperProcessor INSTANCE = new DllMsMapperProcessor();
      System.out.println("-----------------");
      if (mapper != null){
         System.out.println("[success]::加载Sql Server数据库DLL操作服务成功");
      }else {
         System.out.println("[fail]::加载Sql Server数据库DLL操作服务失败");
      }
   }
   @Override
@@ -46,131 +40,5 @@
      return "oracle.jdbc.OracleDiver".equals(url);
   }
   /**
    * 获取创建的sql语句中属性部分
    *
    * @param attributeVOList 属性的立碑
    * @return sql语句
    */
   @Override
   public String getCreateSqlByAttributeForBtm(List<BtmTypeAttributeVO> attributeVOList) {
      StringBuilder sb = new StringBuilder();
      attributeVOList.forEach(a -> {
         sb.append(a.getId()).append(SPACE);
         VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.forValue(a.getAttrDataType());
         if (fieldTypeEnum == null) {
            throw new VciBaseException("属性有误");
         }
         switch (fieldTypeEnum) {
            case VTInteger:
            case VTLong:
               sb.append(dealNumberCreateSql(a));
               break;
            case VTDouble:
               sb.append(dealDoubleCreateSql(a));
               break;
            case VTBoolean:
               sb.append(dealBooleanCreateSql(a));
               break;
            case VTDate:
            case VTTime:
            case VTDateTime:
               sb.append(dealDateTimeCreateSql(a));
               break;
            case VTFilePath:
               sb.append("VARCHAR").append("(100)").append(SPACE);
               break;
            case VTClob:
               sb.append("varchar(max)").append(SPACE);
               if(!a.isNullableFlag()){
                  sb.append(SPACE).append("not null").append(SPACE);
               }
               break;
            default:
               dealStringCreateSql(a);
               break;
         }
         sb.append(",\n\t");
      });
      return sb.substring(0,sb.lastIndexOf(","));
   }
   /**
    * 处理整数类型的sql转换
    *
    * @param attributeVO 属性
    * @return sql
    */
   @Override
   public String dealNumberCreateSql(BtmTypeAttributeVO attributeVO) {
      return "INT" + SPACE + dealDefaultAndNull(attributeVO);
   }
   /**
    * 处理浮点数类型的sql转换
    *
    * @param attributeVO 属性
    * @return sql
    */
   @Override
   public String dealDoubleCreateSql(BtmTypeAttributeVO attributeVO) {
      Integer length = attributeVO.getPrecisionLength();
      if(length == null || length == 0){
         length = 20;
      }
      Integer scaleLength = attributeVO.getScaleLength();
      if(scaleLength == null){
         scaleLength = 2;
      }
      StringBuilder sb = new StringBuilder().append("numeric").append("(").append(String.valueOf(length.intValue()))
         .append(",").append(String.valueOf(scaleLength.intValue()))
         .append(")").append(SPACE);
      sb.append(dealDefaultAndNull(attributeVO));
      return sb.toString();
   }
   /**
    * 处理布尔类型的sql转换
    *
    * @param attributeVO 属性
    * @return sql
    */
   @Override
   public String dealBooleanCreateSql(BtmTypeAttributeVO attributeVO) {
      return "VARCHAR (5) " + SPACE + dealDefaultAndNull(attributeVO);
   }
   /**
    * 处理日期时间类型的sql转换
    *
    * @param attributeVO 属性
    * @return sql
    */
   @Override
   public String dealDateTimeCreateSql(BtmTypeAttributeVO attributeVO) {
      return "DATETIME" + SPACE + dealNullableSql(attributeVO);
   }
   /**
    * 处理字符串类型的sql转换
    *
    * @param attributeVO 属性
    * @return sql
    */
   @Override
   public String dealStringCreateSql(BtmTypeAttributeVO attributeVO) {
      Integer length2 = attributeVO.getAttributeLength();
      if(length2 == null){
         length2 = 250;
      }
      StringBuilder sb = new StringBuilder().append("VARCHAR").append("(").
         append(String.valueOf(length2.intValue())).append(")").append(SPACE);
      if (OID.equalsIgnoreCase(attributeVO.getId())) {
         sb.append(" primary key ");
         //强制设置OID为主键
      }
      sb.append(dealDefaultAndNull(attributeVO));
      return sb.toString();
   }
}