Browse Source

修改系统代码为系统id进行处理

master
xueyinfei 3 weeks ago
parent
commit
720ecfd521
  1. 2
      src/main/java/com/guozhi/bloodanalysis/entity/DataLineageInfo.java
  2. 4
      src/main/java/com/guozhi/bloodanalysis/entity/MetaBloodAnalysis.java
  3. 2
      src/main/java/com/guozhi/bloodanalysis/entity/MetaColumn.java
  4. 4
      src/main/java/com/guozhi/bloodanalysis/mapper/MetaBloodAnalysisMapper.java
  5. 8
      src/main/java/com/guozhi/bloodanalysis/parser/SqlParser.java
  6. 6
      src/main/java/com/guozhi/bloodanalysis/parser/common/ParserContext.java
  7. 8
      src/main/java/com/guozhi/bloodanalysis/parser/utils/ExportParseResultUtil.java
  8. 6
      src/main/java/com/guozhi/bloodanalysis/parser/utils/KDatabaseProvider.java
  9. 10
      src/main/java/com/guozhi/bloodanalysis/parser/vo/KColumn.java
  10. 2
      src/main/java/com/guozhi/bloodanalysis/parser/vo/VTable.java
  11. 8
      src/main/java/com/guozhi/bloodanalysis/service/BloodAnalysisService.java
  12. 2
      src/main/resources/mapper/DataLineageInfoMapper.xml
  13. 12
      src/main/resources/mapper/MetaBloodAnalysisMapper.xml

2
src/main/java/com/guozhi/bloodanalysis/entity/DataLineageInfo.java

@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class DataLineageInfo {
private Integer onum;
private String ssysCd;
private Integer ssysId;
private String mdlName;
private String procName;
private String procLine;

4
src/main/java/com/guozhi/bloodanalysis/entity/MetaBloodAnalysis.java

@ -11,14 +11,14 @@ public class MetaBloodAnalysis {
private String id;
private Integer proId;
private String proName;
private String targetSysCd;
private String targetSysId;
private String targetMdlName;
private String targetTableName;
private String targetTableCnName;
private String targetColName;
private String targetColCnName;
private String targetColType;
private String sourceSysCd;
private String sourceSysId;
private String sourceMdlName;
private String sourceTableName;
private String sourceTableCnName;

2
src/main/java/com/guozhi/bloodanalysis/entity/MetaColumn.java

@ -9,7 +9,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class MetaColumn {
private int onum;
private String ssysCd;
private String ssysId;
private String mdlName;
private String tableEngName;
private String tableCnName;

4
src/main/java/com/guozhi/bloodanalysis/mapper/MetaBloodAnalysisMapper.java

@ -13,13 +13,13 @@ public interface MetaBloodAnalysisMapper {
void insert(@Param("blood") MetaBloodAnalysis metaBloodAnalysis);
MetaColumn isColExis(@Param("db") String db, @Param("schema") String schema, @Param("tableCode") String tableCode, @Param("columnName") String columnName);
MetaColumn isColExis(@Param("db") Integer db, @Param("schema") String schema, @Param("tableCode") String tableCode, @Param("columnName") String columnName);
List<Map<String, String>> getColumnsByTabId(@Param("tableId") String tabId,@Param("colCode") String colCode);
List<Map<String, Object>> getSystem(@Param("schema") String schema, @Param("tableCode") String tableCode);
List<Map<String, String>> getColumnsByTable(@Param("tableName") String tableName, @Param("ssysCd") String defaultDb, @Param("mdlName") String defaultSchema);
List<Map<String, String>> getColumnsByTable(@Param("tableName") String tableName, @Param("ssysId") Integer defaultDb, @Param("mdlName") String defaultSchema);
void deleteAllBloodData();
}

8
src/main/java/com/guozhi/bloodanalysis/parser/SqlParser.java

@ -49,14 +49,14 @@ public class SqlParser {
@Autowired
ApplicationContext applicationContext;
public void parse(DataLineageInfo dataLineageInfo, List<Map<String, String>> databaseList) throws Exception {
public void parse(DataLineageInfo dataLineageInfo, List<Map<Integer, String>> databaseList) throws Exception {
String sqlText = "";
try {
List<String> targetSqlList = new ArrayList<>();
String dbType = "MYSQL";
if (databaseList !=null && databaseList.size()>0){
for (Map<String, String> map : databaseList) {
String type = map.get(dataLineageInfo.getSsysCd());
for (Map<Integer, String> map : databaseList) {
String type = map.get(dataLineageInfo.getSsysId());
if (type != null) {
dbType = type;
}
@ -70,7 +70,7 @@ public class SqlParser {
}
targetSqlList.add(sql);
String defaultSchema = dataLineageInfo.getMdlName();
String defaultSystem = dataLineageInfo.getSsysCd();
Integer defaultSystem = dataLineageInfo.getSsysId();
this.parserContext.setDefaultDb(defaultSystem);
this.parserContext.setDefaultSchema(defaultSchema);
int length = targetSqlList.size();

6
src/main/java/com/guozhi/bloodanalysis/parser/common/ParserContext.java

@ -21,7 +21,7 @@ public class ParserContext {
private VTable mCurrentTable;
//wxl TODO 对于存储过程可以知道归属库和schema,但对于perl、python、shell、sql脚本,就获取不到了。
private String mDefaultDb;//TODO db or sys?
private Integer mDefaultDb;//TODO db or sys?
private String mDefaultSchema;
/**
@ -90,11 +90,11 @@ public class ParserContext {
this.mCurrentTable = currentTable;
}
public String getDefaultDb() {
public Integer getDefaultDb() {
return mDefaultDb;
}
public void setDefaultDb(String defaultDb) {
public void setDefaultDb(Integer defaultDb) {
this.mDefaultDb = defaultDb;
}

8
src/main/java/com/guozhi/bloodanalysis/parser/utils/ExportParseResultUtil.java

@ -38,11 +38,11 @@ public class ExportParseResultUtil {
metaBloodAnalysis.setId(UUID.randomUUID().toString().replace("-",""));
metaBloodAnalysis.setProId(dataLineageInfo.getOnum());
metaBloodAnalysis.setProName(dataLineageInfo.getProcName());
metaBloodAnalysis.setSourceSysCd(lines[0]);
metaBloodAnalysis.setSourceSysId(lines[0]);
metaBloodAnalysis.setSourceMdlName(lines[1]);
metaBloodAnalysis.setSourceTableName(lines[2]);
metaBloodAnalysis.setSourceColName(lines[3]);
metaBloodAnalysis.setTargetSysCd(lines[4]);
metaBloodAnalysis.setTargetSysId(lines[4]);
metaBloodAnalysis.setTargetMdlName(lines[5]);
String[] arr = lines[6].split("\\.");
String targetTableName = arr[arr.length-1];
@ -103,7 +103,7 @@ public class ExportParseResultUtil {
private void addLineStr(KColumn tCol,KColumn sCol,List<String> list){
StringBuffer sb = new StringBuffer();
sb.append(StringUtils.defaultString(sCol.db,""));
sb.append(sCol.db);
sb.append(",");
sb.append(StringUtils.defaultString(sCol.schema,""));
sb.append(",");
@ -111,7 +111,7 @@ public class ExportParseResultUtil {
sb.append(",");
sb.append(StringUtils.defaultString(sCol.columnName,""));
sb.append(",");
sb.append(StringUtils.defaultString(tCol.db,""));
sb.append(tCol.db);
sb.append(",");
sb.append(StringUtils.defaultString(tCol.schema,""));
sb.append(",");

6
src/main/java/com/guozhi/bloodanalysis/parser/utils/KDatabaseProvider.java

@ -48,7 +48,7 @@ public class KDatabaseProvider {
addRealTables(vTable, sysList, schemas.get(0), context);
}else if(sysList.size()>0){
Map<String,Object> sysMap = sysList.get(0);
vTable.db = (String) sysMap.get("SYS_CODE");
vTable.db = (Integer) sysMap.get("SYS_ID");
vTable.tabId = (String) sysMap.get("TAB_ID");
KColumnProvider kColumnProvider = applicationContext.getBean(KColumnProvider.class);
vTable.addColumns(kColumnProvider.getColumns(vTable, null, context));
@ -61,11 +61,11 @@ public class KDatabaseProvider {
private void addRealTables(VTable vTable , List<Map<String, Object>> sysList,String schema, ParserContext context){
int i = 1;
for (Map<String, Object> map : sysList) {
String sysCode = (String)map.get("SYS_CODE");
Integer sysId = (Integer)map.get("SYS_ID");
String schCode = (String)map.get("SCH_CODE");
String tabCode = (String)map.get("TAB_CODE");
VTable vt = new VTable(tabCode);
vt.db = sysCode;
vt.db = sysId;
vt.schema = schCode;
vt.alias = "T_"+schema+"_"+(i++);
Integer tabId = (Integer) map.get("TAB_ID");

10
src/main/java/com/guozhi/bloodanalysis/parser/vo/KColumn.java

@ -6,17 +6,13 @@ package com.guozhi.bloodanalysis.parser.vo;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.*;
public class KColumn {
/**
* 数据库标识
*/
public String db;
public Integer db;
/**
* 模式Schema
*/
@ -63,7 +59,7 @@ public class KColumn {
public void addRefColumn(KColumn column) {
if(column!=null){
for(KColumn col: refColumns){
if(StringUtils.equals(col.db,column.db)&&StringUtils.equals(col.schema,column.schema)
if(Objects.equals(col.db, column.db) &&StringUtils.equals(col.schema,column.schema)
&&StringUtils.equals(col.tableName,column.tableName)
&&StringUtils.equals(col.columnName,column.columnName)
&& StringUtils.equals(col.columnPrefix,column.columnPrefix)){

2
src/main/java/com/guozhi/bloodanalysis/parser/vo/VTable.java

@ -15,7 +15,7 @@ public class VTable {
/**
* 数据库标识
*/
public String db;
public Integer db;
/**
* 数据库Schema
*/

8
src/main/java/com/guozhi/bloodanalysis/service/BloodAnalysisService.java

@ -72,12 +72,12 @@ public class BloodAnalysisService {
JSONObject obj = JSON.parseObject(responseStr);
JSONObject data = obj.getJSONObject("data");
JSONArray totalList = data.getJSONArray("totalList");
List<Map<String,String>> list = new ArrayList<>();
List<Map<Integer,String>> list = new ArrayList<>();
if (totalList !=null && totalList.size()>0){
for (int i = 0; i < totalList.size(); i++) {
JSONObject database = totalList.getJSONObject(i);
Map<String,String> map = new HashMap<>();
map.put(database.getString("name"),database.getString("type"));
Map<Integer,String> map = new HashMap<>();
map.put(database.getInteger("id"),database.getString("type"));
list.add(map);
}
mapper.deleteAllBloodData();
@ -92,7 +92,7 @@ public class BloodAnalysisService {
}
}
public void parse(Integer pageNum, Integer pageSize, List<Map<String,String>> databaseList) throws Exception {
public void parse(Integer pageNum, Integer pageSize, List<Map<Integer,String>> databaseList) throws Exception {
PageHelper.startPage(pageNum,pageSize);
List<DataLineageInfo> list = dataLineageInfoMapper.search();
if (list != null && list.size()>0){

2
src/main/resources/mapper/DataLineageInfoMapper.xml

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.guozhi.bloodanalysis.mapper.DataLineageInfoMapper">
<select id="search" resultType="com.guozhi.bloodanalysis.entity.DataLineageInfo">
select onum, ssys_cd as ssysCd,mdl_name as mdlName,proc_name as procName,proc_line as procLine,proc_text as procText
select onum, ssys_id as ssysId,mdl_name as mdlName,proc_name as procName,proc_line as procLine,proc_text as procText
from t_metadata_data_lineage_info
</select>
</mapper>

12
src/main/resources/mapper/MetaBloodAnalysisMapper.xml

@ -3,20 +3,20 @@
<mapper namespace="com.guozhi.bloodanalysis.mapper.MetaBloodAnalysisMapper">
<insert id="insert" parameterType="com.guozhi.bloodanalysis.entity.MetaBloodAnalysis">
insert into meta_blood_analysis (id,proId,proName,
targetSysCd,targetMdlName,targetTableName,targetTableCnName,targetColName,targetColCnName,targetColType,
sourceSysCd,sourceMdlName,sourceTableName,sourceTableCnName,sourceColName,sourceColCnName,sourceColType)
targetSysId,targetMdlName,targetTableName,targetTableCnName,targetColName,targetColCnName,targetColType,
sourceSysId,sourceMdlName,sourceTableName,sourceTableCnName,sourceColName,sourceColCnName,sourceColType)
values(
#{blood.id,jdbcType=VARCHAR},
#{blood.proId,jdbcType=INTEGER},
#{blood.proName,jdbcType=VARCHAR},
#{blood.targetSysCd,jdbcType=VARCHAR},
#{blood.targetSysId,jdbcType=VARCHAR},
#{blood.targetMdlName,jdbcType=BOOLEAN},
#{blood.targetTableName,jdbcType=VARCHAR},
#{blood.targetTableCnName,jdbcType=VARCHAR},
#{blood.targetColName,jdbcType=VARCHAR},
#{blood.targetColCnName,jdbcType=VARCHAR},
#{blood.targetColType,jdbcType=VARCHAR},
#{blood.sourceSysCd,jdbcType=VARCHAR},
#{blood.sourceSysId,jdbcType=VARCHAR},
#{blood.sourceMdlName,jdbcType=BOOLEAN},
#{blood.sourceTableName,jdbcType=VARCHAR},
#{blood.sourceTableCnName,jdbcType=VARCHAR},
@ -26,7 +26,7 @@
)
</insert>
<select id="isColExis" resultType="com.guozhi.bloodanalysis.entity.MetaColumn">
select a.onum as onum,a.ssys_cd as ssysCd,a.mdl_name as mdlName,a.tab_eng_name as tabEngName, b.tab_cn_name as tabCnName,
select a.onum as onum,a.ssys_id as ssysId,a.mdl_name as mdlName,a.tab_eng_name as tabEngName, b.tab_cn_name as tabCnName,
a.fld_eng_name as fldEngName,a.fld_cn_name as fldCnName from t_metadata_fld_tab_extract_info a
left join t_metadata_extract_info b on a.ssys_cd = b.ssys_cd and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name
where a.ssys_cd = #{db} and a.mdl_name = #{schema} and a.tab_eng_name = #{tableCode} and a.fld_eng_name = #{columnName}
@ -42,7 +42,7 @@
</select>
<select id="getColumnsByTable" resultType="java.util.Map">
select fld_eng_name as colCode, fld_cn_name as colName,fld_no as fldNo from t_metadata_fld_tab_extract_info a
where ssys_cd =#{ssysCd} and mdl_name = #{mdlName} and tab_eng_name = #{tableName}
where ssys_cd =#{ssysId} and mdl_name = #{mdlName} and tab_eng_name = #{tableName}
order by fld_no
</select>

Loading…
Cancel
Save