Browse Source

页面sql解析 优化

master
xueyinfei 4 weeks ago
parent
commit
900a3a80cd
  1. 13
      src/main/java/com/guozhi/bloodanalysis/parser/utils/KColumnProvider.java
  2. 8
      src/main/resources/mapper/MetaBloodAnalysisMapper.xml
  3. 4
      src/main/resources/mapper/TableAndColumnsMapper.xml

13
src/main/java/com/guozhi/bloodanalysis/parser/utils/KColumnProvider.java

@ -34,16 +34,21 @@ public class KColumnProvider {
return table.getColumns(); return table.getColumns();
}else { }else {
String[] arr = tableName.split("\\."); String[] arr = tableName.split("\\.");
List<Map<String,String>> colList = metaBloodAnalysisMapper.getColumnsByTable(arr[arr.length-1], vt.db,vt.schema); List<Map<String,String>> colList;
if(vt != null && vt.db != null && vt.schema != null ){
colList = metaBloodAnalysisMapper.getColumnsByTable(arr[arr.length-1], vt.db,vt.schema);
}else{
colList = metaBloodAnalysisMapper.getColumnsByTable(arr[arr.length-1], context.getDefaultDb(), context.getDefaultSchema());
}
if(colList.size()>0){ if(colList.size()>0){
List<KColumn> cols = new ArrayList<KColumn>(); List<KColumn> cols = new ArrayList<>();
for (Map<String, String> colMap : colList) { for (Map<String, String> colMap : colList) {
KColumn col = new KColumn(); KColumn col = new KColumn();
// col.columnPrefix = vt.alias; // col.columnPrefix = vt.alias;
col.columnName = colMap.get("colCode"); col.columnName = colMap.get("colCode");
col.alias = col.columnName; col.alias = col.columnName;
col.db = vt.db; col.db = context.getDefaultDb();
col.schema = vt.schema; col.schema = context.getDefaultSchema();
col.tableName = tableName; col.tableName = tableName;
col.isEvTable = true; col.isEvTable = true;
cols.add(col); cols.add(col);

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

@ -29,25 +29,25 @@
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, 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 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_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name left join t_metadata_extract_info b on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name
where a.ssys_id = #{db} and a.mdl_name = #{schema} and a.tab_eng_name = #{tableCode} and a.fld_eng_name = #{columnName} where a.ssys_id = #{db} and UPPER(a.mdl_name) = UPPER(#{schema}) and UPPER(a.tab_eng_name) = UPPER(#{tableCode}) and UPPER(a.fld_eng_name) = UPPER(#{columnName})
</select> </select>
<select id="getColumnsByTabId" resultType="java.util.Map"> <select id="getColumnsByTabId" resultType="java.util.Map">
select a.fld_eng_name as colCode, a.fld_cn_name as colName,a.fld_no as fldNo from t_metadata_fld_tab_extract_info a select a.fld_eng_name as colCode, a.fld_cn_name as colName,a.fld_no as fldNo from t_metadata_fld_tab_extract_info a
left join t_metadata_extract_info b on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name left join t_metadata_extract_info b on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name
where b.onum = #{tableId} where b.onum = #{tableId}
<if test="colCode != null and colCode !=''"> <if test="colCode != null and colCode !=''">
and a.fld_eng_name = #{colCode} and UPPER(a.fld_eng_name) = UPPER(#{colCode})
</if> </if>
order by a.fld_no order by a.fld_no
</select> </select>
<select id="getColumnsByTable" resultType="java.util.Map"> <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 select fld_eng_name as colCode, fld_cn_name as colName,fld_no as fldNo from t_metadata_fld_tab_extract_info
where ssys_id =#{ssysId} and mdl_name = #{mdlName} and tab_eng_name = #{tableName} where ssys_id =#{ssysId} and UPPER(mdl_name) = UPPER(#{mdlName}) and UPPER(tab_eng_name) = UPPER(#{tableName})
order by fld_no order by fld_no
</select> </select>
<select id="getSystem" resultType="java.util.Map"> <select id="getSystem" resultType="java.util.Map">
select ssys_id as SYS_ID, mdl_name as SCH_CODE, mdl_name as SCH_NAME, tab_eng_name as TAB_CODE, tab_cn_name as TAB_NAME, onum as TAB_ID from t_metadata_extract_info where mdl_name = #{schema} and tab_eng_name = #{tableCode} select ssys_id as SYS_ID, mdl_name as SCH_CODE, mdl_name as SCH_NAME, tab_eng_name as TAB_CODE, tab_cn_name as TAB_NAME, onum as TAB_ID from t_metadata_extract_info where UPPER(mdl_name) = UPPER(#{schema}) and UPPER(tab_eng_name) = UPPER(#{tableCode})
</select> </select>
<delete id="deleteAllBloodData"> <delete id="deleteAllBloodData">
delete from meta_blood_analysis delete from meta_blood_analysis

4
src/main/resources/mapper/TableAndColumnsMapper.xml

@ -14,7 +14,7 @@
from t_metadata_fld_tab_extract_info a from t_metadata_fld_tab_extract_info a
left join t_metadata_fld_supp_info b left join t_metadata_fld_supp_info b
on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name and a.fld_eng_name = b.fld_eng_name on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name and a.fld_eng_name = b.fld_eng_name
where a.ssys_id = #{ssysId} and a.mdl_name = #{mdlName} and a.tab_eng_name = #{tableName} where a.ssys_id = #{ssysId} and UPPER(a.mdl_name) = UPPER(#{mdlName}) and UPPER(a.tab_eng_name) = UPPER(#{tableName})
order by a.fld_no order by a.fld_no
</select> </select>
<select id="getTableNameByTable" resultType="java.lang.String"> <select id="getTableNameByTable" resultType="java.lang.String">
@ -22,6 +22,6 @@
from t_metadata_extract_info a from t_metadata_extract_info a
left join t_metadata_supp_info b left join t_metadata_supp_info b
on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name on a.ssys_id = b.ssys_id and a.mdl_name = b.mdl_name and a.tab_eng_name = b.tab_eng_name
where a.ssys_id = #{ssysId} and a.mdl_name = #{mdlName} and a.tab_eng_name = #{tableName} where a.ssys_id = #{ssysId} and UPPER(a.mdl_name) = UPPER(#{mdlName}) and UPPER(a.tab_eng_name) = UPPER(#{tableName})
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save