From cb4df5a1c9cda76e828fa202990df33be0735105 Mon Sep 17 00:00:00 2001 From: 许鹏程 <1821349743@qq.com> Date: 星期四, 29 六月 2023 09:32:34 +0800 Subject: [PATCH] poi、easyexcel、poi-tl升级 ,合并空调中的报表、数据源模块 --- src/main/java/com/product/server/report/service/ReportDatasourceService.java | 88 ++++++++++++++++++++++--------------------- 1 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/product/server/report/service/ReportDatasourceService.java b/src/main/java/com/product/server/report/service/ReportDatasourceService.java index 88c2149..3c0490e 100644 --- a/src/main/java/com/product/server/report/service/ReportDatasourceService.java +++ b/src/main/java/com/product/server/report/service/ReportDatasourceService.java @@ -1,18 +1,16 @@ package com.product.server.report.service; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; +import java.sql.*; import java.util.*; +import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import com.product.core.entity.RequestParameterEntity; import com.product.core.service.support.QueryFilterService; +import com.product.server.report.util.QuerySqlParseUtil; import com.product.util.BaseUtil; import com.product.util.CallBack; import org.springframework.beans.factory.annotation.Autowired; @@ -148,7 +146,7 @@ /** * sql瑙f瀽涓庨獙璇� * - * @param sqlText + * @param fse * @return */ public DataTableEntity sqlVerify(FieldSetEntity fse) throws SQLException { @@ -266,47 +264,51 @@ sql = sql.replace(ternaryOperator, ""); } } - sql = sql.replaceAll("\\[\\[((?!\\[).)+\\]\\]", ""); + sql = sql.replaceAll("\\[\\[((?!\\[).)+\\]\\]", "") + .replaceAll("and\\s+1\\s*=\\s*1", "") + .replaceAll("\\{=.+=\\}", "") + .replaceAll("(\\t*\\n){2,}", "\n"); + sql = QuerySqlParseUtil.parseSplitTableSql(baseDao, sql, true); + SpringMVCContextHolder.getSystemLogger().info(sql); //涓庢暟鎹簱鐨勮繛鎺� - PreparedStatement ps = null; - Connection con = null; - con = ConnectionManager.getConnection(); - sql = sql.replaceAll("and\\s+1\\s*=\\s*1", ""); - ps = con.prepareStatement(sql); - //缁撴灉闆嗗厓鏁版嵁 - ResultSetMetaData rsmd = ps.getMetaData(); - //琛ㄥ垪鏁� - int size = rsmd.getColumnCount(); - Set<String> fieldNameSet = Sets.newHashSet(); - for (int i = 1; i <= size; i++) { - FieldSetEntity fieldSetEntity = new FieldSetEntity(); - FieldMetaEntity f = new FieldMetaEntity(); - f.setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATAMODEL_FIELD}); - fieldSetEntity.setMeta(f); - fieldSetEntity.setValue(CmnConst.TABLE_NAME, rsmd.getTableName(i));//鑾峰彇琛ㄥ悕 - //瀛楁鍚嶆垨鍒悕 - fieldSetEntity.setValue(CmnConst.FIELD_NAME, rsmd.getColumnLabel(i)); - //瀛楁绫诲瀷 - fieldSetEntity.setValue(CmnConst.FIELD_FORMAT, "string"); - // 鏌ヨ绫诲瀷 - fieldSetEntity.setValue(CmnConst.SEARCH_TYPE, -1); - //鑾峰彇鎸囧畾鍒楃殑鎸囧畾鍒楀ぇ灏� + try (Connection con = ConnectionManager.getConnection(); + PreparedStatement ps = con.prepareStatement(sql); + ResultSet rs = ps.executeQuery()) { + //缁撴灉闆嗗厓鏁版嵁 + ResultSetMetaData rsmd = rs.getMetaData(); + //琛ㄥ垪鏁� + int size = rsmd.getColumnCount(); + Set<String> fieldNameSet = Sets.newHashSet(); + for (int i = 1; i <= size; i++) { + FieldSetEntity fieldSetEntity = new FieldSetEntity(); + FieldMetaEntity f = new FieldMetaEntity(); + f.setTableName(new Object[]{CmnConst.PRODUCT_SYS_DATAMODEL_FIELD}); + fieldSetEntity.setMeta(f); + fieldSetEntity.setValue(CmnConst.TABLE_NAME, rsmd.getTableName(i));//鑾峰彇琛ㄥ悕 + //瀛楁鍚嶆垨鍒悕 + fieldSetEntity.setValue(CmnConst.FIELD_NAME, rsmd.getColumnLabel(i)); + //瀛楁绫诲瀷 + fieldSetEntity.setValue(CmnConst.FIELD_FORMAT, "string"); + // 鏌ヨ绫诲瀷 + fieldSetEntity.setValue(CmnConst.SEARCH_TYPE, -1); + //鑾峰彇鎸囧畾鍒楃殑鎸囧畾鍒楀ぇ灏� // fieldSetEntity.setValue(CmnConst.FIELD_LENGTH, rsmd.getPrecision(i)); - dataTableEntity.addFieldSetEntity(fieldSetEntity); - fieldNameSet.add(fieldSetEntity.getString(CmnConst.FIELD_NAME)); - } - for (String columnName : customColumnName) { - if (fieldNameSet.contains(columnName)) { - continue; + dataTableEntity.addFieldSetEntity(fieldSetEntity); + fieldNameSet.add(fieldSetEntity.getString(CmnConst.FIELD_NAME)); } - FieldSetEntity fs = new FieldSetEntity(); - fs.setTableName(CmnConst.PRODUCT_SYS_DATAMODEL_FIELD); - fs.setValue(CmnConst.FIELD_NAME, columnName); - fs.setValue(CmnConst.FIELD_FORMAT, "string"); - fs.setValue(CmnConst.SEARCH_TYPE, -1); - dataTableEntity.addFieldSetEntity(fs); + for (String columnName : customColumnName) { + if (fieldNameSet.contains(columnName)) { + continue; + } + FieldSetEntity fs = new FieldSetEntity(); + fs.setTableName(CmnConst.PRODUCT_SYS_DATAMODEL_FIELD); + fs.setValue(CmnConst.FIELD_NAME, columnName); + fs.setValue(CmnConst.FIELD_FORMAT, "string"); + fs.setValue(CmnConst.SEARCH_TYPE, -1); + dataTableEntity.addFieldSetEntity(fs); + } + return dataTableEntity; } - return dataTableEntity; } /** -- Gitblit v1.9.2