From 3579af2945dd38d841a23cd340acd474bb63773a Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期四, 04 五月 2023 18:02:01 +0800
Subject: [PATCH] 业务类型与DDL服务相关的添加

---
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java |  160 +++++++++++-----------------------------------------
 1 files changed, 35 insertions(+), 125 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
index 0115dfd..2d548e1 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
@@ -1,18 +1,14 @@
 package com.vci.ubcs.ddl.processor.dll;
 
 
+import com.vci.ubcs.ddl.bo.DdlFieldMappingAttrBO;
 import com.vci.ubcs.ddl.mapper.DllMapper;
-import com.vci.ubcs.ddl.mapper.DllOracleMapper;
-import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
-import com.vci.ubcs.starter.exception.VciBaseException;
-<<<<<<< HEAD
+import com.vci.ubcs.ddl.mapper.DllMySqlMapper;
+import com.vci.ubcs.starter.util.VciSpringUtil;
 import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
-import org.apache.commons.lang3.StringUtils;
-=======
->>>>>>> dd3a6c681f938fd53d5f6cc3a4fcee40e71b259c
+import org.apache.commons.collections4.BidiMap;
+import org.springframework.stereotype.Component;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -21,24 +17,36 @@
  * @author LiHang
  * @date 2023/4/24
  */
+@Component
 public class DllMySqlMapperProcessor extends DllMapperProcessor {
 
-	@Resource
-	private DllOracleMapper realMapper;
+	private static final DllMapper MAPPER = VciSpringUtil.getBean(DllMySqlMapper.class);
 
-	private static DllMapper mapper;
+	private static final BidiMap<VciFieldTypeEnum, DdlFieldMappingAttrBO> FIELD_MAP = getMappingMapCopy();
 
-	@PostConstruct
-	public void init() {
-		mapper = realMapper;
+
+	static {
+		// 闇�瑕侀噸鏂版槧灏勭殑瀛楁绫诲瀷鍦ㄨ繖閲屽啓
+		FIELD_MAP.put(VciFieldTypeEnum.VTDouble,new DdlFieldMappingAttrBO("NUMERIC",26,8,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTInteger,new DdlFieldMappingAttrBO("INT",22,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTLong,new DdlFieldMappingAttrBO("BIGINT",22,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTBoolean,new DdlFieldMappingAttrBO("VARCHAR",5,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTDate,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTDateTime,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTTime,new DdlFieldMappingAttrBO("DATETIME",null,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTFilePath,new DdlFieldMappingAttrBO("VARCHAR",100,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTClob,new DdlFieldMappingAttrBO("varchar(max)",100,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTString,new DdlFieldMappingAttrBO("VARCHAR",100,null,true,null));
 	}
 
 	public DllMySqlMapperProcessor() {
-		super(mapper);
-	}
-
-	public static class SINGLE {
-		public static DllMySqlMapperProcessor INSTANCE = new DllMySqlMapperProcessor();
+		super(MAPPER);
+		System.out.println("-----------------");
+		if (MAPPER != null){
+			System.out.println("[success]::鍔犺浇MySql鏁版嵁搴揇LL鎿嶄綔鏈嶅姟鎴愬姛");
+		}else {
+			System.out.println("[fail]::鍔犺浇MySql鏁版嵁搴揇LL鎿嶄綔鏈嶅姟澶辫触");
+		}
 	}
 
 	@Override
@@ -46,118 +54,20 @@
 		return "oracle.jdbc.OracleDiver".equals(url);
 	}
 
-	/**
-	 * 鑾峰彇鍒涘缓鐨剆ql璇彞涓睘鎬ч儴鍒�
-	 *
-	 * @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));
-				case VTFilePath:
-					sb.append("VARCHAR").append("(100)").append(SPACE);
-					break;
-				case VTClob:
-					sb.append("LONGTEXT").append(SPACE);
-					if (!a.isNullableFlag()) {
-						sb.append(SPACE).append("not null").append(SPACE);
-					}
-					break;
-				default:
-					sb.append(dealStringCreateSql(a));
-					break;
-			}
-			sb.append(",\n\t");
-		});
-		return sb.substring(0, sb.lastIndexOf(","));
+	protected DdlFieldMappingAttrBO getMappingBO(VciFieldTypeEnum fieldTypeEnum) {
+		return getMappingBOInMap(fieldTypeEnum,FIELD_MAP);
 	}
 
 	/**
-	 * 澶勭悊鏁存暟绫诲瀷鐨剆ql杞崲
+	 * 鎸夋暟鎹簱瀛楁绫诲瀷鍒椾妇鎵�鏈夌殑VCI瀛楁绫诲瀷
 	 *
-	 * @param attributeVO 灞炴��
-	 * @return sql
+	 * @param columnStr 鏁版嵁搴撳瓧娈电被鍨�
+	 * @return VCI瀛楁绫诲瀷
 	 */
 	@Override
-	public String dealNumberCreateSql(BtmTypeAttributeVO attributeVO) {
-		StringBuilder sb = new StringBuilder();
-		if (VciFieldTypeEnum.VTInteger.name().equalsIgnoreCase(attributeVO.getAttrDataType())) {
-			sb.append("INT").append(SPACE);
-		} else {
-			sb.append("BIGINT").append(SPACE);
-		}
-		sb.append(dealDefaultAndNull(attributeVO));
-		return sb.toString();
-	}
-
-
-	/**
-	 * 澶勭悊娴偣鏁扮被鍨嬬殑sql杞崲
-	 *
-	 * @param attributeVO 灞炴��
-	 * @return sql
-	 */
-	@Override
-	public String dealDoubleCreateSql(BtmTypeAttributeVO attributeVO) {
-		StringBuilder sb = new StringBuilder();
-		Integer length = attributeVO.getPrecisionLength();
-		if (length == null || length == 0) {
-			length = 20;
-		}
-		Integer scaleLength = attributeVO.getScaleLength();
-		if (scaleLength == null) {
-			scaleLength = 2;
-		}
-		sb.append("DOUBLE").append("(").append(String.valueOf(length.intValue()))
-			.append(",").append(String.valueOf(scaleLength.intValue()))
-			.append(")").append(SPACE);
-		sb.append(dealDefaultAndNull(attributeVO));
-		return sb.toString();
-	}
-
-
-	/**
-	 * 澶勭悊甯冨皵绫诲瀷鐨剆ql杞崲
-	 *
-	 * @param attributeVO 灞炴��
-	 * @return sql
-	 */
-	@Override
-	public String dealBooleanCreateSql(BtmTypeAttributeVO attributeVO) {
-		return "VARCHAR (5) " + SPACE + dealDefaultAndNull(attributeVO);
-	}
-
-	/**
-	 * 澶勭悊鏃ユ湡鏃堕棿绫诲瀷鐨剆ql杞崲
-	 *
-	 * @param attributeVO 灞炴��
-	 * @return sql
-	 */
-	@Override
-	public String dealDateTimeCreateSql(BtmTypeAttributeVO attributeVO) {
-		return "DATETIME" + SPACE + dealDefaultAndNull(attributeVO);
+	public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) {
+		return listFieldInMapByColumnStr(columnStr,FIELD_MAP);
 	}
 
 }

--
Gitblit v1.9.3