From edd0231f6f9d69df75c52439c104e5126820ac4a Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 30 一月 2024 16:40:34 +0800
Subject: [PATCH] 分类授权数据授权,界面修改;业务类型修改表字段信息接口提示信息修改

---
 Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java |  257 ++++++++++++++++++++++++++------------------------
 1 files changed, 134 insertions(+), 123 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
index f493a6b..651433a 100644
--- a/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -7,16 +7,17 @@
 import com.vci.ubcs.ddl.bo.DdlTableInDataBaseBO;
 import com.vci.ubcs.ddl.enums.BusinessTypeEnum;
 import com.vci.ubcs.ddl.enums.ModifyTableTaskEnum;
-import com.vci.ubcs.ddl.processor.ddl.DdlMapperProcessStrategy;
 import com.vci.ubcs.ddl.processor.ddl.DdlMapperProcessor;
 import com.vci.ubcs.ddl.processor.dll.DllMapperProcessor;
-import com.vci.ubcs.ddl.processor.dll.DllMapperProcessorStrategy;
 import com.vci.ubcs.ddl.properties.DdlPropertise;
 import com.vci.ubcs.ddl.service.IDdlService;
 import com.vci.ubcs.omd.cache.BtmTypeCache;
 import com.vci.ubcs.omd.constant.BtmTypeFieldConstant;
 import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
 import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO;
+import com.vci.ubcs.omd.dto.TableAddColumnDTO;
+import com.vci.ubcs.omd.dto.TableCheckDTO;
+import com.vci.ubcs.omd.dto.TableCheckResultDTO;
 import com.vci.ubcs.omd.entity.ModifyAttributeInfo;
 import com.vci.ubcs.omd.vo.*;
 import com.vci.ubcs.starter.exception.VciBaseException;
@@ -32,6 +33,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import javax.validation.constraints.NotNull;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -61,13 +63,15 @@
 	/**
 	 * ddl鏁版嵁鎿嶄綔鏈嶅姟
 	 */
-	private final DdlMapperProcessor ddlMapper = DdlMapperProcessStrategy.getProcessor();
+	@Autowired
+	private DdlMapperProcessor ddlMapper;
 
 
 	/**
 	 * dll鏁版嵁鎿嶄綔鏈嶅姟
 	 */
-	private final DllMapperProcessor dllMapper = DllMapperProcessorStrategy.getProcessor();
+	@Autowired
+	private DllMapperProcessor dllMapper;
 
 	private static final String YES = "Y";
 
@@ -77,25 +81,25 @@
 
 	private final Map<String, LinkTypeVO> idLinkMap = new ConcurrentHashMap<>();
 
-	private void putBtm(@NotNull BtmTypeVO... voList) throws ServiceException {
+	private void putBtm(@NotNull BtmTypeVO... voList) throws Throwable {
 		String collect = Arrays.stream(voList).map(BtmTypeVO::getId).filter(idBtmMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idBtmMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new ServiceException("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new Throwable("涓氬姟绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
-	private void putLink(@NotNull LinkTypeVO... voList) throws ServiceException {
+	private void putLink(@NotNull LinkTypeVO... voList) throws Throwable {
 		String collect = Arrays.stream(voList).map(LinkTypeVO::getId).filter(idLinkMap::containsKey).collect(Collectors.joining(","));
 		if (StringUtils.isBlank(collect)) {
 			Arrays.stream(voList).forEach(vo -> {
 				idLinkMap.put(vo.getId(), vo);
 			});
 		} else {
-			throw new ServiceException("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
+			throw new Throwable("閾炬帴绫诲瀷:[" + collect + "]姝e湪琚叾浠栫敤鎴锋搷浣�");
 		}
 	}
 
@@ -119,77 +123,6 @@
 		}
 	}
 
-	/**
-	 * 鏍¢獙涓氬姟绫诲瀷鐨勬暟鎹簱琛ㄤ腑鏄惁鏈夋暟鎹�
-	 *
-	 * @param pkBtmType 涓氬姟绫诲瀷鐨勪富閿�
-	 * @return true琛ㄧず鏈夋暟鎹紝false琛ㄧず娌℃湁鏁版嵁
-	 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮煡璇㈠嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
-	 */
-	@Override
-	public boolean checkTableHasData(String pkBtmType) throws VciBaseException {
-		return checkTableHasDataByTableName(getTableNameByBtmTypeOid(pkBtmType));
-	}
-
-	/**
-	 * 鏍规嵁涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑涓婚敭鑾峰彇鏁版嵁搴撹〃鏍肩殑鍚嶇О
-	 *
-	 * @param pkBtmType 涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑涓婚敭
-	 * @return 鏁版嵁搴撹〃鍚嶇О
-	 */
-	@Override
-	public String getTableNameByBtmTypeOid(String pkBtmType) {
-		VciBaseUtil.alertNotNull(pkBtmType, "涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑涓婚敭");
-		BtmTypeVO btmType = BtmTypeCache.getDetail(pkBtmType);
-		String tableName = "";
-		if (btmType == null || StringUtils.isBlank(btmType.getOid())) {
-			/*OsLinkTypeDO linkTypeDO = linkTypeDOMapper.selectByPrimaryKey(pkBtmType.trim());
-			if(linkTypeDO == null || StringUtils.isBlank(linkTypeDO.getOid()) ){
-				throw new com.vci.starter.web.exception.VciBaseException("涓嶆槸涓氬姟绫诲瀷锛屼篃涓嶆槸閾炬帴绫诲瀷锛岃鏌ヨ瘉");
-			}else{
-				tableName = linkTypeService.getTableName(linkTypeDO.getId());
-			}*/
-		} else {
-			tableName = btmType.getTableName();
-		}
-		return tableName;
-	}
-
-	/**
-	 * 鏍规嵁涓氬姟绫诲瀷鑾峰彇閾炬帴绫诲瀷鐨勮嫳鏂囧悕绉拌幏鍙栨暟鎹簱琛ㄦ牸鐨勫悕绉�
-	 *
-	 * @param id 涓氬姟绫诲瀷鑾峰彇閾炬帴绫诲瀷鐨勮嫳鏂囧悕绉�
-	 * @return 鏁版嵁搴撹〃鍚嶇О
-	 */
-	@Override
-	public String getTableNameByBtmTypeId(String id) {
-		VciBaseUtil.alertNotNull(id, "涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑鑻辨枃鍚嶇О");
-		List<BtmTypeVO> btmTypeList = BtmTypeCache.selectByIdCollection(VciBaseUtil.str2List(id));
-		String tableName = "";
-		if (CollectionUtils.isEmpty(btmTypeList)) {
-			/*List<OsLinkTypeDO> linkTypeDOList = linkTypeDOMapper.selectByIdCollection(VciBaseUtil.str2List(id));
-			if(CollectionUtils.isEmpty(linkTypeDOList)){
-				throw new com.vci.starter.web.exception.VciBaseException("涓嶆槸涓氬姟绫诲瀷锛屼篃涓嶆槸閾炬帴绫诲瀷锛岃鏌ヨ瘉");
-			}else{
-				tableName = linkTypeService.getTableName(linkTypeDOList.get(0).getId());
-			}*/
-		} else {
-			tableName = btmTypeList.get(0).getTableName();
-		}
-		return tableName;
-	}
-
-	/**
-	 * 鏍¢獙涓氬姟绫诲瀷鐨勬暟鎹簱琛ㄤ腑鏄惁鏈夋暟鎹�
-	 *
-	 * @param id 涓氬姟绫诲瀷鐨勮嫳鏂囧悕绉�
-	 * @return true琛ㄧず鏈夋暟鎹紝false琛ㄧず娌℃湁鏁版嵁
-	 * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮煡璇㈠嚭閿欑殑鏃跺�欎細鎶涘嚭寮傚父
-	 */
-	@Override
-	public boolean checkTableHasDataById(String id) throws VciBaseException {
-		return checkTableHasDataByTableName(getTableNameByBtmTypeId(id));
-	}
 
 	/**
 	 * 鎵归噺灏嗕笟鍔$被鍨嬪垱寤烘暟鎹簱琛�
@@ -253,6 +186,26 @@
 	}
 
 	/**
+	 * 鍒涘缓閾炬帴绫诲瀷鐨勮〃鏍�
+	 *
+	 * @param linkTypeVO 閾炬帴绫诲瀷鐨勬樉绀哄璞�
+	 * @throws VciBaseException 鎵ц鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
+	 */
+	private void createDbTableForLink(LinkTypeVO linkTypeVO) throws VciBaseException {
+		VciBaseUtil.alertNotNull(linkTypeVO, "瑕佸垱寤鸿〃鏍兼墍灞炵殑涓氬姟绫诲瀷", linkTypeVO.getTableName(), "涓氬姟绫诲瀷鐨勮〃鏍煎悕绉�");
+		String tableName = linkTypeVO.getTableName();
+		if (!checkTableExistByTableName(tableName)) {
+			String attributeSql = getCreateSqlByAttributeForLink(linkTypeVO.getAttributes());
+			dllMapper.createTableBySql(tableName, attributeSql);
+			if (StringUtils.isNotBlank(linkTypeVO.getName())) {
+				dllMapper.commentTable(tableName, linkTypeVO.getName());
+			}
+			linkTypeVO.getAttributes().forEach(s -> {
+				dllMapper.commentColumnTable(tableName, s.getId(), s.getName());
+			});
+		}
+	}
+	/**
 	 * 鑾峰彇鍒涘缓鐨剆ql璇彞涓睘鎬ч儴鍒�
 	 *
 	 * @param attributeVOList 灞炴�х殑绔嬬
@@ -264,7 +217,26 @@
 		attributeVOList.forEach(a -> {
 			sb.append(a.getId()).append(StringPool.SPACE);
 			VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.forValue(a.getAttrDataType());
-			sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, a));
+			sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, a)).append(",");
+		});
+		return sb.substring(0, sb.lastIndexOf(","));
+	}
+
+	/**
+	 * 鑾峰彇鍒涘缓鐨剆ql璇彞涓睘鎬ч儴鍒�
+	 *
+	 * @param attributeVOList 灞炴�х殑绔嬬
+	 * @return sql璇彞
+	 */
+	@Override
+	public String getCreateSqlByAttributeForLink(List<LinkTypeAttributeVO> attributeVOList) {
+		StringBuilder sb = new StringBuilder();
+		attributeVOList.forEach(a -> {
+			BtmTypeAttributeVO attributeVO = Optional.ofNullable(BeanUtil.copy(a, BtmTypeAttributeVO.class)).orElseGet(BtmTypeAttributeVO::new);
+			attributeVO.setPkBtmType(a.getPkLinkType());
+			sb.append(a.getId()).append(StringPool.SPACE);
+			VciFieldTypeEnum fieldTypeEnum = VciFieldTypeEnum.forValue(a.getAttrDataType());
+			sb.append(dllMapper.getColumnTypeSql(fieldTypeEnum, attributeVO)).append(",");
 		});
 		return sb.substring(0, sb.lastIndexOf(","));
 	}
@@ -278,19 +250,10 @@
 	@Override
 	public void createDbTablesById(String ids) throws VciBaseException {
 		VciBaseUtil.alertNotNull(ids, "涓氬姟绫诲瀷/閾炬帴绫诲瀷鐨勮嫳鏂囬泦鍚�");
-		List<BtmTypeVO> btmTypeVOList = BtmTypeCache.selectByIdCollection(VciBaseUtil.str2List(ids));
-//		List<OsLinkTypeVO> linkTypeVOList = linkTypeService.listLinkTypeByIdCollection(VciBaseUtil.str2List(ids));
-		if (!CollectionUtils.isEmpty(btmTypeVOList)) {
-			//璇存槑鏄笟鍔$被鍨�
-			btmTypeVOList.forEach(this::createDbTableForBtm);
-		}
-		/*//璇曡瘯閾炬帴绫诲瀷
-		if(!CollectionUtils.isEmpty(linkTypeVOList)){
-			//鐨勭‘鏄摼鎺ョ被鍨�
-			linkTypeVOList.stream().forEach( s -> {
-				createDbTableForLink(s);
-			});
-		}*/
+		// 涓氬姟绫诲瀷
+		Func.toStrList(",",ids).stream().filter(idBtmMap::containsKey).map(idBtmMap::get).forEach(this::createDbTableForBtm);
+		// 閾炬帴绫诲瀷
+		Func.toStrList(",",ids).stream().filter(idLinkMap::containsKey).map(idLinkMap::get).forEach(this::createDbTableForLink);
 	}
 
 	/**
@@ -480,16 +443,6 @@
 		ddlMapper.dropTableColumn(tableName, columnName);
 	}
 
-	/**
-	 * 鏍¢獙涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑瀵瑰簲鐨勮〃鏍兼槸鍚﹀瓨鍦�
-	 *
-	 * @param pkBtmType 涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑琛ㄦ牸
-	 * @return true琛ㄧず瀛樺湪锛宖alse琛ㄧず涓嶅瓨鍦�
-	 */
-	@Override
-	public boolean checkTableExist(String pkBtmType) {
-		return checkTableExistByTableName(getTableNameByBtmTypeOid(pkBtmType));
-	}
 
 	/**
 	 * 鏍规嵁琛ㄦ牸鐨勫悕绉板垽鏂〃鏍兼槸鍚﹀瓨鍦�
@@ -502,16 +455,6 @@
 		return ddlMapper.checkTableExist(tableName) > 0;
 	}
 
-	/**
-	 * 鏍¢獙涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬫墍瀵瑰簲鐨勮〃鏍兼槸鍚﹀瓨鍦�
-	 *
-	 * @param id 涓氬姟绫诲瀷鎴栬�呴摼鎺ョ被鍨嬬殑鑻辨枃鍚嶇О
-	 * @return true琛ㄧず瀛樺湪锛宖alse琛ㄧず涓嶅瓨鍦�
-	 */
-	@Override
-	public boolean checkTableExistById(String id) {
-		return checkTableExistByTableName(getTableNameByBtmTypeId(id));
-	}
 
 	/**
 	 * 鑾峰彇鏁版嵁搴撳拰涓氬姟绫诲瀷涓殑涓嶅悓鐨勫湴鏂�
@@ -532,7 +475,7 @@
 		if (!CollectionUtils.isEmpty(linkTypeVOList)) {
 			modifyAttributeInfoList.addAll(checkLinkType(linkTypeVOList));
 		}
-		if (CollectionUtils.isEmpty(modifyAttributeInfoList)) {
+		if (!CollectionUtils.isEmpty(modifyAttributeInfoList)) {
 			reflexDifferent(modifyAttributeInfoList, btmTypeVOList, linkTypeVOList);
 		}
 		return modifyAttributeInfoList;
@@ -628,6 +571,7 @@
 					modifyAttributeInfo.setBeforeModifyAttributes(String.join(",", beforeList));
 				}
 			}
+			modifyAttributeInfoDOList.add(modifyAttributeInfo);
 		});
 		return modifyAttributeInfoDOList;
 	}
@@ -729,6 +673,7 @@
 					}
 
 				}
+				modifyAttributeInfoDOList.add(modifyAttributeInfo);
 		});
 		return modifyAttributeInfoDOList;
 	}
@@ -807,8 +752,8 @@
 	@Override
 	public void reflexDifferent(List<ModifyAttributeInfo> differentAttributeList, List<BtmTypeVO> btmTypeVOList, List<LinkTypeVO> linkTypeVOList) throws VciBaseException {
 		VciBaseUtil.alertNotNull(differentAttributeList, "瑕佹竻鐞嗙殑鏁版嵁搴撶殑淇℃伅涓虹┖");
-		Map<String, BtmTypeVO> idBtmTypeMap = btmTypeVOList.stream().collect(Collectors.toMap(BtmTypeVO::getId, t -> t, (o1, o2) -> o1));
-		Map<String, LinkTypeVO> idLinkTypeMap = linkTypeVOList.stream().collect(Collectors.toMap(LinkTypeVO::getId, t -> t, (o1, o2) -> o1));
+		Map<String, BtmTypeVO> idBtmTypeMap = Optional.ofNullable(btmTypeVOList).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(BtmTypeVO::getId, t -> t, (o1, o2) -> o1));
+		Map<String, LinkTypeVO> idLinkTypeMap = Optional.ofNullable(linkTypeVOList).orElseGet(ArrayList::new).stream().collect(Collectors.toMap(LinkTypeVO::getId, t -> t, (o1, o2) -> o1));
 		differentAttributeList.forEach(s -> {
 //			BtmTypeVO btmType = idBtmTypeMap.get(id);
 			if (ModifyTableTaskEnum.CREATE.getValue().equalsIgnoreCase(s.getTaskName())) {
@@ -1031,7 +976,7 @@
 	 * @return 鎵ц缁撴灉
 	 */
 	@Override
-	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) {
+	public R<List<ModifyAttributeInfo>> submit(BtmAndLinkTypeDdlDTO ddlDTO) throws Throwable {
 		try {
 			List<ModifyAttributeInfo> changedList = new ArrayList<>();
 			if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
@@ -1046,11 +991,23 @@
 				changedList.addAll(checkDifferent(null,linkTypeList));
 				removeLink(linkTypeList.toArray(new LinkTypeVO[0]));
 			}
-			R<List<ModifyAttributeInfo>> result = R.success("鏁版嵁搴撴搷浣滄垚鍔�");
+			String msg = changedList.isEmpty() ? "鏁版嵁搴撴搷浣滄垚鍔�" : changedList.get(0).getHandleResult();
+			R<List<ModifyAttributeInfo>> result = R.success(msg);
 			result.setData(changedList);
 			return result;
-		} catch (ServiceException e) {
-			throw new RuntimeException(e.getMessage());
+		} catch (Exception e) {
+			try {
+				// 寤鸿〃澶辫触鏈夊紓甯革紝鎹曡幏鍚庤繑鍥烇紝骞堕噴鏀剧嚎绋嬩腑鐨勫唴瀹�
+				if (!CollectionUtils.isEmpty(ddlDTO.getBtmTypeList())) {
+					removeBtm(ddlDTO.getBtmTypeList().toArray(new BtmTypeVO[0]));
+				}
+				if (!CollectionUtils.isEmpty(ddlDTO.getLinkTypeList())) {
+					removeLink(ddlDTO.getLinkTypeList().toArray(new LinkTypeVO[0]));
+				}
+				return R.fail(e.getMessage());
+			}catch (ServiceException e2){
+				return R.fail(e.getMessage());
+			}
 		}
 	}
 
@@ -1104,21 +1061,24 @@
 			List<BtmTypeVO> btmTypeVOList = new ArrayList<>();
 			allTableBO.forEach(table -> {
 				BtmTypeVO vo = new BtmTypeVO();
-				vo.setTableName(table.getTableName());
+				vo.setTableName(table.getTableName().toLowerCase());
 				vo.setDescription(table.getTableDesc());
 				List<DdlTableInDataBaseBO> columns = selectTableColumnInfo(table.getTableName());
 				List<BtmTypeAttributeVO> attributes = new ArrayList<>();
 				columns.forEach(col -> {
 					BtmTypeAttributeVO attributeVO = new BtmTypeAttributeVO();
-					attributeVO.setId(col.getId());
+					attributeVO.setId(col.getId().toLowerCase());
 					attributeVO.setName(col.getName());
-					attributeVO.setNullableFlag(col.getNullableFlag());
+					attributeVO.setNullableFlag(StringUtils.equals(col.getNullableFlag(), BooleanEnum.TRUE.getValue()));
 					attributeVO.setAttributeLength(col.getAttributeLength());
 					attributeVO.setPrecisionLength(col.getPrecisionLength());
 					attributeVO.setScaleLength(col.getScaleLength());
 					VciFieldTypeEnum field = dllMapper.getFieldTypeByColumnStr(col.getAttrDataType(), col.getAttributeLength());
 					if (field != null){
 						attributeVO.setAttrDataType(field.name());
+					}
+					if(col.getPrecisionLength() != null){
+						attributeVO.setAttrDataType(VciFieldTypeEnum.VTDouble.name());
 					}
 					attributes.add(attributeVO);
 				});
@@ -1129,4 +1089,55 @@
 		}
 		return new ArrayList<>();
 	}
+
+	/**
+	 * 妫�鏌ユ暟鎹〃鏄惁瀛樺湪鏁版嵁锛屼笉瀛樺湪鍒欏垹闄�
+	 *
+	 * @param tableCheckDTOList 闇�瑕佹鏌ョ殑琛ㄩ泦鍚�
+	 * @return 妫�鏌ョ粨鏋�
+	 */
+	@Override
+	public TableCheckResultDTO checkTableHasDataThenDelete(List<TableCheckDTO> tableCheckDTOList) {
+		TableCheckResultDTO resultDTO = new TableCheckResultDTO();
+		List<TableCheckDTO> successList = new ArrayList<>();
+		List<TableCheckDTO> failList = new ArrayList<>();
+		tableCheckDTOList.forEach(table -> {
+			VciBaseUtil.alertNotNull(table.getTableName(),"鏁版嵁琛ㄥ悕绉�");
+			TableCheckDTO checkDTO = new TableCheckDTO();
+			boolean hasDataFlag = checkTableHasDataByTableName(table.getTableName());
+			if (hasDataFlag){
+				table.setDone(false);
+				failList.add(checkDTO);
+			}else {
+				dropTableByName(table.getTableName());
+				table.setDone(true);
+				successList.add(table);
+			}
+		});
+		if (!CollectionUtils.isEmpty(successList)){
+			resultDTO.setSuccessList(successList);
+		}
+		if (!CollectionUtils.isEmpty(failList)){
+			resultDTO.setFailList(failList);
+		}
+		return resultDTO;
+	}
+
+	/**
+	 * 涓鸿〃娣诲姞瀛楁
+	 *
+	 * @param addColumnDTO 娣诲姞鐨勫璞�
+	 * @return 鎵ц缁撴灉鏍囪瘑
+	 */
+	@Override
+	public Boolean addColumnForTable(TableAddColumnDTO addColumnDTO) {
+		VciBaseUtil.alertNotNull(addColumnDTO,"娣诲姞瀛楁鐨勫璞�");
+		if (!CollectionUtils.isEmpty(addColumnDTO.getLinkTypeAttributeVOList())){
+			addColumn2TableForLink(addColumnDTO.getLinkTypeAttributeVOList());
+		}
+		if(!CollectionUtils.isEmpty(addColumnDTO.getBtmTypeAttributeVOList())){
+			addColumn2TableForBtm(addColumnDTO.getBtmTypeAttributeVOList());
+		}
+		return true;
+	}
 }

--
Gitblit v1.9.3