Source/UBCS/ubcs-service/ubcs-ddl/pom.xml
@@ -33,7 +33,7 @@ <artifactId>ubcs-util-api</artifactId> <version>3.0.1.RELEASE</version> </dependency> <dependency> <!--<dependency> <groupId>com.vci</groupId> <artifactId>vci-starter-word</artifactId> <version>1.0-SNAPSHOT</version> @@ -43,7 +43,7 @@ <artifactId>vci-starter-web</artifactId> </exclusion> </exclusions> </dependency> </dependency>--> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-starter-swagger</artifactId> Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/controller/DdlController.java
@@ -67,7 +67,7 @@ @GetMapping("/getAllTableInfo") @ApiOperation(value = "获取所有的表信息") @ApiOperationSupport(order = 4) public R<List<DdlTableBO>> getAllTableInfo(){ public R<List<BtmTypeVO>> getAllTableInfo(){ return R.data(ddlService.getAllTableInfo()); } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMapperProcessor.java
@@ -7,12 +7,14 @@ import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.apache.commons.collections4.BidiMap; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.bidimap.DualHashBidiMap; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.StringPool; import org.springblade.core.tool.utils.StringUtil; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** @@ -145,4 +147,27 @@ } public abstract VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr,Integer length); protected final VciFieldTypeEnum getFieldTypeBeColumnStrInMap(String columnStr,Integer length,BidiMap<VciFieldTypeEnum, DdlFieldMappingAttrBO> map){ List<VciFieldTypeEnum> fieldTypes = listFieldInMapByColumnStr(columnStr, map); VciFieldTypeEnum finalField = null; int i = Integer.MAX_VALUE; if (CollectionUtils.isEmpty(fieldTypes)){ return null; } if (fieldTypes.size() == 1){ return fieldTypes.get(0); } for (VciFieldTypeEnum fieldType : fieldTypes) { DdlFieldMappingAttrBO bo = map.get(fieldType); int i1 = Math.abs(bo.getDataLength() - length); if (i1 < i){ finalField = fieldType; i = i1; } } return finalField; } } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMsMapperProcessor.java
@@ -50,5 +50,8 @@ return "oracle.jdbc.OracleDiver".equals(url); } @Override public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) { return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP); } } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllMySqlMapperProcessor.java
@@ -70,4 +70,9 @@ return listFieldInMapByColumnStr(columnStr,FIELD_MAP); } @Override public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) { return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP); } } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllOracleMapperProcessor.java
@@ -8,6 +8,8 @@ import org.apache.commons.collections4.BidiMap; import org.springframework.stereotype.Component; import java.util.List; /** * Description: @@ -39,6 +41,11 @@ } @Override public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) { return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP); } @Override public boolean support(String url) { return "oracle.jdbc.OracleDiver".equals(url); } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/processor/dll/DllSqlLiteMapperProcessor.java
@@ -65,4 +65,9 @@ public List<VciFieldTypeEnum> listFieldByColumnStr(String columnStr) { return listFieldInMapByColumnStr(columnStr,FIELD_MAP); } @Override public VciFieldTypeEnum getFieldTypeByColumnStr(String columnStr, Integer length) { return getFieldTypeBeColumnStrInMap(columnStr,length,FIELD_MAP); } } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/IDdlService.java
@@ -1,6 +1,5 @@ package com.vci.ubcs.ddl.service; import com.vci.starter.word.bo.WordMergeStartTableDataBO; import com.vci.ubcs.ddl.bo.DdlTableBO; import com.vci.ubcs.omd.dto.BtmAndLinkTypeDdlDTO; import com.vci.ubcs.omd.dto.BtmTypeDTO; @@ -217,8 +216,8 @@ * 拷贝数据到word模板中 * @param tableDataBO 要写入的数据 * @return word 文件路径 */ String writeDataToWord(WordMergeStartTableDataBO tableDataBO); *//* String writeDataToWord(WordMergeStartTableDataBO tableDataBO);*/ /** * 判断是否为兼容性的表,这些表不应该被创建和修改 @@ -246,5 +245,5 @@ * 获取所有表信息 * @return 表信息集合 */ List<DdlTableBO> getAllTableInfo(); List<BtmTypeVO> getAllTableInfo(); } Source/UBCS/ubcs-service/ubcs-ddl/src/main/java/com/vci/ubcs/ddl/service/impl/DdlServiceImpl.java
@@ -1,8 +1,8 @@ package com.vci.ubcs.ddl.service.impl; import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.nacos.shaded.com.google.protobuf.ServiceException; import com.vci.starter.word.bo.WordMergeStartTableDataBO; import com.vci.ubcs.ddl.bo.DdlTableBO; import com.vci.ubcs.ddl.bo.DdlTableInDataBaseBO; import com.vci.ubcs.ddl.enums.BusinessTypeEnum; @@ -11,7 +11,6 @@ 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.DdlExportWordFieldProperties; import com.vci.ubcs.ddl.properties.DdlPropertise; import com.vci.ubcs.ddl.service.IDdlService; import com.vci.ubcs.omd.cache.BtmTypeCache; @@ -24,7 +23,6 @@ import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum; import com.vci.ubcs.starter.web.util.VciBaseUtil; import org.apache.commons.lang3.StringUtils; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; @@ -57,8 +55,8 @@ /** * word导出的时候的域字段映射 */ @Autowired private DdlExportWordFieldProperties wordFieldProperties; // @Autowired // private DdlExportWordFieldProperties wordFieldProperties; /** * ddl数据操作服务 @@ -1008,11 +1006,11 @@ * * @param tableDataBO 要写入的数据 * @return word 文件路径 */ *//* @Override public String writeDataToWord(WordMergeStartTableDataBO tableDataBO) { return null; } }*/ /** * 判断是否为兼容性的表,这些表不应该被创建和修改 @@ -1099,14 +1097,35 @@ * @return 表信息集合 */ @Override public List<DdlTableBO> getAllTableInfo() { public List<BtmTypeVO> getAllTableInfo() { List<String> allTableName = listAllTableName(); if (!CollectionUtils.isEmpty(allTableName)) { List<DdlTableBO> allTableBO = listTableInfoInDB(allTableName); List<BtmTypeVO> btmTypeVOList = new ArrayList<>(); allTableBO.forEach(table -> { table.setColumns(selectTableColumnInfo(table.getTableName())); BtmTypeVO vo = new BtmTypeVO(); vo.setTableName(table.getTableName()); 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.setName(col.getName()); attributeVO.setNullableFlag(col.getNullableFlag()); 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()); } attributes.add(attributeVO); }); vo.setAttributes(attributes); btmTypeVOList.add(vo); }); return allTableBO; return btmTypeVOList; } return new ArrayList<>(); }