From b1b6f3725d5abd7d366289c94bf8d71eb9180043 Mon Sep 17 00:00:00 2001
From: mamc <1428594221@qq.com>
Date: 星期三, 28 六月 2023 14:43:20 +0800
Subject: [PATCH] 默认参照列表接口修改
---
Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java | 64 ++++++++++++++++++++++++--------
1 files changed, 48 insertions(+), 16 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 3a8e185..cc39322 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
@@ -185,6 +185,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 灞炴�х殑绔嬬
@@ -196,7 +216,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(","));
}
@@ -210,19 +249,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);
}
/**
@@ -540,6 +570,7 @@
modifyAttributeInfo.setBeforeModifyAttributes(String.join(",", beforeList));
}
}
+ modifyAttributeInfoDOList.add(modifyAttributeInfo);
});
return modifyAttributeInfoDOList;
}
@@ -641,6 +672,7 @@
}
}
+ modifyAttributeInfoDOList.add(modifyAttributeInfo);
});
return modifyAttributeInfoDOList;
}
@@ -719,8 +751,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())) {
--
Gitblit v1.9.3