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