From ae5807029edabde0b1e1488c090bd830fccf75a7 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 18 九月 2023 16:13:07 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java |   56 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 40 insertions(+), 16 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
index e93f205..b4ece98 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllDmMapperProcessor.java
@@ -3,12 +3,18 @@
 import com.vci.ubcs.ddl.bo.DdlFieldMappingAttrBO;
 import com.vci.ubcs.ddl.mapper.DllDmMapper;
 import com.vci.ubcs.ddl.mapper.DllMapper;
+import com.vci.ubcs.omd.vo.BtmTypeAttributeVO;
 import com.vci.ubcs.starter.util.VciSpringUtil;
 import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
 import org.apache.commons.collections4.BidiMap;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.context.annotation.DependsOn;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Locale;
+import java.util.Optional;
 
 /**
  * Description: 搴旂敤浜庤揪姊︽暟鎹紝鐢熸垚鍒涘缓琛ㄦ搷浣渟ql鐨勫鐞嗗櫒
@@ -17,7 +23,8 @@
  * @date 2023/4/24
  */
 @Component
-public class DllDmMapperProcessor extends DllMapperProcessor{
+@DependsOn("vciSpringUtil")
+public class DllDmMapperProcessor extends DllMapperProcessor {
 
 	private static final DllMapper MAPPER = VciSpringUtil.getBean(DllDmMapper.class);
 
@@ -25,24 +32,25 @@
 
 	static {
 		// 闇�瑕侀噸鏂版槧灏勭殑瀛楁绫诲瀷鍦ㄨ繖閲屽啓
-		FIELD_MAP.put(VciFieldTypeEnum.VTDouble,new DdlFieldMappingAttrBO("DOUBLE",26,8,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTInteger,new DdlFieldMappingAttrBO("NUMBER",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("DATE",null,null,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTDateTime,new DdlFieldMappingAttrBO("TIMESTAMP",null,null,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTTime,new DdlFieldMappingAttrBO("TIME",null,null,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTFilePath,new DdlFieldMappingAttrBO("TEXT",null,null,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTClob,new DdlFieldMappingAttrBO("CLOB",100,null,true,null));
-		FIELD_MAP.put(VciFieldTypeEnum.VTString,new DdlFieldMappingAttrBO("VARCHAR",255,null,true,null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTDouble, new DdlFieldMappingAttrBO("DOUBLE", 53, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTInteger, new DdlFieldMappingAttrBO("INTEGER", null, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTLong, new DdlFieldMappingAttrBO("NUMBER", 38, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTBoolean, new DdlFieldMappingAttrBO("VARCHAR", 5, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTDate, new DdlFieldMappingAttrBO("DATE", null, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTDateTime, new DdlFieldMappingAttrBO("TIMESTAMP", null, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTTime, new DdlFieldMappingAttrBO("TIME", null, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTFilePath, new DdlFieldMappingAttrBO("TEXT", null, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTClob, new DdlFieldMappingAttrBO("CLOB", 100, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTString, new DdlFieldMappingAttrBO("VARCHAR", 255, null, true, null));
+		FIELD_MAP.put(VciFieldTypeEnum.VTString, new DdlFieldMappingAttrBO("VARCHAR2", 255, null, true, null));
 	}
 
 	public DllDmMapperProcessor() {
 		super(MAPPER);
 		System.out.println("-----------------");
-		if (MAPPER != null){
+		if (MAPPER != null) {
 			System.out.println("[success]::鍔犺浇杈炬ⅵ鏁版嵁搴揇LL鎿嶄綔鏈嶅姟鎴愬姛");
-		}else {
+		} else {
 			System.out.println("[fail]::鍔犺浇杈炬ⅵ鏁版嵁搴揇LL鎿嶄綔鏈嶅姟澶辫触");
 		}
 	}
@@ -54,7 +62,23 @@
 
 	@Override
 	protected DdlFieldMappingAttrBO getMappingBO(VciFieldTypeEnum fieldTypeEnum) {
-		return getMappingBOInMap(fieldTypeEnum,FIELD_MAP);
+		return getMappingBOInMap(fieldTypeEnum, FIELD_MAP);
+	}
+
+	@Override
+	public String getColumnTypeSql(VciFieldTypeEnum fieldType, BtmTypeAttributeVO attributeVO) {
+		DdlFieldMappingAttrBO mappingBO = getMappingBO(fieldType);
+		if (mappingBO.getDataLength() != null) {
+			//mappingBO鐢ㄦ潵鍋氭渶鍚庣殑鏍¢獙锛屽鏋滃畾涔夌殑BO娌℃湁瀛楁闀垮害锛屽垯璇存槑杩欎釜绫诲瀷鐢熸垚鐨剆ql涓嶅簲璇ユ寚瀹氶暱搴︺�傚鏋滄寚瀹氫簡闀垮害锛岃鏄庢槸瀛楁闀垮害鐨勬渶澶у�硷紝VARCHAR銆丆LOB闄ゅ
+			if (!(fieldType.equals(VciFieldTypeEnum.VTClob) || fieldType.equals(VciFieldTypeEnum.VTString))
+				&& attributeVO.getAttributeLength() > mappingBO.getDataLength()) {
+				mappingBO.setDataLength(attributeVO.getAttributeLength());
+			}
+		}
+		mappingBO.setNullable(attributeVO.isNullableFlag());
+		mappingBO.setDefaultValue(attributeVO.getDefaultValue());
+		return mappingBO.toString() + (StringUtil.equals(attributeVO.getId().toLowerCase(Locale.ROOT), "OID".toLowerCase(Locale.ROOT)) ? StringPool.SPACE + "primary key" + StringPool.SPACE : "");
+
 	}
 
 	/**
@@ -65,11 +89,11 @@
 	 */
 	@Override
 	public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) {
-		return listFieldInMapByColumnStr(columnStr,FIELD_MAP);
+		return listFieldInMapByColumnStr(columnStr, FIELD_MAP);
 	}
 
 	@Override
 	public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) {
-		return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP);
+		return getFieldTypeBeColumnStrInMap(columnStr, length, FIELD_MAP);
 	}
 }

--
Gitblit v1.9.3