浏览代码

1.修改了部分bug
2.添加了看板功能

heqinwei 7 年之前
父节点
当前提交
87919e2c08
共有 27 个文件被更改,包括 328 次插入146 次删除
  1. 9 1
      src/main/java/com/controller/DashboardsController.java
  2. 4 3
      src/main/java/com/dao/ChartsConfigMapper.java
  3. 13 4
      src/main/java/com/dao/DashboardsMapper.java
  4. 17 8
      src/main/java/com/dao/DataColumnMapper.java
  5. 2 2
      src/main/java/com/dao/DataConnectorMapper.java
  6. 11 0
      src/main/java/com/dao/ShowChartsMapper.java
  7. 9 0
      src/main/java/com/model/bo/DatabaseConfig.java
  8. 5 12
      src/main/java/com/model/bo/ToSql.java
  9. 10 0
      src/main/java/com/model/po/BaseConfig.java
  10. 9 0
      src/main/java/com/model/po/ChartConfigList.java
  11. 9 0
      src/main/java/com/model/po/Dashboards.java
  12. 12 7
      src/main/java/com/model/vo/configVo/DashboardsInfo.java
  13. 9 0
      src/main/java/com/server/ChartsConfigService.java
  14. 6 6
      src/main/java/com/server/ColumnScreenService.java
  15. 10 23
      src/main/java/com/server/DashboardsService.java
  16. 8 5
      src/main/java/com/server/DataBasesService.java
  17. 12 5
      src/main/java/com/server/DataConnectorService.java
  18. 3 3
      src/main/java/com/server/GetChartsDataUtilService.java
  19. 23 11
      src/main/java/com/server/ImplementSqlService.java
  20. 10 6
      src/main/java/com/server/ShowHistogramService.java
  21. 8 6
      src/main/java/com/server/ShowIndividualService.java
  22. 11 6
      src/main/java/com/server/ShowLineService.java
  23. 32 10
      src/main/java/com/server/ShowPieService.java
  24. 44 12
      src/main/java/com/server/ShowPopulationService.java
  25. 31 8
      src/main/java/com/server/ShowScatterService.java
  26. 3 3
      src/main/java/com/util/BasesSource/DynamicDataSourceRegister.java
  27. 8 5
      src/main/java/com/util/BasesSource/DynamicDattaSourceAspect.java

+ 9 - 1
src/main/java/com/controller/DashboardsController.java

@@ -1,8 +1,8 @@
 package com.controller;
 package com.controller;
 
 
-import com.server.DashboardsService;
 import com.model.pojo.RepEntity;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.DashboardsInfo;
 import com.model.vo.configVo.DashboardsInfo;
+import com.server.DashboardsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -46,4 +46,12 @@ public class DashboardsController {
     public RepEntity getListDashboards(){
     public RepEntity getListDashboards(){
         return dashboardsService.getListDashboards();
         return dashboardsService.getListDashboards();
     }
     }
+
+    /*
+    查看单个看板
+     */
+    @RequestMapping("/getDashboards")
+    public RepEntity getDashboards(@RequestBody int body){
+        return dashboardsService.getDashboards(body);
+    }
 }
 }

+ 4 - 3
src/main/java/com/dao/ChartsConfigMapper.java

@@ -14,7 +14,7 @@ public interface ChartsConfigMapper {
 
 
     @Insert("insert into bi_charts(id,CHART_NAME,CHART_TYPE,BD_DATA_ID,CHART_CONFIG,GROUP_BY,ACCESS_AUTHORITY,UPDATE_AUTHORITY,BC_CHARTS_GROUP,CHART_DESCRIBES,BC_CHART_STYLE,create_by,create_date, bc_charts_option) " +
     @Insert("insert into bi_charts(id,CHART_NAME,CHART_TYPE,BD_DATA_ID,CHART_CONFIG,GROUP_BY,ACCESS_AUTHORITY,UPDATE_AUTHORITY,BC_CHARTS_GROUP,CHART_DESCRIBES,BC_CHART_STYLE,create_by,create_date, bc_charts_option) " +
             "VALUES (#{chartId},#{chartName},#{chartType}, #{dataId}, #{chartConfig}, #{groupBy}, #{accessAuthority}, #{updateAuthority}, #{chartsGroup}," +
             "VALUES (#{chartId},#{chartName},#{chartType}, #{dataId}, #{chartConfig}, #{groupBy}, #{accessAuthority}, #{updateAuthority}, #{chartsGroup}," +
-            "#{describes},#{style}, #{createBy},to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss')), #{chartsOption}" )
+            "#{describes},#{style}, #{createBy},to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'),  #{chartOption})" )
 //    @Options(useGeneratedKeys=false, keyProperty = "chartId",keyColumn = "id")
 //    @Options(useGeneratedKeys=false, keyProperty = "chartId",keyColumn = "id")
     @SelectKey(before=true,keyProperty="chartId",resultType=Integer.class,statement="SELECT charts_squence.nextval from dual",keyColumn = "id")
     @SelectKey(before=true,keyProperty="chartId",resultType=Integer.class,statement="SELECT charts_squence.nextval from dual",keyColumn = "id")
     void insertCharts(ChartConfig chartConfig);
     void insertCharts(ChartConfig chartConfig);
@@ -30,13 +30,13 @@ public interface ChartsConfigMapper {
     void deleteCharts(List<Integer> idList);
     void deleteCharts(List<Integer> idList);
 
 
     @Select("select id as chartId, chart_name as chartName, chart_type as chartType, create_by as createBy, create_date as createDate, bc_charts_group as chartsGroup" +
     @Select("select id as chartId, chart_name as chartName, chart_type as chartType, create_by as createBy, create_date as createDate, bc_charts_group as chartsGroup" +
-            ",bc_filters as filters, BD_DATA_ID as dataId, bc_table_name as tableName, CHART_CONFIG as chartConfig, GROUP_BY as groupBy, bc_charts_option as chartsOption, " +
+            ",bc_filters as filters, BD_DATA_ID as dataId, bc_table_name as tableName, CHART_CONFIG as chartConfig, GROUP_BY as groupBy, bc_charts_option as chartOption, " +
             "ACCESS_AUTHORITY as accessAuthority, UPDATE_AUTHORITY as updateAuthority, CHART_DESCRIBES as describes, BC_CHART_STYLE as style, BC_FILTERS as filters " +
             "ACCESS_AUTHORITY as accessAuthority, UPDATE_AUTHORITY as updateAuthority, CHART_DESCRIBES as describes, BC_CHART_STYLE as style, BC_FILTERS as filters " +
             " from bi_charts where id = #{id}")
             " from bi_charts where id = #{id}")
     ChartConfig getOneChart(int id);
     ChartConfig getOneChart(int id);
 
 
     @Select("select id as chartId, chart_name as chartName, chart_type as chartType, create_by as createBy, create_date as createDate" +
     @Select("select id as chartId, chart_name as chartName, chart_type as chartType, create_by as createBy, create_date as createDate" +
-            ",bc_filters as filters, CHART_DESCRIBES as describes, bc_charts_group as chartsGroup, bc_charts_option as chartsOption from bi_charts")
+            ",bc_filters as filters, CHART_DESCRIBES as describes, bc_charts_group as chartsGroup, bc_charts_option as chartOption from bi_charts")
     List<ChartConfigList> getListCharts();
     List<ChartConfigList> getListCharts();
 
 
     /*
     /*
@@ -74,6 +74,7 @@ public interface ChartsConfigMapper {
             "<if test=\"updateAuthority != null\"> , UPDATE_AUTHORITY = #{updateAuthority} </if>" +
             "<if test=\"updateAuthority != null\"> , UPDATE_AUTHORITY = #{updateAuthority} </if>" +
             "<if test=\"style != null\"> , BC_CHART_STYLE = #{style} </if>" +
             "<if test=\"style != null\"> , BC_CHART_STYLE = #{style} </if>" +
             "<if test=\"chartsGroup !=null\">, BC_CHARTS_GROUP = #{chartsGroup}</if>"+
             "<if test=\"chartsGroup !=null\">, BC_CHARTS_GROUP = #{chartsGroup}</if>"+
+            "<if test=\"chartOption !=null\">, bc_charts_option = #{chartOption}</if>"+
             "<if test=\"updateDate != null\"> , UPDATE_DATE = to_date(#{updateDate},'YYYY-MM-DD hh24:mi:ss') </if>" +
             "<if test=\"updateDate != null\"> , UPDATE_DATE = to_date(#{updateDate},'YYYY-MM-DD hh24:mi:ss') </if>" +
             "where id = #{chartId}" +
             "where id = #{chartId}" +
             "</script>")
             "</script>")

+ 13 - 4
src/main/java/com/dao/DashboardsMapper.java

@@ -15,8 +15,9 @@ public interface DashboardsMapper {
     插入
     插入
      */
      */
     @Insert("insert into " +
     @Insert("insert into " +
-            "bi_dashboards(bd_name,bd_note,configuration,create_by,create_date)" +
-            "values(#{bdName},#{bdNote},#{bdConfiguration},#{createBy},to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss'))")
+            "bi_dashboards(id, bd_name,bd_note,CONFIGURATION,create_by,create_date, BD_THUMBNAIL)" +
+            "values(#{id}, #{bdName},#{bdNote},#{bdConfiguration},#{createBy},to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'), #{thumbnail})")
+    @SelectKey(before=true,keyProperty="id",resultType=Integer.class,statement="SELECT bi_dashboards_squence.nextval from dual",keyColumn = "id")
     void setDashboards(Dashboards dashboards);
     void setDashboards(Dashboards dashboards);
 
 
     /*
     /*
@@ -28,7 +29,8 @@ public interface DashboardsMapper {
             "<if test=\"bdNote != null\"> , BD_NOTE = #{bdNote} </if>" +
             "<if test=\"bdNote != null\"> , BD_NOTE = #{bdNote} </if>" +
             "<if test=\"bdConfiguration != null\"> , CONFIGURATION = #{bdConfiguration} </if>" +
             "<if test=\"bdConfiguration != null\"> , CONFIGURATION = #{bdConfiguration} </if>" +
             "<if test=\"createBy != null\"> , CREATE_BY = #{createBy} </if>" +
             "<if test=\"createBy != null\"> , CREATE_BY = #{createBy} </if>" +
-            "<if test=\"updateDate != null\"> , UPDATE_DATE = to_date(#{updateDate},'YYYY-MM-DD hh24:mi:ss') </if>" +
+            "<if test=\"thumbnail != null\"> , BD_THUMBNAIL = #{thumbnail} </if>" +
+            " ,UPDATE_DATE = to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss') " +
             "where id = #{id}" +
             "where id = #{id}" +
             "</script>")
             "</script>")
     void updateDashboards(Dashboards dashboards);
     void updateDashboards(Dashboards dashboards);
@@ -49,6 +51,13 @@ public interface DashboardsMapper {
     /*
     /*
     查询看板列表
     查询看板列表
      */
      */
-    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as configuration, CREATE_BY as createBy, CREATE_DATE as createDate from BI_DASHBOARDS")
+    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail from BI_DASHBOARDS")
     List<Dashboards> getListDashboards();
     List<Dashboards> getListDashboards();
+
+    /*
+    查询看板
+     */
+    @Select("select id, bd_note as bdNote, bd_name as bdName, CONFIGURATION as bdConfiguration, CREATE_BY as createBy, CREATE_DATE as createDate, BD_THUMBNAIL as thumbnail " +
+            "from BI_DASHBOARDS  where id = #{id}")
+    Dashboards getDashboards(int id);
 }
 }

+ 17 - 8
src/main/java/com/dao/DataColumnMapper.java

@@ -1,24 +1,33 @@
 package com.dao;
 package com.dao;
 
 
 
 
-import com.model.po.ColumnData;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
 
 
 @Mapper
 @Mapper
 @Repository
 @Repository
 public interface DataColumnMapper {
 public interface DataColumnMapper {
+//    /*
+//  查询列信息
+//   */
+//    @Select("select d.column_name as columnName, d.DATA_TYPE as columnType, b.comments as remarks from " +
+//            "(select column_name,DATA_TYPE from user_tab_cols where Table_Name = #{tableName}) d," +
+//            "(select * from user_col_comments where Table_Name = #{tableName}) b" +
+//            " where d.column_name = b.column_name order by columnName")
+//    List<ColumnData> getColumn(@Param("tableName") String tableName);
+
     /*
     /*
-  查询列信息
-   */
-    @Select("select d.column_name as columnName, d.DATA_TYPE as columnType, b.comments as remarks from " +
-            "(select column_name,DATA_TYPE from user_tab_cols where Table_Name = #{tableName}) d," +
-            "(select * from user_col_comments where Table_Name = #{tableName}) b" +
-            " where d.column_name = b.column_name order by columnName")
-    List<ColumnData> getColumn(@Param("tableName") String tableName);
+ 查询列信息
+  */
+    @Select("${tableName}")
+    List<LinkedHashMap<String, Object>> getColumn(@Param("tableName") String tableName);
+
+    @Select("select id from bi_databases where id = #{id}")
+    String getDbConfig(int id);
 
 
 }
 }

+ 2 - 2
src/main/java/com/dao/DataConnectorMapper.java

@@ -102,7 +102,7 @@ public interface DataConnectorMapper {
     void inputDataBases(Databases databases);
     void inputDataBases(Databases databases);
 
 
     /*
     /*
-    查询单个数据库连接ID
+    查询单个数据库连接密码
      */
      */
     @Select("select pass_word from BI_DATABASES where  id= #{id}")
     @Select("select pass_word from BI_DATABASES where  id= #{id}")
     String getBasesById(int id);
     String getBasesById(int id);
@@ -110,7 +110,7 @@ public interface DataConnectorMapper {
     /*
     /*
     查询单个数据库连接
     查询单个数据库连接
      */
      */
-    @Select("select bases_name as name, note, addrass, data_name as dataName, DATABASE_TYPE as databaseType," +
+    @Select("select id, bases_name as name, note, addrass, data_name as dataName, DATABASE_TYPE as databaseType," +
             " PASS_WORD as passWord, USER_NAME as userName, PORT, CREATE_DATE as createDate from bi_databases where id = #{id}")
             " PASS_WORD as passWord, USER_NAME as userName, PORT, CREATE_DATE as createDate from bi_databases where id = #{id}")
     DatabasesInfo getDatabases(int id);
     DatabasesInfo getDatabases(int id);
 
 

+ 11 - 0
src/main/java/com/dao/ShowChartsMapper.java

@@ -139,6 +139,17 @@ public interface ShowChartsMapper {
     List<LinkedHashMap<String, Object>> getGroupByValue(@Param("groupBy") String groupBy, @Param("operation") String operation, @Param("tableName") String tableName,
     List<LinkedHashMap<String, Object>> getGroupByValue(@Param("groupBy") String groupBy, @Param("operation") String operation, @Param("tableName") String tableName,
                                                         @Param("groupByOne") String groupByOne, @Param("screen") String screen);
                                                         @Param("groupByOne") String groupByOne, @Param("screen") String screen);
 
 
+    /*
+    总体TH值
+     */
+    @Select("select median(${columnName}) from sale where ${columnName} between " +
+            " (select ${fOperation}(${columnName}) from sale) and (select ${aOperation}(${columnName}) from ${tableName})" +
+            " group by " +
+            " ${groupBy} order by ${groupByOne}")
+    List<LinkedHashMap<String, Object>> getGroupByValueTh(@Param("groupBy") String groupBy, @Param("columnName") String columnName, @Param("tableName") String tableName,
+                                                        @Param("groupByOne") String groupByOne, @Param("screen") String screen, @Param("fOperation") String fOperation,
+                                                          @Param("aOperation") String aOperation);
+
     /*
     /*
     查询筛选列信息
     查询筛选列信息
      */
      */

+ 9 - 0
src/main/java/com/model/bo/DatabaseConfig.java

@@ -1,6 +1,7 @@
 package com.model.bo;
 package com.model.bo;
 
 
 public class DatabaseConfig {
 public class DatabaseConfig {
+    private int id;
     private String name;
     private String name;
     private String addrass;
     private String addrass;
     private String port;
     private String port;
@@ -65,6 +66,14 @@ public class DatabaseConfig {
         this.passWord = passWord;
         this.passWord = passWord;
     }
     }
 
 
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
     @Override
     @Override
     public String toString() {
     public String toString() {
         return "DatabaseConfig{" +
         return "DatabaseConfig{" +

+ 5 - 12
src/main/java/com/model/bo/ToSql.java

@@ -1,15 +1,15 @@
 package com.model.bo;
 package com.model.bo;
 
 
 public class ToSql {
 public class ToSql {
-    private String baseName;
+    private int id;
     private String strSql;
     private String strSql;
 
 
-    public String getBaseName() {
-        return baseName;
+    public int getId() {
+        return id;
     }
     }
 
 
-    public void setBaseName(String baseName) {
-        this.baseName = baseName;
+    public void setId(int id) {
+        this.id = id;
     }
     }
 
 
     public String getStrSql() {
     public String getStrSql() {
@@ -20,11 +20,4 @@ public class ToSql {
         this.strSql = strSql;
         this.strSql = strSql;
     }
     }
 
 
-    @Override
-    public String toString() {
-        return "ToSql{" +
-                "baseName='" + baseName + '\'' +
-                ", strSql='" + strSql + '\'' +
-                '}';
-    }
 }
 }

+ 10 - 0
src/main/java/com/model/po/BaseConfig.java

@@ -1,6 +1,7 @@
 package com.model.po;
 package com.model.po;
 
 
 public class BaseConfig {
 public class BaseConfig {
+    private int id;
     private String name;
     private String name;
     private String addrass;
     private String addrass;
     private String port;
     private String port;
@@ -9,6 +10,15 @@ public class BaseConfig {
     private String userName;
     private String userName;
     private String passWord;
     private String passWord;
 
 
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
     public String getName() {
     public String getName() {
         return name;
         return name;
     }
     }

+ 9 - 0
src/main/java/com/model/po/ChartConfigList.java

@@ -8,6 +8,7 @@ public class ChartConfigList {
     private int chartsGroup;
     private int chartsGroup;
     private String createBy;
     private String createBy;
     private String createDate;
     private String createDate;
+    private String chartOption;
 
 
     public int getChartsGroup() {
     public int getChartsGroup() {
         return chartsGroup;
         return chartsGroup;
@@ -65,6 +66,14 @@ public class ChartConfigList {
         this.createDate = createDate;
         this.createDate = createDate;
     }
     }
 
 
+    public String getChartOption() {
+        return chartOption;
+    }
+
+    public void setChartOption(String chartOption) {
+        this.chartOption = chartOption;
+    }
+
     @Override
     @Override
     public String toString() {
     public String toString() {
         return "ChartConfigList{" +
         return "ChartConfigList{" +

+ 9 - 0
src/main/java/com/model/po/Dashboards.java

@@ -8,10 +8,19 @@ public class Dashboards {
     private String bdName;
     private String bdName;
     private String bdNote;
     private String bdNote;
     private String bdConfiguration;
     private String bdConfiguration;
+    private String thumbnail;
     private String createBy;
     private String createBy;
     private String createDate;
     private String createDate;
     private String updateDate;
     private String updateDate;
 
 
+    public String getThumbnail() {
+        return thumbnail;
+    }
+
+    public void setThumbnail(String thumbnail) {
+        this.thumbnail = thumbnail;
+    }
+
     public int getId() {
     public int getId() {
         return id;
         return id;
     }
     }

+ 12 - 7
src/main/java/com/model/vo/configVo/DashboardsInfo.java

@@ -1,16 +1,21 @@
 package com.model.vo.configVo;
 package com.model.vo.configVo;
 
 
-import com.model.bo.Layout;
-
-import java.util.List;
-
 public class DashboardsInfo {
 public class DashboardsInfo {
     private int id;
     private int id;
     private String bdName;
     private String bdName;
     private String bdNote;
     private String bdNote;
-    private List<Layout> bdConfiguration;
+    private String bdConfiguration;
+    private String thumbnail;
     private String createBy;
     private String createBy;
 
 
+    public String getThumbnail() {
+        return thumbnail;
+    }
+
+    public void setThumbnail(String thumbnail) {
+        this.thumbnail = thumbnail;
+    }
+
     public int getId() {
     public int getId() {
         return id;
         return id;
     }
     }
@@ -35,11 +40,11 @@ public class DashboardsInfo {
         this.bdNote = bdNote;
         this.bdNote = bdNote;
     }
     }
 
 
-    public List<Layout> getBdConfiguration() {
+    public String getBdConfiguration() {
         return bdConfiguration;
         return bdConfiguration;
     }
     }
 
 
-    public void setBdConfiguration(List<Layout> bdConfiguration) {
+    public void setBdConfiguration(String bdConfiguration) {
         this.bdConfiguration = bdConfiguration;
         this.bdConfiguration = bdConfiguration;
     }
     }
 
 

+ 9 - 0
src/main/java/com/server/ChartsConfigService.java

@@ -77,6 +77,10 @@ public class ChartsConfigService {
         if (chartConfig.getChartsGroup() == 0){
         if (chartConfig.getChartsGroup() == 0){
             chartConfig.setChartsGroup(-1);
             chartConfig.setChartsGroup(-1);
         }
         }
+        if (chartConfig.getChartOption() == null ) {
+            chartConfig.setChartOption("");
+            System.out.println("=======11111==================");
+        }
 
 
         chartsConfigMapper.insertCharts(chartConfig);
         chartsConfigMapper.insertCharts(chartConfig);
         int id = chartConfig.getChartId();
         int id = chartConfig.getChartId();
@@ -133,6 +137,11 @@ public class ChartsConfigService {
         if (chartConfig.getChartsGroup() == 0){
         if (chartConfig.getChartsGroup() == 0){
             chartConfig.setChartsGroup(-1);
             chartConfig.setChartsGroup(-1);
         }
         }
+        if (chartConfig.getChartOption() == null) {
+            chartConfig.setChartOption("");
+            System.out.println("=========================");
+        }
+        System.out.println("chartOption:"+chartConfig.getChartOption());
         chartsConfigMapper.updateChartConfig(chartConfig);
         chartsConfigMapper.updateChartConfig(chartConfig);
 
 
         return new RepEntity(RepCode.success);
         return new RepEntity(RepCode.success);

+ 6 - 6
src/main/java/com/server/ColumnScreenService.java

@@ -31,16 +31,16 @@ public class ColumnScreenService {
 
 
         List<Object> data = new ArrayList<>();
         List<Object> data = new ArrayList<>();
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
             data =  showChartsMapper.getScreenData(columnScreenInfo.getColumnName(), tableName);
             data =  showChartsMapper.getScreenData(columnScreenInfo.getColumnName(), tableName);
         }catch (Exception e){
         }catch (Exception e){

+ 10 - 23
src/main/java/com/server/DashboardsService.java

@@ -1,7 +1,6 @@
 package com.server;
 package com.server;
 
 
 import com.dao.DashboardsMapper;
 import com.dao.DashboardsMapper;
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.model.po.Dashboards;
 import com.model.po.Dashboards;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepCode;
@@ -30,19 +29,11 @@ public class DashboardsService {
         Dashboards dashboards = new Dashboards();
         Dashboards dashboards = new Dashboards();
         BeanUtils.copyProperties(dashboardsInfo,dashboards);
         BeanUtils.copyProperties(dashboardsInfo,dashboards);
 
 
-        String bdConfiguration = null;
-
-        try {
-            bdConfiguration = objectMapper.writeValueAsString(dashboardsInfo.getBdConfiguration());
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
-        }
-
-        dashboards.setBdConfiguration(bdConfiguration);
-        dashboards.setCreateDate(timeUtil.SystemTime());
+//        dashboards.setCreateDate(timeUtil.SystemTime());
 
 
         dashboardsMapper.setDashboards(dashboards);
         dashboardsMapper.setDashboards(dashboards);
-        return new RepEntity(RepCode.success);
+        int id = dashboards.getId();
+        return new RepEntity(RepCode.success, id);
     }
     }
 
 
     /*
     /*
@@ -52,17 +43,6 @@ public class DashboardsService {
         Dashboards dashboards = new Dashboards();
         Dashboards dashboards = new Dashboards();
         BeanUtils.copyProperties(dashboardsInfo, dashboards);
         BeanUtils.copyProperties(dashboardsInfo, dashboards);
 
 
-        String bdConfiguration = null;
-
-        try {
-            bdConfiguration = objectMapper.writeValueAsString(dashboardsInfo.getBdConfiguration());
-        } catch (JsonProcessingException e) {
-            e.printStackTrace();
-        }
-
-        dashboards.setBdConfiguration(bdConfiguration);
-        dashboards.setUpdateDate(timeUtil.SystemTime());
-
         dashboardsMapper.updateDashboards(dashboards);
         dashboardsMapper.updateDashboards(dashboards);
         return new RepEntity(RepCode.success);
         return new RepEntity(RepCode.success);
     }
     }
@@ -81,4 +61,11 @@ public class DashboardsService {
     public RepEntity getListDashboards(){
     public RepEntity getListDashboards(){
         return new RepEntity(RepCode.success, dashboardsMapper.getListDashboards());
         return new RepEntity(RepCode.success, dashboardsMapper.getListDashboards());
     }
     }
+
+    /*
+    查看单个看板
+     */
+    public RepEntity getDashboards(int id){
+        return new RepEntity(RepCode.success, dashboardsMapper.getDashboards(id));
+    }
 }
 }

+ 8 - 5
src/main/java/com/server/DataBasesService.java

@@ -41,9 +41,6 @@ public class DataBasesService {
         if (databasesInfo == null || "".equals(databasesInfo)){
         if (databasesInfo == null || "".equals(databasesInfo)){
             return new RepEntity(RepCode.Null);
             return new RepEntity(RepCode.Null);
         }
         }
-        //添加数据源可切换
-        addDataSource(databasesInfo);
-
         Databases databases = new Databases();
         Databases databases = new Databases();
         BeanUtils.copyProperties(databasesInfo, databases);
         BeanUtils.copyProperties(databasesInfo, databases);
         databases.setCreateDate(timeUtil.SystemTime());
         databases.setCreateDate(timeUtil.SystemTime());
@@ -55,7 +52,10 @@ public class DataBasesService {
         dataConnectorMapper.inputDataBases(databases);
         dataConnectorMapper.inputDataBases(databases);
         int id = databases.getId();
         int id = databases.getId();
 
 
-        //添加进数据库连接用于切换
+        databasesInfo.setId(id);
+        //添加数据源可切换
+        addDataSource(databasesInfo);
+
         return new RepEntity(RepCode.success,id);
         return new RepEntity(RepCode.success,id);
     }
     }
 
 
@@ -98,6 +98,9 @@ public class DataBasesService {
         Databases databases = new Databases();
         Databases databases = new Databases();
         BeanUtils.copyProperties(databasesInfo, databases);
         BeanUtils.copyProperties(databasesInfo, databases);
         System.out.println(databases);
         System.out.println(databases);
+        if (databases.getPassWord() == null || "".equals(databases.getPassWord())){
+            databases.setPassWord(null);
+        }
         dataConnectorMapper.updatabases(databases);
         dataConnectorMapper.updatabases(databases);
         DatabasesInfo databasesInfo1 = dataConnectorMapper.getDatabases(databasesInfo.getId());
         DatabasesInfo databasesInfo1 = dataConnectorMapper.getDatabases(databasesInfo.getId());
         addDataSource(databasesInfo1);
         addDataSource(databasesInfo1);
@@ -160,7 +163,7 @@ public class DataBasesService {
         datasource.setTargetDataSources(target);
         datasource.setTargetDataSources(target);
         datasource.afterPropertiesSet();
         datasource.afterPropertiesSet();
 
 
-        DynamicDataSourceContextHolder.dataSourceIds.add(databasesInfo.getUserName());
+        DynamicDataSourceContextHolder.dataSourceIds.add(String.valueOf(databasesInfo.getId()));
     }
     }
 
 
 }
 }

+ 12 - 5
src/main/java/com/server/DataConnectorService.java

@@ -3,6 +3,7 @@ package com.server;
 import com.dao.DataConnectorMapper;
 import com.dao.DataConnectorMapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.model.bo.DatabaseConfig;
 import com.model.bo.GroupUpdateId;
 import com.model.bo.GroupUpdateId;
 import com.model.po.BaseConfig;
 import com.model.po.BaseConfig;
 import com.model.po.DataConnector;
 import com.model.po.DataConnector;
@@ -48,8 +49,14 @@ public class DataConnectorService {
         DataConnector dataConnector = new DataConnector();
         DataConnector dataConnector = new DataConnector();
         BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
         BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
 
 
-        String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
-        dataConnector.setTableName(tableName);
+        //取出数据库连接ID
+        DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig();
+        int dbConId = dbConfig.getId();
+        String pw = dataConnectorMapper.getBasesById(dbConId);
+        dbConfig.setPassWord(pw);
+
+//        String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
+        dataConnector.setTableName(dataConnector.getLoadObject());
 
 
          String columnConfig = null;
          String columnConfig = null;
          String databaseConfig = null;
          String databaseConfig = null;
@@ -62,7 +69,7 @@ public class DataConnectorService {
         }
         }
 
 
         try {
         try {
-            databaseConfig = objectmapper.writeValueAsString(dataConnectorInfo.getDbConfig());
+            databaseConfig = objectmapper.writeValueAsString(dbConfig);
         } catch (JsonProcessingException e) {
         } catch (JsonProcessingException e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
@@ -160,8 +167,8 @@ public class DataConnectorService {
         DataConnector dataConnector = new DataConnector();
         DataConnector dataConnector = new DataConnector();
         BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
         BeanUtils.copyProperties(dataConnectorInfo,dataConnector);
         //获取表名
         //获取表名
-        String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
-        dataConnector.setTableName(tableName);
+//        String tableName = SqlMatch.matchSql(dataConnector.getLoadObject());
+        dataConnector.setTableName(dataConnector.getLoadObject());
 
 
         List<ColumnRenameInfo> columnConfig = dataConnectorInfo.getColumnConfig();
         List<ColumnRenameInfo> columnConfig = dataConnectorInfo.getColumnConfig();
 //        DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig();
 //        DatabaseConfig dbConfig = dataConnectorInfo.getDbConfig();

+ 3 - 3
src/main/java/com/server/GetChartsDataUtilService.java

@@ -15,7 +15,7 @@ public class GetChartsDataUtilService {
     @Autowired
     @Autowired
     ObjectMapper objectMapper;
     ObjectMapper objectMapper;
 
 
-    public String getBaseName(int id){
+    public int getBaseId(int id){
 
 
         //取数据源ID
         //取数据源ID
         String dataConfig = chartsConfigMapper.getBaseConifg(id);
         String dataConfig = chartsConfigMapper.getBaseConifg(id);
@@ -27,8 +27,8 @@ public class GetChartsDataUtilService {
         } catch (IOException e) {
         } catch (IOException e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
-        String baseName = databases.getUserName();
+        int baseId = databases.getId();
 
 
-        return baseName;
+        return baseId;
     }
     }
 }
 }

+ 23 - 11
src/main/java/com/server/ImplementSqlService.java

@@ -3,17 +3,18 @@ package com.server;
 import com.dao.DataColumnMapper;
 import com.dao.DataColumnMapper;
 import com.dao.DataConnectorMapper;
 import com.dao.DataConnectorMapper;
 import com.model.bo.ToSql;
 import com.model.bo.ToSql;
-import com.model.po.ColumnData;
 import com.model.po.Databases;
 import com.model.po.Databases;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
 import com.model.pojo.RepEntity;
-import com.util.SqlMatch;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.sql.Connection;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;
 
 
 @Service
 @Service
@@ -28,21 +29,32 @@ public class ImplementSqlService {
      */
      */
     public RepEntity implementSql(ToSql toSql) {
     public RepEntity implementSql(ToSql toSql) {
         String sqlStr = toSql.getStrSql();
         String sqlStr = toSql.getStrSql();
-        String tableName = "";
+//        String tableName = "";
 
 
-        try{
-            tableName = SqlMatch.matchSql(sqlStr).toUpperCase();
-        }catch (Exception e){
+//        try{
+//            tableName = SqlMatch.matchSql(sqlStr).toUpperCase();
+//        }catch (Exception e){
+//            return new RepEntity(RepCode.ChartsNameNull);
+//        }
+        System.out.println(sqlStr);
+        if ("".equals(sqlStr) || sqlStr == null) {
             return new RepEntity(RepCode.ChartsNameNull);
             return new RepEntity(RepCode.ChartsNameNull);
         }
         }
-        System.out.println(tableName);
-        if ("".equals(tableName) || tableName == null) {
-            return new RepEntity(RepCode.ChartsNameNull);
+
+        List<LinkedHashMap<String, Object>> columnData = dataColumnMapper.getColumn(sqlStr.toUpperCase());
+        LinkedHashMap<String, Object> columnDataKey = columnData.get(0);
+        List<String> columnNames = new ArrayList<>();
+        Iterator<String> iter = columnDataKey.keySet().iterator();
+        while (iter.hasNext()){
+            String key = iter.next();
+            columnNames .add(key);
         }
         }
-        List<ColumnData> columnData = dataColumnMapper.getColumn(tableName);
-        return new RepEntity(RepCode.success, columnData);
+
+        return new RepEntity(RepCode.success, columnNames);
     }
     }
 
 
+
+
     /*
     /*
     判断数据库连接
     判断数据库连接
      */
      */

+ 10 - 6
src/main/java/com/server/ShowHistogramService.java

@@ -53,18 +53,21 @@ public class ShowHistogramService {
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
         if (tableName == null || "".equals(tableName)){
         if (tableName == null || "".equals(tableName)){
             return new RepEntity(RepCode.nullTableName);
             return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
         }
         }
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+//        int baseId =
+        System.out.println("切换数据库"+baseId);
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + baseId + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + baseId);
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
 
 
             String xColumn = histogramConfigInfo.getxAxis().getColumnRename();
             String xColumn = histogramConfigInfo.getxAxis().getColumnRename();
@@ -232,6 +235,7 @@ public class ShowHistogramService {
         System.out.println("异常");
         System.out.println("异常");
         return new RepEntity(RepCode.erro);
         return new RepEntity(RepCode.erro);
     }finally {
     }finally {
+            System.out.println("关闭数据源");
         DynamicDataSourceContextHolder.clearDataSourceType();
         DynamicDataSourceContextHolder.clearDataSourceType();
     }
     }
 
 

+ 8 - 6
src/main/java/com/server/ShowIndividualService.java

@@ -41,18 +41,20 @@ public class ShowIndividualService {
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
         if (tableName == null || "".equals(tableName)){
         if (tableName == null || "".equals(tableName)){
             return new RepEntity(RepCode.nullTableName);
             return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
         }
         }
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
 
 
         //取主建名
         //取主建名

+ 11 - 6
src/main/java/com/server/ShowLineService.java

@@ -45,17 +45,22 @@ public class ShowLineService {
         }
         }
         int id = lineConfigInfo.getId();
         int id = lineConfigInfo.getId();
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
+        if (tableName == null || "".equals(tableName)){
+            return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
+        }
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
 
 
         String xColumn = lineConfigInfo.getxAxis().getColumnRename();
         String xColumn = lineConfigInfo.getxAxis().getColumnRename();

+ 32 - 10
src/main/java/com/server/ShowPieService.java

@@ -10,6 +10,7 @@ import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.PieConfigInfo;
 import com.model.vo.configVo.PieConfigInfo;
 import com.model.vo.dataVo.ChartsDataInfo;
 import com.model.vo.dataVo.ChartsDataInfo;
+import com.util.BasesSource.DynamicDataSourceContextHolder;
 import com.util.CalculationJudgeUtil;
 import com.util.CalculationJudgeUtil;
 import com.util.ScreenUtil;
 import com.util.ScreenUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +32,8 @@ public class ShowPieService {
     ChartsConfigMapper chartsConfigMapper;
     ChartsConfigMapper chartsConfigMapper;
     @Autowired
     @Autowired
     ScreenUtil screenUtil;
     ScreenUtil screenUtil;
+    @Autowired
+    GetChartsDataUtilService getChartsDataUtilService;
 
 
     /*
     /*
     Pie数据展示
     Pie数据展示
@@ -42,6 +45,23 @@ public class ShowPieService {
         }
         }
         int id = pieConfigInfo.getId();
         int id = pieConfigInfo.getId();
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
+        if (tableName == null || "".equals(tableName)){
+            return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
+        }
+
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
+        try{
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
+                //joinPoint.getSignature() :获取连接点的方法签名对象
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
+            } else {
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
+            }
+
         String xColumn = pieConfigInfo.getLegendData().getColumnRename();
         String xColumn = pieConfigInfo.getLegendData().getColumnRename();
         String yColumn = pieConfigInfo.getSeries().getColumnRename();
         String yColumn = pieConfigInfo.getSeries().getColumnRename();
         String xColumnType = pieConfigInfo.getLegendData().getColumnType();
         String xColumnType = pieConfigInfo.getLegendData().getColumnType();
@@ -104,15 +124,6 @@ public class ShowPieService {
             chartsDataInfo.setxAxis(xAxisData);
             chartsDataInfo.setxAxis(xAxisData);
         }
         }
 
 
-        //取筛选列表
-//        List<Screen> screens = pieConfigInfo.getFilters();
-//        String screen = "";
-//        if ("".equals(screens) || screens == null){
-//            screen = "";
-//        }else {
-//            screen = screenUtil.screensUtil(screens);
-//        }
-
         //无分组时Y值
         //无分组时Y值
         Iterator itX = xAxisData.iterator();
         Iterator itX = xAxisData.iterator();
         while (itX.hasNext()){
         while (itX.hasNext()){
@@ -126,7 +137,11 @@ public class ShowPieService {
             if ("time".equals(xColumnType)){
             if ("time".equals(xColumnType)){
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                if (xdata == null || "".equals(xdata)){
+                    valueOnes = showChartsMapper.getValuesIsNull(yColumn, xColumn, tableName, yAxisType);
+                }else {
+                    valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                }
             }
             }
             if (valueOnes == null || "".equals(valueOnes)){
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;
                 valueOne = 0;
@@ -143,6 +158,13 @@ public class ShowPieService {
         serieses.add(series);
         serieses.add(series);
 
 
         chartsDataInfo.setSerieses(serieses);
         chartsDataInfo.setSerieses(serieses);
+        }catch (Exception e){
+            e.printStackTrace();
+            System.out.println("异常");
+            return new RepEntity(RepCode.erro);
+        }finally {
+            DynamicDataSourceContextHolder.clearDataSourceType();
+        }
 
 
         return new RepEntity(RepCode.success, chartsDataInfo);
         return new RepEntity(RepCode.success, chartsDataInfo);
     }
     }

+ 44 - 12
src/main/java/com/server/ShowPopulationService.java

@@ -35,18 +35,20 @@ public class ShowPopulationService {
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
         if (tableName == null || "".equals(tableName)){
         if (tableName == null || "".equals(tableName)){
             return new RepEntity(RepCode.nullTableName);
             return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
         }
         }
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
             List<String> groupByList = populationInfo.getGroupByList();  //分组
             List<String> groupByList = populationInfo.getGroupByList();  //分组
 
 
@@ -101,14 +103,27 @@ public class ShowPopulationService {
             String listOne = groupByList.get(0);
             String listOne = groupByList.get(0);
 
 
             Iterator operatorsList = operators.iterator();
             Iterator operatorsList = operators.iterator();
-            //获取运算列
+            //获取常规运算列
             List<String> operatorColumn = new ArrayList<>();
             List<String> operatorColumn = new ArrayList<>();
+            //获取25th,75th算符
+            List<String> operatorOther = new ArrayList<>();
 
 
             String next = null;
             String next = null;
             while (operatorsList.hasNext()){
             while (operatorsList.hasNext()){
                 next = String.valueOf(operatorsList.next()).toLowerCase();
                 next = String.valueOf(operatorsList.next()).toLowerCase();
-                String op = next + "(" + columnName + ") as " +next.toLowerCase() ;
-                operatorColumn.add(op);
+
+                System.out.println("next:"+next);
+                //计算25th,75th,和百分比
+                if (next.toUpperCase() == "PERCENT" || "PERCENT".equals(next.toUpperCase())){
+                    System.out.println("走这里了吗?"+ next);
+                    String op = "count(" + columnName + ")/(select count(1) from " + tableName + ") "+ next;
+                    operatorColumn.add(op);
+                }else if ("25th".equals(next) || "75th".equals(next)){
+                    operatorOther.add(next);
+                }else {
+                    String op = next + "(" + columnName + ") as " + next.toLowerCase();
+                    operatorColumn.add(op);
+                }
             }
             }
 
 
             String groups = groupByList.toString();
             String groups = groupByList.toString();
@@ -117,13 +132,30 @@ public class ShowPopulationService {
             String oprs = operatorColumn.toString();
             String oprs = operatorColumn.toString();
             String opr = getString(oprs);
             String opr = getString(oprs);
 
 
-            //计算25th,75th,和百分比
-            if (next == "25TH" || "25Th".equals(next)){
+            //存放正常值
+            List<LinkedHashMap<String, Object>> valueList = new ArrayList<>();
+
+            //存放25th,75th
+            List<LinkedHashMap<String, Object>> valueListTh = new ArrayList<>();
+
+            Iterator thList = operatorOther.iterator();
+            while (thList.hasNext()){
+                String oprTh = (String) thList.next();
+                String fOpertion = "";
+                String aOpertion = "";
+                if ("25th".equals(oprTh)){
+                    fOpertion = "min";
+                    aOpertion = "median";
+                }else if ("75th".equals(oprTh)) {
+                    fOpertion = "median";
+                    aOpertion = "max";
+                }
+                valueListTh = showChartsMapper.getGroupByValueTh(groupBy, columnName, tableName, listOne, screen, fOpertion, aOpertion);
 
 
             }
             }
 
 
-            List<LinkedHashMap<String, Object>> valueList = new ArrayList<>();
             valueList = showChartsMapper.getGroupByValue(groupBy, opr, tableName, listOne, screenStr);
             valueList = showChartsMapper.getGroupByValue(groupBy, opr, tableName, listOne, screenStr);
+            valueList.addAll(valueListTh);
             System.out.println("valueList:"+ valueList);
             System.out.println("valueList:"+ valueList);
             return new RepEntity(RepCode.success, valueList);
             return new RepEntity(RepCode.success, valueList);
         }
         }

+ 31 - 8
src/main/java/com/server/ShowScatterService.java

@@ -45,17 +45,22 @@ public class ShowScatterService {
         }
         }
         int id = scatterConfigInfo.getId();
         int id = scatterConfigInfo.getId();
         String tableName = chartsConfigMapper.getTableName(id);
         String tableName = chartsConfigMapper.getTableName(id);
+        if (tableName == null || "".equals(tableName)){
+            return new RepEntity(RepCode.nullTableName);
+        }else {
+            tableName = "(" + tableName +")";
+        }
 
 
-        String baseName = getChartsDataUtilService.getBaseName(id);
-        System.out.println("切换数据库"+baseName);
+        int baseId = getChartsDataUtilService.getBaseId(id);
+        System.out.println("切换数据库"+String.valueOf(baseId));
 
 
         try{
         try{
-            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
                 //joinPoint.getSignature() :获取连接点的方法签名对象
                 //joinPoint.getSignature() :获取连接点的方法签名对象
-                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+                System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> ");
             } else {
             } else {
-                System.out.println("使用数据源:" + baseName);
-                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+                System.out.println("使用数据源:" + String.valueOf(baseId));
+                DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
             }
             }
 
 
         String xColumn = scatterConfigInfo.getxAxis().getColumnRename();
         String xColumn = scatterConfigInfo.getxAxis().getColumnRename();
@@ -125,7 +130,11 @@ public class ShowScatterService {
             if ("time".equals(xColumnType)){
             if ("time".equals(xColumnType)){
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                if (xdata == null || "".equals(xdata)){
+                    valueOnes = showChartsMapper.getValuesIsNull(yColumn, xColumn, tableName, yAxisType);
+                }else {
+                    valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                }
             }
             }
             if (valueOnes == null || "".equals(valueOnes)){
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;
                 valueOne = 0;
@@ -175,7 +184,21 @@ public class ShowScatterService {
                             groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
                             groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
                                     groupsName, xColumn, xAxisDataOne);
                                     groupsName, xColumn, xAxisDataOne);
                         }else {
                         }else {
-//                            groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne);
+                            String xColumnKey = "";
+                            if (xAxisDataOne == null || "".equals(xAxisDataOne)){
+                                xColumnKey  = xColumn + " is null";
+                            }else
+                            {
+                                xColumnKey = xColumn + " = '" +xAxisDataOne +"'";
+                            }
+
+                            String groupByKey = "";
+                            if (groupsName == null || "".equals(groupsName)){
+                                groupByKey = groupByName +" is null";
+                            }else {
+                                groupByKey = groupByName + " = '" +groupsName +"'";
+                            }
+                            groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByKey, xColumnKey);
                         }
                         }
                         if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                         if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                             groupsValueOne = 0;
                             groupsValueOne = 0;

+ 3 - 3
src/main/java/com/util/BasesSource/DynamicDataSourceRegister.java

@@ -110,8 +110,8 @@ public class DynamicDataSourceRegister implements ImportBeanDefinitionRegistrar,
             conn = DriverManager.getConnection(url, userName, passWord);
             conn = DriverManager.getConnection(url, userName, passWord);
             pstmt = conn.prepareStatement(sql);
             pstmt = conn.prepareStatement(sql);
             rs = pstmt.executeQuery();//运行查询操作
             rs = pstmt.executeQuery();//运行查询操作
-            if(rs.next()){
-                System.out.println("rs:" + rs);
+            System.out.println();
+            while(rs.next()){
                 System.out.println("userName:" +rs.getString("user_name"));
                 System.out.println("userName:" +rs.getString("user_name"));
                 // 多个数据源
                 // 多个数据源
                 Map<String, Object> dsMap = new HashMap<>();
                 Map<String, Object> dsMap = new HashMap<>();
@@ -122,7 +122,7 @@ public class DynamicDataSourceRegister implements ImportBeanDefinitionRegistrar,
                 dsMap.put("username", rs.getString("user_name"));
                 dsMap.put("username", rs.getString("user_name"));
                 dsMap.put("password", rs.getString("pass_word"));
                 dsMap.put("password", rs.getString("pass_word"));
                 DataSource ds = buildDataSource(dsMap);
                 DataSource ds = buildDataSource(dsMap);
-                slaveDataSources.put(rs.getString("user_name"), ds);
+                slaveDataSources.put(rs.getString("id"), ds);
             }
             }
             } catch (ClassNotFoundException e) {
             } catch (ClassNotFoundException e) {
             // TODO Auto-generated catch block
             // TODO Auto-generated catch block

+ 8 - 5
src/main/java/com/util/BasesSource/DynamicDattaSourceAspect.java

@@ -1,5 +1,6 @@
 package com.util.BasesSource;
 package com.util.BasesSource;
 
 
+import com.dao.DataColumnMapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.model.bo.ToSql;
 import com.model.bo.ToSql;
@@ -25,6 +26,8 @@ public class DynamicDattaSourceAspect {
 
 
     @Autowired
     @Autowired
     ObjectMapper objectMapper;
     ObjectMapper objectMapper;
+    @Autowired
+    DataColumnMapper dataColumnMapper;
 
 
     //改变数据源
     //改变数据源
     @Before("@annotation(TargetDataSource)")
     @Before("@annotation(TargetDataSource)")
@@ -45,14 +48,14 @@ public class DynamicDattaSourceAspect {
         } catch (IOException e) {
         } catch (IOException e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
-        String baseName = toSql.getBaseName();
+        int baseId = toSql.getId();
 
 
-        if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+        if (!DynamicDataSourceContextHolder.isContainsDataSource(String.valueOf(baseId))) {
             //joinPoint.getSignature() :获取连接点的方法签名对象
             //joinPoint.getSignature() :获取连接点的方法签名对象
-            System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> " + joinPoint.getSignature());
+            System.out.println("数据源 " + String.valueOf(baseId) + " 不存在使用默认的数据源 -> " + joinPoint.getSignature());
         } else {
         } else {
-            System.out.println("使用数据源:" + baseName);
-            DynamicDataSourceContextHolder.setDataSourceType(baseName);
+            System.out.println("使用数据源:" +  String.valueOf(baseId));
+            DynamicDataSourceContextHolder.setDataSourceType(String.valueOf(baseId));
         }
         }
     }
     }