From 29d2aabc6a07be091d7b52ba51e12a6baf16f7ac Mon Sep 17 00:00:00 2001 From: fujunling <2984387807@qq.com> Date: 星期二, 06 六月 2023 17:40:18 +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