Browse Source

饼图,折线图,柱状图

heqinwei 7 years ago
parent
commit
1fe886660e
39 changed files with 1270 additions and 215 deletions
  1. 3 0
      .idea/misc.xml
  2. 1 1
      pom.xml
  3. 47 5
      src/main/java/com/controller/ChartsConfigController.java
  4. 31 1
      src/main/java/com/controller/DashboardsController.java
  5. 10 2
      src/main/java/com/controller/DataConnectorController.java
  6. 27 3
      src/main/java/com/controller/ShowChartsController.java
  7. 62 0
      src/main/java/com/dao/ChartsConfigMapper.java
  8. 54 0
      src/main/java/com/dao/DashboardsMapper.java
  9. 1 1
      src/main/java/com/dao/DataColumnMapper.java
  10. 12 2
      src/main/java/com/dao/DataConnectorMapper.java
  11. 2 2
      src/main/java/com/dao/ShowChartsMapper.java
  12. 0 24
      src/main/java/com/database1/dao/ChartsConfigMapper.java
  13. 0 17
      src/main/java/com/database1/dao/DashboardsMapper.java
  14. 0 30
      src/main/java/com/database1/server/DashboardsService.java
  15. 28 8
      src/main/java/com/model/bo/Column.java
  16. 6 16
      src/main/java/com/model/bo/Histogram.java
  17. 32 0
      src/main/java/com/model/bo/LineSeries.java
  18. 30 0
      src/main/java/com/model/bo/LineSeriesMap.java
  19. 32 0
      src/main/java/com/model/bo/PieSeries.java
  20. 30 0
      src/main/java/com/model/bo/PieSeriesMap.java
  21. 1 10
      src/main/java/com/model/po/ChartConfig.java
  22. 60 0
      src/main/java/com/model/po/ChartConfigList.java
  23. 62 0
      src/main/java/com/model/po/ColumnToShow.java
  24. 6 6
      src/main/java/com/model/po/Dashboards.java
  25. 4 12
      src/main/java/com/model/vo/configVo/ChartConfigInfo.java
  26. 1 0
      src/main/java/com/model/vo/configVo/ColumnRenameInfo.java
  27. 55 0
      src/main/java/com/model/vo/configVo/LineConfigInfo.java
  28. 43 0
      src/main/java/com/model/vo/configVo/PieConfigInfo.java
  29. 8 10
      src/main/java/com/model/vo/dataVo/ChartsDataInfo.java
  30. 51 0
      src/main/java/com/server/CalculationJudgeUtil.java
  31. 148 8
      src/main/java/com/server/ChartsConfigService.java
  32. 84 0
      src/main/java/com/server/DashboardsService.java
  33. 43 2
      src/main/java/com/server/DataConnectorService.java
  34. 2 2
      src/main/java/com/server/ImplementSqlService.java
  35. 26 40
      src/main/java/com/server/ShowHistogramService.java
  36. 143 0
      src/main/java/com/server/ShowLineService.java
  37. 106 0
      src/main/java/com/server/ShowPieService.java
  38. 11 5
      src/main/java/com/server/TimeConverterUtil.java
  39. 8 8
      src/main/resources/application.properties

+ 3 - 0
.idea/misc.xml

@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="FrameworkDetectionExcludesConfiguration">
+    <type id="Spring" />
+  </component>
   <component name="MavenProjectsManager">
     <option name="originalFiles">
       <list>

+ 1 - 1
pom.xml

@@ -97,7 +97,7 @@
     <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
-      <version>1.2.35</version>
+      <version>1.2.6</version>
     </dependency>
 
     <dependency>

+ 47 - 5
src/main/java/com/controller/ChartsConfigController.java

@@ -3,12 +3,14 @@ package com.controller;
 import com.model.bo.*;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.ChartConfigInfo;
-import com.database1.server.ChartsConfigService;
+import com.server.ChartsConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RestController
 public class ChartsConfigController {
     @Autowired
@@ -49,10 +51,18 @@ public class ChartsConfigController {
    /*
    柱状
     */
-   @RequestMapping("/inputHistogram")
-   public RepEntity inputHistogram(@RequestBody ChartConfigInfo<Histogram> body){
-       return chartsConfigService.setChartsConfig(body);
-   }
+    @RequestMapping("/inputHistogram")
+    public RepEntity inputHistogram(@RequestBody ChartConfigInfo<Histogram> body){
+        return chartsConfigService.setChartsConfig(body);
+    }
+
+    /*
+   更新柱状
+    */
+    @RequestMapping("/updateHistogram")
+    public RepEntity updateHistogram(@RequestBody ChartConfigInfo<Histogram> body){
+        return chartsConfigService.updateChartsConfig(body);
+    }
 
   /*
   折线
@@ -70,4 +80,36 @@ public class ChartsConfigController {
         return chartsConfigService.setChartsConfig(body);
     }
 
+    /*
+   更新柱状
+    */
+    @RequestMapping("/updatePie")
+    public RepEntity updatePie(@RequestBody ChartConfigInfo<Pie> body){
+        return chartsConfigService.updateChartsConfig(body);
+    }
+
+    /*
+    删除
+     */
+    @RequestMapping("/delChartsConfig")
+    public RepEntity delChartsConfig(@RequestBody List<Integer> body){
+        return chartsConfigService.delChartsConfig(body);
+    }
+
+    /*
+    查询图表列表
+     */
+    @RequestMapping("/getListCharts")
+    public RepEntity getListCharts(){
+        return chartsConfigService.getListCharts();
+    }
+
+    /*
+    查询单个图表
+     */
+    @RequestMapping("/getChartsConfig")
+    public RepEntity getChartsConfig(@RequestBody int body){
+        return chartsConfigService.getOneCharts(body);
+    }
+
 }

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

@@ -1,19 +1,49 @@
 package com.controller;
 
+import com.server.DashboardsService;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.DashboardsInfo;
-import com.database1.server.DashboardsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RestController
 public class DashboardsController {
     @Autowired
     DashboardsService dashboardsService;
+
+    /*
+    保存看板
+     */
     @RequestMapping("/inputDashboards")
     public RepEntity inputDashboards(@RequestBody DashboardsInfo body){
         return dashboardsService.setDashboards(body);
     }
+
+    /*
+    更新看板
+     */
+    @RequestMapping("/updateDashboards")
+    public RepEntity updateDashboards(@RequestBody DashboardsInfo body){
+        return dashboardsService.updateDashboards(body);
+    }
+
+    /*
+    删除看板
+     */
+    @RequestMapping("/delDashboards")
+    public RepEntity delDashboards(@RequestBody List<Integer> body){
+        return dashboardsService.delDashboards(body);
+    }
+
+    /*
+    查看列表
+     */
+    @RequestMapping("/getListDashboards")
+    public RepEntity getListDashboards(){
+        return dashboardsService.getListDashboards();
+    }
 }

+ 10 - 2
src/main/java/com/controller/DataConnectorController.java

@@ -1,11 +1,11 @@
 package com.controller;
 
-import com.database2.server.ImplementSqlService;
+import com.server.ImplementSqlService;
 import com.model.bo.Pages;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.DataConnectorInfo;
 import com.model.vo.configVo.DatabasesInfo;
-import com.database1.server.DataConnectorService;
+import com.server.DataConnectorService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -103,4 +103,12 @@ public class DataConnectorController {
     public RepEntity updatabases(@RequestBody DatabasesInfo databasesInfo){
         return dataConnectorService.updatabases(databasesInfo);
     }
+
+    /*
+    查看列
+     */
+    @RequestMapping("/getColumnData")
+    public RepEntity getColumnData(@RequestBody int body){
+        return dataConnectorService.getColumnData(body);
+    }
 }

+ 27 - 3
src/main/java/com/controller/ShowChartsController.java

@@ -1,8 +1,12 @@
 package com.controller;
 
+import com.server.ShowHistogramService;
+import com.server.ShowLineService;
+import com.server.ShowPieService;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.HistogramConfigInfo;
-import com.database2.server.ShowChartsService;
+import com.model.vo.configVo.LineConfigInfo;
+import com.model.vo.configVo.PieConfigInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -12,12 +16,32 @@ import org.springframework.web.bind.annotation.RestController;
 public class ShowChartsController {
 
     @Autowired
-    ShowChartsService showChartsService;
+    ShowHistogramService showHistogramService;
+    @Autowired
+    ShowPieService showPieService;
+    @Autowired
+    ShowLineService showLineService;
     /*
     展示柱状图
      */
     @RequestMapping("/showHistogram")
     public RepEntity showHistogram(@RequestBody HistogramConfigInfo body){
-        return showChartsService.showHistogram(body);
+        return showHistogramService.showHistogram(body);
+    }
+
+    /*
+    展示饼图
+     */
+    @RequestMapping("/showPie")
+    public RepEntity showPie(@RequestBody PieConfigInfo body){
+        return showPieService.showPie(body);
+    }
+
+    /*
+    展示Line
+     */
+    @RequestMapping("/showLine")
+    public RepEntity showLine(@RequestBody LineConfigInfo body){
+        return showLineService.showLine(body);
     }
 }

+ 62 - 0
src/main/java/com/dao/ChartsConfigMapper.java

@@ -0,0 +1,62 @@
+package com.dao;
+
+import com.model.po.ChartConfig;
+import com.model.po.ChartConfigList;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+@Mapper
+@Repository
+public interface ChartsConfigMapper {
+
+    @Insert("insert into bi_charts(CHART_NAME,CHART_TYPE,BD_DATA_ID,CHART_CONFIG,GROUP_BY,ACCESS_AUTHORITY,UPDATE_AUTHORITY,CHART_DESCRIBES,is_legend,is_tooltip,is_datazoom,is_toolbox,create_by,create_date) " +
+            "VALUES (#{chartName},#{chartType}, #{dataId}, #{chartConfig}, #{groupBy}, #{accessAuthority}, #{updateAuthority}, #{describes},#{isLegend},#{isTooltip}, #{isDatazoom}, #{isToolbox}, #{createBy},to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss'))")
+    void insertCharts(ChartConfig chartConfig);
+
+    @Delete("<script>" +
+            "delete from bi_charts where id in " +
+            "("+
+            "<foreach collection=\"list\" index=\"index\" item=\"item\"  separator=\",\">" +
+            "#{item, jdbcType = NUMERIC}"+
+            "</foreach>" +
+            ")"+
+            "</script>")
+    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_filters as filters, BD_DATA_ID as dataId, bc_table_name as tableName, CHART_CONFIG as chartConfig, GROUP_BY as groupBy," +
+            "ACCESS_AUTHORITY as accessAuthority, UPDATE_AUTHORITY as updateAuthority, CHART_DESCRIBES as describes, IS_LEGEND as isLegend," +
+            "IS_TOOLTIP as isTooltip, IS_DATAZOOM as isDatazoom, IS_TOOLBOX as isToolbox, BC_FILTERS as filters " +
+            " from bi_charts where id = #{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" +
+            ",bc_filters as filters from bi_charts")
+    List<ChartConfigList> getListCharts();
+
+    /*
+    更新图表配置
+     */
+    @Update("<script>" +
+            "UPDATE bi_charts set "  +
+            "CHART_NAME = #{chartName}" +
+            "<if test=\"chartType != null\"> , CHART_TYPE = #{chartType} </if>" +
+            "<if test=\"createBy != null\"> , CREATE_BY = #{createBy} </if>" +
+            "<if test=\"groupBy != null\"> , GROUP_BY = #{groupBy} </if>" +
+            "<if test=\"chartConfig != null\"> , CHART_CONFIG = #{chartConfig} </if>" +
+//            "<if test=\"chartDescribes != null\"> , CHART_DESCRIBES = #{chartDescribes} </if>" +
+            "<if test=\"filters != null\"> , BC_FILTERS = #{filters} </if>" +
+            "<if test=\"accessAuthority != null\"> , ACCESS_AUTHORITY = #{accessAuthority} </if>" +
+            "<if test=\"updateAuthority != null\"> , UPDATE_AUTHORITY = #{updateAuthority} </if>" +
+            "<if test=\"isDatazoom != null\"> , IS_DATAZOOM = #{isDatazoom} </if>" +
+            "<if test=\"isLegend != null\"> , IS_LEGEND = #{isLegend} </if>" +
+            "<if test=\"isToolbox != null\"> , IS_TOOLBOX = #{isToolbox} </if>" +
+            "<if test=\"isTooltip != null\"> , IS_TOOLTIP = #{isTooltip} </if>" +
+            "<if test=\"updateDate != null\"> , UPDATE_DATE = to_date(#{updateDate},'YYYY-MM-DD hh24:mi:ss') </if>" +
+            "where id = #{chartId}" +
+            "</script>")
+    void updateChartConfig(ChartConfig chartConfig);
+}

+ 54 - 0
src/main/java/com/dao/DashboardsMapper.java

@@ -0,0 +1,54 @@
+package com.dao;
+
+import com.model.po.Dashboards;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+@Mapper
+@Repository
+public interface DashboardsMapper {
+
+    /*
+    插入
+     */
+    @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'))")
+    void setDashboards(Dashboards dashboards);
+
+    /*
+    更新
+     */
+    @Update("<script>" +
+            "UPDATE BI_DASHBOARDS set "  +
+            "BD_NAME = #{bdName}" +
+            "<if test=\"bdNote != null\"> , BD_NOTE = #{bdNote} </if>" +
+            "<if test=\"bdConfiguration != null\"> , CONFIGURATION = #{bdConfiguration} </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>" +
+            "where id = #{id}" +
+            "</script>")
+    void updateDashboards(Dashboards dashboards);
+
+    /*
+    删除看板
+     */
+    @Delete("<script>" +
+            "delete from BI_DASHBOARDS where id in " +
+            "("+
+            "<foreach collection=\"list\" index=\"index\" item=\"item\"  separator=\",\">" +
+            "#{item, jdbcType = NUMERIC}"+
+            "</foreach>" +
+            ")"+
+            "</script>")
+    void delDashboards(List<Integer> idList);
+
+    /*
+    查询看板列表
+     */
+    @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")
+    List<Dashboards> getListDashboards();
+}

+ 1 - 1
src/main/java/com/database2/dao/DataColumnMapper.java → src/main/java/com/dao/DataColumnMapper.java

@@ -1,4 +1,4 @@
-package com.database2.dao;
+package com.dao;
 
 
 import com.model.po.ColumnData;

+ 12 - 2
src/main/java/com/database1/dao/DataConnectorMapper.java → src/main/java/com/dao/DataConnectorMapper.java

@@ -1,6 +1,9 @@
-package com.database1.dao;
+package com.dao;
 
-import com.model.po.*;
+import com.model.po.ColumnData;
+import com.model.po.DataConnector;
+import com.model.po.DataConnectorList;
+import com.model.po.Databases;
 import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Repository;
 
@@ -131,4 +134,11 @@ public interface DataConnectorMapper {
             ")"+
             "</script>")
     void deleteDatabases(List<Integer> idList);
+
+    /*
+    查询数据源列数据
+     */
+    @Select("select columns_Config as columnConfig from bi_data_connectors " +
+            " where id =#{id}")
+    DataConnector getColumnData(int id);
 }

+ 2 - 2
src/main/java/com/database2/dao/ShowChartsMapper.java → src/main/java/com/dao/ShowChartsMapper.java

@@ -1,4 +1,4 @@
-package com.database2.dao;
+package com.dao;
 
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -67,7 +67,7 @@ public interface ShowChartsMapper {
                           @Param("xColumn") String xColumn, @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex);
 
     //查询分组的值(时间类型半年)
-    //分组半年时间值
+    //分组半年时间值
     @Select("select ${dataType}(${yAxisName}) from ${tableName} where TO_CHAR(${xAxisName},'YYYY-MM') between #{firstIndex} and #{afterIndex} and ${groupsColumn}=#{groupsIndex}")
     String getTimeValueHalfYear(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
                             @Param("xAxisName") String xAxisName, @Param("firstIndex") String firstIndex, @Param("afterIndex") String afterIndex,

+ 0 - 24
src/main/java/com/database1/dao/ChartsConfigMapper.java

@@ -1,24 +0,0 @@
-package com.database1.dao;
-
-import com.model.po.ChartConfig;
-import org.apache.ibatis.annotations.Delete;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.springframework.stereotype.Repository;
-
-
-@Mapper
-@Repository
-public interface ChartsConfigMapper {
-
-    @Insert("insert into bi_charts(CHART_NAME,CHART_TYPE,BD_DATA_ID,BD_ID,CHART_CONFIG,GROUP_BY,SUBSECTIONS,ACCESS_AUTHORITY,UPDATE_AUTHORITY,CHART_DESCRIBES,is_legend,is_tooltip,is_datazoom,is_toolbox,create_by,create_date) " +
-            "VALUES (#{chartName},#{chartType}, #{dataId}, #{dashboardsId}, #{chartConfig}, #{groupBy}, #{subsections}, #{accessAuthority}, #{updateAuthority}, #{describes},#{isLegend},#{isToolTip}, #{isDataZoom}, #{isToolBox}, #{createBy},to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss'))")
-    void insertCharts(ChartConfig chartConfig);
-
-    @Delete("delete from t_chart where id = #{id}")
-    void deleteCharts(int id);
-
-    @Select("select * from t_chart where id = #{id}")
-    ChartConfig getOneChart(int id);
-}

+ 0 - 17
src/main/java/com/database1/dao/DashboardsMapper.java

@@ -1,17 +0,0 @@
-package com.database1.dao;
-
-import com.model.po.Dashboards;
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Mapper;
-import org.springframework.stereotype.Repository;
-
-
-@Mapper
-@Repository
-public interface DashboardsMapper {
-
-    @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'))")
-    void setDashboards(Dashboards dashboards);
-}

+ 0 - 30
src/main/java/com/database1/server/DashboardsService.java

@@ -1,30 +0,0 @@
-package com.database1.server;
-
-import com.database1.dao.DashboardsMapper;
-import com.model.po.Dashboards;
-import com.model.pojo.RepCode;
-import com.model.pojo.RepEntity;
-import com.model.vo.configVo.DashboardsInfo;
-import com.util.TimeUtil;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-@Service
-public class DashboardsService {
-    @Autowired
-    TimeUtil timeUtil;
-    @Autowired
-    DashboardsMapper dashboardsMapper;
-
-    public RepEntity setDashboards(DashboardsInfo dashboardsInfo){
-        Dashboards dashboards = new Dashboards();
-        BeanUtils.copyProperties(dashboardsInfo,dashboards);
-
-        dashboards.setBdConfiguration(dashboardsInfo.getBdConfiguration().toString());
-        dashboards.setCreateDate(timeUtil.SystemTime());
-
-        dashboardsMapper.setDashboards(dashboards);
-        return new RepEntity(RepCode.success);
-    }
-}

+ 28 - 8
src/main/java/com/model/bo/Column.java

@@ -1,9 +1,19 @@
 package com.model.bo;
 
 public class Column {
+    private String columnName;
     private String columnRename;
-    private String columnType;
-    private String dataType;
+    private String columnType;               //列类型
+    private String showDataType;                 //展示数据类型,x轴只有time类型中有类别,Y轴为sum,max,min等
+    private String showDataLable;               //对应showDataType(中文)
+
+    public String getColumnName() {
+        return columnName;
+    }
+
+    public void setColumnName(String columnName) {
+        this.columnName = columnName;
+    }
 
     public String getColumnRename() {
         return columnRename;
@@ -21,20 +31,30 @@ public class Column {
         this.columnType = columnType;
     }
 
-    public String getDataType() {
-        return dataType;
+    public String getShowDataType() {
+        return showDataType;
+    }
+
+    public void setShowDataType(String showDataType) {
+        this.showDataType = showDataType;
+    }
+
+    public String getShowDataLable() {
+        return showDataLable;
     }
 
-    public void setDataType(String dataType) {
-        this.dataType = dataType;
+    public void setShowDataLable(String showDataLable) {
+        this.showDataLable = showDataLable;
     }
 
     @Override
     public String toString() {
         return "Column{" +
-                "columnRename='" + columnRename + '\'' +
+                "columnName='" + columnName + '\'' +
+                ", columnRename='" + columnRename + '\'' +
                 ", columnType='" + columnType + '\'' +
-                ", dataType='" + dataType + '\'' +
+                ", showDataType='" + showDataType + '\'' +
+                ", showDataLable='" + showDataLable + '\'' +
                 '}';
     }
 }

+ 6 - 16
src/main/java/com/model/bo/Histogram.java

@@ -1,40 +1,30 @@
 package com.model.bo;
 
 public class Histogram {
-    private String xAxis;
-    private String yAxis;
-    private String dataType;
+    private Column xAxis;
+    private Column yAxis;
 
-    public String getxAxis() {
+    public Column getxAxis() {
         return xAxis;
     }
 
-    public void setxAxis(String xAxis) {
+    public void setxAxis(Column xAxis) {
         this.xAxis = xAxis;
     }
 
-    public String getyAxis() {
+    public Column getyAxis() {
         return yAxis;
     }
 
-    public void setyAxis(String yAxis) {
+    public void setyAxis(Column yAxis) {
         this.yAxis = yAxis;
     }
 
-    public String getDataType() {
-        return dataType;
-    }
-
-    public void setDataType(String dataType) {
-        this.dataType = dataType;
-    }
-
     @Override
     public String toString() {
         return "Histogram{" +
                 "xAxis='" + xAxis + '\'' +
                 ", yAxis='" + yAxis + '\'' +
-                ", dataType='" + dataType + '\'' +
                 '}';
     }
 }

+ 32 - 0
src/main/java/com/model/bo/LineSeries.java

@@ -0,0 +1,32 @@
+package com.model.bo;
+
+import java.util.List;
+
+public class LineSeries {
+    private String name;
+    private List<LineSeriesMap> mdata;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<LineSeriesMap> getMdata() {
+        return mdata;
+    }
+
+    public void setMdata(List<LineSeriesMap> mdata) {
+        this.mdata = mdata;
+    }
+
+    @Override
+    public String toString() {
+        return "LineSeries{" +
+                "name='" + name + '\'' +
+                ", mdata=" + mdata +
+                '}';
+    }
+}

+ 30 - 0
src/main/java/com/model/bo/LineSeriesMap.java

@@ -0,0 +1,30 @@
+package com.model.bo;
+
+public class LineSeriesMap {
+    private String date;
+    private Double value;
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public Double getValue() {
+        return value;
+    }
+
+    public void setValue(Double value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return "LineSeriesMap{" +
+                "date='" + date + '\'' +
+                ", value=" + value +
+                '}';
+    }
+}

+ 32 - 0
src/main/java/com/model/bo/PieSeries.java

@@ -0,0 +1,32 @@
+package com.model.bo;
+
+import java.util.List;
+
+public class PieSeries {
+    private String name;
+    private List<PieSeriesMap> value;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<PieSeriesMap> getValue() {
+        return value;
+    }
+
+    public void setValue(List<PieSeriesMap> value) {
+        this.value = value;
+    }
+
+    @Override
+    public String toString() {
+        return "PieSeries{" +
+                "name='" + name + '\'' +
+                ", value=" + value +
+                '}';
+    }
+}

+ 30 - 0
src/main/java/com/model/bo/PieSeriesMap.java

@@ -0,0 +1,30 @@
+package com.model.bo;
+
+public class PieSeriesMap {
+    private Double value;
+    private String name;
+
+    public Double getValue() {
+        return value;
+    }
+
+    public void setValue(Double value) {
+        this.value = value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String toString() {
+        return "PieSeriesMap{" +
+                "value=" + value +
+                ", name='" + name + '\'' +
+                '}';
+    }
+}

+ 1 - 10
src/main/java/com/model/po/ChartConfig.java

@@ -6,7 +6,7 @@ public class ChartConfig {
     private String tableName;
     private String chartType;
     private int DataId;            //数据源id
-    private int dashboardsId;      //看板id
+//    private int dashboardsId;      //看板id
     private String groupBy;        //分组
     private String Subsections;    //分段
     private String chartConfig;
@@ -54,14 +54,6 @@ public class ChartConfig {
         DataId = dataId;
     }
 
-    public int getDashboardsId() {
-        return dashboardsId;
-    }
-
-    public void setDashboardsId(int dashboardsId) {
-        this.dashboardsId = dashboardsId;
-    }
-
     public String getGroupBy() {
         return groupBy;
     }
@@ -190,7 +182,6 @@ public class ChartConfig {
                 ", tableName='" + tableName + '\'' +
                 ", chartType='" + chartType + '\'' +
                 ", DataId=" + DataId +
-                ", dashboardsId=" + dashboardsId +
                 ", groupBy='" + groupBy + '\'' +
                 ", Subsections='" + Subsections + '\'' +
                 ", chartConfig='" + chartConfig + '\'' +

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

@@ -0,0 +1,60 @@
+package com.model.po;
+
+public class ChartConfigList {
+    private int chartId;
+    private String chartName;
+    private String chartType;
+    private String createBy;
+    private String createDate;
+
+    public int getChartId() {
+        return chartId;
+    }
+
+    public void setChartId(int chartId) {
+        this.chartId = chartId;
+    }
+
+    public String getChartName() {
+        return chartName;
+    }
+
+    public void setChartName(String chartName) {
+        this.chartName = chartName;
+    }
+
+    public String getChartType() {
+        return chartType;
+    }
+
+    public void setChartType(String chartType) {
+        this.chartType = chartType;
+    }
+
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
+
+    @Override
+    public String toString() {
+        return "ChartConfigList{" +
+                "chartId=" + chartId +
+                ", chartName='" + chartName + '\'' +
+                ", chartType='" + chartType + '\'' +
+                ", createBy='" + createBy + '\'' +
+                ", createDate='" + createDate + '\'' +
+                '}';
+    }
+}

+ 62 - 0
src/main/java/com/model/po/ColumnToShow.java

@@ -0,0 +1,62 @@
+package com.model.po;
+
+public class ColumnToShow {
+//    private int id;
+//    private String dbName;
+//    private String tableName;
+    private String columnName;
+    private String columnRaname;
+    private String columnType;
+    private String isGroup;
+    private String isSubsection;
+
+    public String getColumnName() {
+        return columnName;
+    }
+
+    public void setColumnName(String columnName) {
+        this.columnName = columnName;
+    }
+
+    public String getColumnRaname() {
+        return columnRaname;
+    }
+
+    public void setColumnRaname(String columnRaname) {
+        this.columnRaname = columnRaname;
+    }
+
+    public String getColumnType() {
+        return columnType;
+    }
+
+    public void setColumnType(String columnType) {
+        this.columnType = columnType;
+    }
+
+    public String getIsGroup() {
+        return isGroup;
+    }
+
+    public void setIsGroup(String isGroup) {
+        this.isGroup = isGroup;
+    }
+
+    public String getIsSubsection() {
+        return isSubsection;
+    }
+
+    public void setIsSubsection(String isSubsection) {
+        this.isSubsection = isSubsection;
+    }
+
+    @Override
+    public String toString() {
+        return "ColumnToShow{" +
+                "columnName='" + columnName + '\'' +
+                ", columnRaname='" + columnRaname + '\'' +
+                ", columnType='" + columnType + '\'' +
+                ", isGroup='" + isGroup + '\'' +
+                '}';
+    }
+}

+ 6 - 6
src/main/java/com/model/po/Dashboards.java

@@ -10,7 +10,7 @@ public class Dashboards {
     private String bdConfiguration;
     private String createBy;
     private String createDate;
-    private String updataDate;
+    private String updateDate;
 
     public int getId() {
         return id;
@@ -60,12 +60,12 @@ public class Dashboards {
         this.createDate = createDate;
     }
 
-    public String getUpdataDate() {
-        return updataDate;
+    public String getUpdateDate() {
+        return updateDate;
     }
 
-    public void setUpdataDate(String updataDate) {
-        this.updataDate = updataDate;
+    public void setUpdateDate(String updateDate) {
+        this.updateDate = updateDate;
     }
 
     @Override
@@ -77,7 +77,7 @@ public class Dashboards {
                 ", bdConfiguration='" + bdConfiguration + '\'' +
                 ", createBy='" + createBy + '\'' +
                 ", createDate='" + createDate + '\'' +
-                ", updataDate='" + updataDate + '\'' +
+                ", updateDate='" + updateDate + '\'' +
                 '}';
     }
 }

+ 4 - 12
src/main/java/com/model/vo/configVo/ChartConfigInfo.java

@@ -10,8 +10,8 @@ public class ChartConfigInfo<T> {
     private String tableName;
     private String chartType;
     private int dataId;            //数据源id
-    private int dashboardsId;      //看板id
-    private List<String> groupBy;        //分组
+//    private int dashboardsId;      //看板id
+    private List<Column> groupBy;        //分组
     private List<Column> subsections;    //分段
     private T chartConfig;
     private String createBy;
@@ -56,19 +56,12 @@ public class ChartConfigInfo<T> {
         this.dataId = dataId;
     }
 
-    public int getDashboardsId() {
-        return dashboardsId;
-    }
-
-    public void setDashboardsId(int dashboardsId) {
-        this.dashboardsId = dashboardsId;
-    }
 
-    public List<String> getGroupBy() {
+    public List<Column> getGroupBy() {
         return groupBy;
     }
 
-    public void setGroupBy(List<String> groupBy) {
+    public void setGroupBy(List<Column> groupBy) {
         this.groupBy = groupBy;
     }
 
@@ -176,7 +169,6 @@ public class ChartConfigInfo<T> {
                 ", tableName='" + tableName + '\'' +
                 ", chartType='" + chartType + '\'' +
                 ", dataId=" + dataId +
-                ", dashboardsId=" + dashboardsId +
                 ", groupBy=" + groupBy +
                 ", subsections=" + subsections +
                 ", chartConfig=" + chartConfig +

+ 1 - 0
src/main/java/com/model/vo/configVo/ColumnRenameInfo.java

@@ -10,6 +10,7 @@ public class ColumnRenameInfo {
     private String isOpen;
     private String remarks;
 
+
     public String getColumnName() {
         return columnName;
     }

+ 55 - 0
src/main/java/com/model/vo/configVo/LineConfigInfo.java

@@ -0,0 +1,55 @@
+package com.model.vo.configVo;
+
+
+import com.model.bo.Column;
+
+import java.util.List;
+
+public class LineConfigInfo {
+    private String tableName;
+    private Column xAxis;
+    private Column yAxis;
+    private List<String> groups;
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public Column getxAxis() {
+        return xAxis;
+    }
+
+    public void setxAxis(Column xAxis) {
+        this.xAxis = xAxis;
+    }
+
+    public Column getyAxis() {
+        return yAxis;
+    }
+
+    public void setyAxis(Column yAxis) {
+        this.yAxis = yAxis;
+    }
+
+    public List<String> getGroups() {
+        return groups;
+    }
+
+    public void setGroups(List<String> groups) {
+        this.groups = groups;
+    }
+
+    @Override
+    public String toString() {
+        return "LineConfigInfo{" +
+                "tableName='" + tableName + '\'' +
+                ", xAxis=" + xAxis +
+                ", yAxis=" + yAxis +
+                ", groups=" + groups +
+                '}';
+    }
+}

+ 43 - 0
src/main/java/com/model/vo/configVo/PieConfigInfo.java

@@ -0,0 +1,43 @@
+package com.model.vo.configVo;
+
+
+import com.model.bo.Column;
+
+public class PieConfigInfo {
+    private String tableName;
+    private Column legendData;
+    private Column series;
+
+    public String getTableName() {
+        return tableName;
+    }
+
+    public void setTableName(String tableName) {
+        this.tableName = tableName;
+    }
+
+    public Column getLegendData() {
+        return legendData;
+    }
+
+    public void setLegendData(Column legendData) {
+        this.legendData = legendData;
+    }
+
+    public Column getSeries() {
+        return series;
+    }
+
+    public void setSeries(Column series) {
+        this.series = series;
+    }
+
+    @Override
+    public String toString() {
+        return "PieConfigInfo{" +
+                "tableName='" + tableName + '\'' +
+                ", legendData=" + legendData +
+                ", series=" + series +
+                '}';
+    }
+}

+ 8 - 10
src/main/java/com/model/vo/dataVo/HistogramDataInfo.java → src/main/java/com/model/vo/dataVo/ChartsDataInfo.java

@@ -1,32 +1,30 @@
 package com.model.vo.dataVo;
 
-import com.model.bo.Series;
-
 import java.util.List;
 
-public class HistogramDataInfo<T> {
-    private List<T> xAxis;
-    private List<Series> serieses;
+public class ChartsDataInfo<T> {
+    private List<String> xAxis;
+    private List<T> serieses;
 
-    public List<T> getxAxis() {
+    public List<String> getxAxis() {
         return xAxis;
     }
 
-    public void setxAxis(List<T> xAxis) {
+    public void setxAxis(List<String> xAxis) {
         this.xAxis = xAxis;
     }
 
-    public List<Series> getSerieses() {
+    public List<T> getSerieses() {
         return serieses;
     }
 
-    public void setSerieses(List<Series> serieses) {
+    public void setSerieses(List<T> serieses) {
         this.serieses = serieses;
     }
 
     @Override
     public String toString() {
-        return "HistogramDataInfo{" +
+        return "ChartsDataInfo{" +
                 "xAxis=" + xAxis +
                 ", serieses=" + serieses +
                 '}';

+ 51 - 0
src/main/java/com/server/CalculationJudgeUtil.java

@@ -0,0 +1,51 @@
+package com.server;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CalculationJudgeUtil {
+    @Autowired
+    TimeConverterUtil timeConverterUtil;
+
+    public String Judge(String type){
+        if (type == null || "".equals(type) || "sum".equals(type)){
+            return "sum";
+        }else if ("count".equals(type)){
+            return "count";
+        }else if ("max".equals(type)){
+            return "max";
+        }else if ("min".equals(type)){
+            return "min";
+        }else if ("avg".equals(type)){
+            return"avg";
+        }else if ("distinctCount".equals(type)){
+            return "distinct count";
+        }else {
+            return "sum";
+        }
+    }
+
+    /*
+    X轴,或饼图图例
+     */
+//    public List<String> xData(String xColumnType, String xColumn, String tableName, String xAxisType){
+//        //X轴
+//        //判断是否为日期类型
+//        if ("time".equals(xColumnType)){
+//            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+//            xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
+//            System.out.println("data:"+xAxisData);
+//        }else {
+//            xAxisData = showChartsMapper.getXAxis(xColumn, tableName);
+//
+//        }
+//
+//        if ("week".equals(xAxisType) || "month".equals(xAxisType) || "quarter".equals(xAxisType)){
+//            return xData;
+//        }else {
+//            return xAxisData;
+//        }
+//
+//    }
+}

+ 148 - 8
src/main/java/com/database1/server/ChartsConfigService.java → src/main/java/com/server/ChartsConfigService.java

@@ -1,6 +1,8 @@
-package com.database1.server;
+package com.server;
 
-import com.database1.dao.ChartsConfigMapper;
+import com.dao.ChartsConfigMapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.model.po.ChartConfig;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
@@ -10,6 +12,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class ChartsConfigService {
 
@@ -17,6 +21,8 @@ public class ChartsConfigService {
     TimeUtil timeUtil;
     @Autowired
     ChartsConfigMapper chartsConfigMapper;
+    @Autowired
+    ObjectMapper objectmapper;
 //    @Autowired
 //    private AggregateMapper aggregateMapper;
 //    @Autowired
@@ -63,13 +69,56 @@ public class ChartsConfigService {
 
         ChartConfig chartConfig = new ChartConfig();
         BeanUtils.copyProperties(chartConfigInfo, chartConfig);
-        chartConfig.setGroupBy(chartConfigInfo.getGroupBy().toString());
-        chartConfig.setSubsections(chartConfigInfo.getSubsections().toString());
-        chartConfig.setChartConfig(chartConfigInfo.getChartConfig().toString());
-        chartConfig.setAccessAuthority(chartConfigInfo.getAccessAuthority().toString());
-        chartConfig.setUpdateAuthority(chartConfigInfo.getUpdateAuthority().toString());
-        chartConfig.setFilters(chartConfigInfo.getFilters().toString());
 
+        String groupBy = null;
+//        String subsections = null;
+        String chartsConfig = null;
+        String accessAuthority = null;
+        String updateAuthority = null;
+        String filters = null;
+
+        try {
+            groupBy = objectmapper.writeValueAsString(chartConfigInfo.getGroupBy());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+//        try {
+//            subsections = objectmapper.writeValueAsString(chartConfigInfo.getSubsections());
+//        } catch (JsonProcessingException e) {
+//            e.printStackTrace();
+//        }
+
+        try {
+            chartsConfig = objectmapper.writeValueAsString(chartConfigInfo.getChartConfig());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            accessAuthority = objectmapper.writeValueAsString(chartConfigInfo.getAccessAuthority());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            updateAuthority = objectmapper.writeValueAsString(chartConfigInfo.getUpdateAuthority());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            filters = objectmapper.writeValueAsString(chartConfigInfo.getFilters());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        chartConfig.setGroupBy(groupBy);
+//        chartConfig.setSubsections(subsections);
+        chartConfig.setChartConfig(chartsConfig);
+        chartConfig.setAccessAuthority(accessAuthority);
+        chartConfig.setUpdateAuthority(updateAuthority);
+        chartConfig.setFilters(filters);
         chartConfig.setCreateDate(timeUtil.SystemTime());
 
         chartsConfigMapper.insertCharts(chartConfig);
@@ -77,6 +126,97 @@ public class ChartsConfigService {
         return new RepEntity(RepCode.success);
     }
 
+    /*
+    更新表设置
+     */
+    public RepEntity updateChartsConfig(ChartConfigInfo chartConfigInfo){
+
+
+        ChartConfig chartConfig = new ChartConfig();
+        BeanUtils.copyProperties(chartConfigInfo, chartConfig);
+
+        String groupBy = null;
+//        String subsections = null;
+        String chartsConfig = null;
+        String accessAuthority = null;
+        String updateAuthority = null;
+        String filters = null;
+
+        try {
+            groupBy = objectmapper.writeValueAsString(chartConfigInfo.getGroupBy());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+//        try {
+//            subsections = objectmapper.writeValueAsString(chartConfigInfo.getSubsections());
+//        } catch (JsonProcessingException e) {
+//            e.printStackTrace();
+//        }
+
+        try {
+            chartsConfig = objectmapper.writeValueAsString(chartConfigInfo.getChartConfig());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            accessAuthority = objectmapper.writeValueAsString(chartConfigInfo.getAccessAuthority());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            updateAuthority = objectmapper.writeValueAsString(chartConfigInfo.getUpdateAuthority());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        try {
+            filters = objectmapper.writeValueAsString(chartConfigInfo.getFilters());
+        } catch (JsonProcessingException e) {
+            e.printStackTrace();
+        }
+
+        chartConfig.setGroupBy(groupBy);
+//        chartConfig.setSubsections(subsections);
+        chartConfig.setChartConfig(chartsConfig);
+        chartConfig.setAccessAuthority(accessAuthority);
+        chartConfig.setUpdateAuthority(updateAuthority);
+        chartConfig.setFilters(filters);
+        chartConfig.setUpdateDate(timeUtil.SystemTime());
+
+        chartsConfigMapper.updateChartConfig(chartConfig);
+
+        return new RepEntity(RepCode.success);
+    }
+
+    /*
+    删除图表
+     */
+    public RepEntity delChartsConfig(List<Integer> idList){
+        chartsConfigMapper.deleteCharts(idList);
+        return new RepEntity(RepCode.success);
+    }
+
+    /*
+    查询图表列表
+     */
+    public RepEntity getListCharts(){
+
+        return new RepEntity(RepCode.success, chartsConfigMapper.getListCharts());
+    }
+
+    /*
+    查询单个图表配置
+     */
+    public RepEntity getOneCharts(int id){
+        if (id == 0){
+            return new RepEntity(RepCode.Null);
+        }
+        return new RepEntity(RepCode.success,chartsConfigMapper.getOneChart(id));
+    }
+
     /*
     删除总体表
      */

+ 84 - 0
src/main/java/com/server/DashboardsService.java

@@ -0,0 +1,84 @@
+package com.server;
+
+import com.dao.DashboardsMapper;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.model.po.Dashboards;
+import com.model.pojo.RepCode;
+import com.model.pojo.RepEntity;
+import com.model.vo.configVo.DashboardsInfo;
+import com.util.TimeUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class DashboardsService {
+    @Autowired
+    TimeUtil timeUtil;
+    @Autowired
+    DashboardsMapper dashboardsMapper;
+    @Autowired
+    ObjectMapper objectMapper;
+
+    /*
+    保存看板
+     */
+    public RepEntity setDashboards(DashboardsInfo dashboardsInfo){
+        Dashboards dashboards = new 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());
+
+        dashboardsMapper.setDashboards(dashboards);
+        return new RepEntity(RepCode.success);
+    }
+
+    /*
+    更新看板
+     */
+    public RepEntity updateDashboards(DashboardsInfo dashboardsInfo) {
+        Dashboards dashboards = new 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);
+        return new RepEntity(RepCode.success);
+    }
+
+    /*
+    删除看板
+     */
+    public RepEntity delDashboards(List<Integer> idList){
+        dashboardsMapper.delDashboards(idList);
+        return new RepEntity(RepCode.success);
+    }
+
+    /*
+    查看看板
+     */
+    public RepEntity getListDashboards(){
+        return new RepEntity(RepCode.success, dashboardsMapper.getListDashboards());
+    }
+}

+ 43 - 2
src/main/java/com/database1/server/DataConnectorService.java → src/main/java/com/server/DataConnectorService.java

@@ -1,10 +1,12 @@
-package com.database1.server;
+package com.server;
 
-import com.database1.dao.DataConnectorMapper;
+import com.dao.DataConnectorMapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.type.CollectionType;
 import com.model.bo.DatabaseConfig;
 import com.model.bo.Pages;
+import com.model.po.ColumnToShow;
 import com.model.po.DataConnector;
 import com.model.po.DataConnectorList;
 import com.model.po.Databases;
@@ -19,6 +21,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 //import com.dao.database2.DataColumnMapper;
@@ -221,4 +225,41 @@ public class DataConnectorService {
         dataConnectorMapper.updatabases(databases);
         return new RepEntity(RepCode.success);
     }
+
+    /*
+    查询列数据
+     */
+    public RepEntity getColumnData(int id){
+        DataConnector dataConnector = new DataConnector();
+        dataConnector = dataConnectorMapper.getColumnData(id);
+        String columnData = dataConnector.getColumnConfig();
+
+        List<ColumnRenameInfo> configList = new ArrayList<>();
+        if (columnData != null || (!"".equals(columnData))){
+            try {
+                CollectionType javaType = objectmapper.getTypeFactory().constructCollectionType(ArrayList.class, ColumnRenameInfo.class);
+                 configList =  objectmapper.readValue(columnData, javaType);   //这里不需要强制转换
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        List<ColumnToShow> toShows = new ArrayList<>();
+
+//        Iterator isList = configList.iterator();
+
+        for (int i = 0; i < configList.size(); i++ ){
+            ColumnRenameInfo columnRenameInfo = new ColumnRenameInfo();
+            ColumnToShow columnToShow = new ColumnToShow();
+            columnRenameInfo = configList.get(i);
+            if ("1".equals(columnRenameInfo.getIsOpen())) {
+                columnToShow.setColumnName(columnRenameInfo.getColumnName());
+                columnToShow.setColumnRaname(columnRenameInfo.getColumnLable());
+                columnToShow.setColumnType(columnRenameInfo.getColumnType());
+                columnToShow.setIsGroup(columnRenameInfo.getIsGroup());
+                columnToShow.setIsSubsection(columnRenameInfo.getIsSubsection());
+                toShows.add(columnToShow);
+            }
+        }
+        return new RepEntity(RepCode.success,toShows);
+    }
 }

+ 2 - 2
src/main/java/com/database2/server/ImplementSqlService.java → src/main/java/com/server/ImplementSqlService.java

@@ -1,6 +1,6 @@
-package com.database2.server;
+package com.server;
 
-import com.database2.dao.DataColumnMapper;
+import com.dao.DataColumnMapper;
 import com.model.po.ColumnData;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;

+ 26 - 40
src/main/java/com/database2/server/ShowChartsService.java → src/main/java/com/server/ShowHistogramService.java

@@ -1,11 +1,11 @@
-package com.database2.server;
+package com.server;
 
-import com.database2.dao.ShowChartsMapper;
+import com.dao.ShowChartsMapper;
 import com.model.bo.Series;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.HistogramConfigInfo;
-import com.model.vo.dataVo.HistogramDataInfo;
+import com.model.vo.dataVo.ChartsDataInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
@@ -14,58 +14,47 @@ import java.util.Iterator;
 import java.util.List;
 
 @Repository
-public class ShowChartsService {
+public class ShowHistogramService {
     @Autowired
     ShowChartsMapper showChartsMapper;
     @Autowired
     TimeConverterUtil timeConverterUtil;
+    @Autowired
+    CalculationJudgeUtil calculationJudgeUtil;
 
     /*
     柱状图数据展示
      */
     public RepEntity showHistogram(HistogramConfigInfo histogramConfigInfo){
-        HistogramDataInfo histogramDataInfo = new HistogramDataInfo();
+        ChartsDataInfo chartsDataInfo = new ChartsDataInfo();
         if (histogramConfigInfo == null || "".equals(histogramConfigInfo)){
             return new RepEntity(RepCode.Null);
         }
         String tableName = histogramConfigInfo.getTableName();
         String xColumn = histogramConfigInfo.getxAxis().getColumnRename();
         String yColumn = histogramConfigInfo.getyAxis().getColumnRename();
+        String xColumnType = histogramConfigInfo.getxAxis().getColumnType();
 
-        String xAxisType = histogramConfigInfo.getxAxis().getDataType();
+        String xAxisType = histogramConfigInfo.getxAxis().getShowDataType();
         List<String> groupBy = histogramConfigInfo.getGroups();
 
         if (xColumn == null || "".equals(xColumn) || yColumn == null || "".equals(yColumn)){
             return new RepEntity(RepCode.nullAxis);
         }
 
-        String dataType = histogramConfigInfo.getyAxis().getDataType();
-        if (dataType == null || "".equals(dataType) || "sum".equals(dataType)){
-            dataType = "sum";
-        }else if ("count".equals(dataType)){
-            dataType = "count";
-        }else if ("max".equals(dataType)){
-            dataType = "max";
-        }else if ("min".equals(dataType)){
-            dataType = "min";
-        }else if ("avg".equals(dataType)){
-            dataType = "avg";
-        }else if ("distinctCount".equals(dataType)){
-            dataType = "distinct count";
-        }else {
-            return new RepEntity(RepCode.erro);
-        }
+        String yType = histogramConfigInfo.getyAxis().getShowDataType();
+        String yAxisType = calculationJudgeUtil.Judge(yType);
+
 
         Series series = new Series();
         List<Double> value = new ArrayList<Double>();
         List<Series> serieses = new ArrayList<Series>();    //生成柱状图的系列
         List<String> xAxisData = new ArrayList<String>();  //X轴自己用
-        List<String> xData = new ArrayList<String>();      //X轴跟前端沟通失败之后转给前端用
+        List<String> xData = new ArrayList<String>();      //X轴前端用
 
         //X轴
         //判断是否为日期类型
-        if ("time".equals(histogramConfigInfo.getxAxis().getColumnType())){
-//            xAxisData = showChartsMapper.getDate(xColumn.getColumnRename(), tableName);
+        if ("time".equals(xColumnType)){
             xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
             xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
@@ -77,24 +66,23 @@ public class ShowChartsService {
             return new RepEntity(RepCode.Null);
         }
         if ("week".equals(xAxisType) || "month".equals(xAxisType) || "quarter".equals(xAxisType)){
-            histogramDataInfo.setxAxis(xData);
+            chartsDataInfo.setxAxis(xData);
         }else {
-            histogramDataInfo.setxAxis(xAxisData);
+            chartsDataInfo.setxAxis(xAxisData);
         }
 
-        System.out.println("x轴:"+ histogramDataInfo.getxAxis());
-
         //无分组时Y值
-        System.out.println("列:"+groupBy);
         Iterator itX = xAxisData.iterator();
         while (itX.hasNext()){
             String xdata = (String)itX.next();
             double valueOne = 0;
             String valueOnes = null;
-            if ("time".equals(histogramConfigInfo.getxAxis().getColumnType())){
-                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, dataType, xAxisType, xdata);
+            if ("time".equals(xColumnType)){
+//                System.out.println("Y:"+ yColumn + "........x:" + xColumn + "........yAxistype:" + yAxisType + "...xtpye:+"+yAxisType+ "   xdata:"+xdata);
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
+//                System.out.println("value:"+valueOnes);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, dataType, xdata);
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;
@@ -102,7 +90,6 @@ public class ShowChartsService {
                 valueOne = Double.parseDouble(valueOnes);
             }
             value.add(valueOne);
-            System.out.println("value:"+value);
         }
 
         System.out.println(value);
@@ -111,7 +98,6 @@ public class ShowChartsService {
         serieses.add(series);
         System.out.println(serieses);
 
-        System.out.println("size:"+groupBy.size());
         //有分组
         if (groupBy.size() != 0){
             serieses.remove(0);
@@ -139,11 +125,11 @@ public class ShowChartsService {
                         String xAxisDataOne = (String) itXAxisData.next();
                         double groupsValueOne = 0;
                         String groupsValueOnes = null;
-                        if ("time".equals(histogramConfigInfo.getxAxis().getColumnType())){
-                            groupsValueOnes = timeConverterUtil.getGroupTimeConverter(dataType, yColumn, tableName, groupByName, xAxisType,
+                        if ("time".equals(xColumnType)){
+                            groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
                                     groupsName, xColumn, xAxisDataOne);
                         }else {
-                            groupsValueOnes = showChartsMapper.getGroupsValue(dataType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne);
+                            groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne);
                         }
                         if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                             groupsValueOne = 0;
@@ -161,9 +147,9 @@ public class ShowChartsService {
             }
         }
 
-        histogramDataInfo.setSerieses(serieses);
+        chartsDataInfo.setSerieses(serieses);
 
-        return new RepEntity(RepCode.success, histogramDataInfo);
+        return new RepEntity(RepCode.success, chartsDataInfo);
     }
 
 

+ 143 - 0
src/main/java/com/server/ShowLineService.java

@@ -0,0 +1,143 @@
+package com.server;
+
+import com.dao.ShowChartsMapper;
+import com.model.bo.LineSeries;
+import com.model.bo.LineSeriesMap;
+import com.model.pojo.RepCode;
+import com.model.pojo.RepEntity;
+import com.model.vo.configVo.LineConfigInfo;
+import com.model.vo.dataVo.ChartsDataInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+@Service
+public class ShowLineService {
+    @Autowired
+    ShowChartsMapper showChartsMapper;
+    @Autowired
+    TimeConverterUtil timeConverterUtil;
+    @Autowired
+    CalculationJudgeUtil calculationJudgeUtil;
+
+    /*
+    Line数据展示
+     */
+    public RepEntity showLine(LineConfigInfo lineConfigInfo){
+        ChartsDataInfo chartsDataInfo = new ChartsDataInfo();
+        if (lineConfigInfo == null || "".equals(lineConfigInfo)){
+            return new RepEntity(RepCode.Null);
+        }
+        String tableName = lineConfigInfo.getTableName();
+        String xColumn = lineConfigInfo.getxAxis().getColumnRename();
+        String yColumn = lineConfigInfo.getyAxis().getColumnRename();
+
+        String xAxisType = lineConfigInfo.getxAxis().getShowDataType();
+        List<String> groupBy = lineConfigInfo.getGroups();
+
+        if (xColumn == null || "".equals(xColumn) || yColumn == null || "".equals(yColumn)){
+            return new RepEntity(RepCode.nullAxis);
+        }
+
+        String yType = lineConfigInfo.getyAxis().getShowDataType();
+        String yAxisType = calculationJudgeUtil.Judge(yType);
+
+
+
+        List<LineSeriesMap> value = new ArrayList<LineSeriesMap>();
+        List<LineSeries> serieses = new ArrayList<LineSeries>();    //生成柱状图的系列
+        List<String> xAxisData = new ArrayList<String>();  //X轴自己用
+//        List<String> xData = new ArrayList<String>();      //X轴前端用
+
+        //X轴
+        //判断是否为日期类型
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+//            xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
+            System.out.println("data:"+xAxisData);
+
+        if ("".equals(xAxisData) || xAxisData == null || xAxisData.size() == 0){
+            return new RepEntity(RepCode.Null);
+        }
+
+        //无分组时Y值
+        Iterator itX = xAxisData.iterator();
+        while (itX.hasNext()){
+            String xdata = (String)itX.next();
+            double valueOne = 0;
+            String valueOnes = null;
+//                System.out.println("Y:"+ yColumn + "........x:" + xColumn + "........yAxistype:" + yAxisType + "...xtpye:+"+yAxisType+ "   xdata:"+xdata);
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
+//                System.out.println("value:"+valueOnes);
+            if (valueOnes == null || "".equals(valueOnes)){
+                valueOne = 0;
+            }else {
+                valueOne = Double.parseDouble(valueOnes);
+            }
+            LineSeriesMap lineSeriesMap = new LineSeriesMap();
+            lineSeriesMap.setValue(valueOne);
+            lineSeriesMap.setDate(xdata);
+            value.add(lineSeriesMap);
+        }
+        LineSeries series = new LineSeries();
+//        series.setName(yColumn);
+        series.setMdata(value);
+
+        serieses.add(series);
+        System.out.println(serieses);
+
+        //有分组
+        if (groupBy.size() != 0){
+            serieses.remove(0);
+            Iterator itGroup = groupBy.iterator();  //分组数
+
+            //便利分组
+            while (itGroup.hasNext()){
+                String groupByName = (String) itGroup.next();
+                List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName); //查询每个分组系列
+                System.out.println("groupdata:"+ groupsData.toString());
+                Iterator itGroupsData = groupsData.iterator();
+
+                //每个分组得到得每个系列
+                while(itGroupsData.hasNext()){
+                    String groupsName = (String)itGroupsData.next();
+
+                    List<LineSeriesMap> groupsValue = new ArrayList<LineSeriesMap>();
+                    Iterator itXAxisData = xAxisData.iterator();
+
+                    //每个系列对应X轴上的值
+                    while (itXAxisData.hasNext()){
+                        String xAxisDataOne = (String) itXAxisData.next();
+                        double groupsValueOne = 0;
+                        String groupsValueOnes = null;
+                        groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
+                                    groupsName, xColumn, xAxisDataOne);
+                        if ("".equals(groupsValueOnes) || groupsValueOnes == null){
+                            groupsValueOne = 0;
+                        }else{
+                            groupsValueOne = Double.parseDouble(groupsValueOnes);
+                        }
+                        LineSeriesMap lineSeriesMap = new LineSeriesMap();
+                        lineSeriesMap.setDate(xAxisDataOne);
+                        lineSeriesMap.setValue(groupsValueOne);
+                        groupsValue.add(lineSeriesMap);
+                    }
+
+                    LineSeries lineSeries = new LineSeries();
+                    lineSeries.setMdata(groupsValue);
+                    lineSeries.setName(groupsName);
+                    serieses.add(lineSeries);
+                }
+                System.out.println(serieses);
+            }
+        }
+
+        chartsDataInfo.setSerieses(serieses);
+
+        return new RepEntity(RepCode.success, chartsDataInfo);
+    }
+
+
+}

+ 106 - 0
src/main/java/com/server/ShowPieService.java

@@ -0,0 +1,106 @@
+package com.server;
+
+import com.dao.ShowChartsMapper;
+import com.model.bo.PieSeries;
+import com.model.bo.PieSeriesMap;
+import com.model.pojo.RepCode;
+import com.model.pojo.RepEntity;
+import com.model.vo.configVo.PieConfigInfo;
+import com.model.vo.dataVo.ChartsDataInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+@Service
+public class ShowPieService {
+    @Autowired
+    ShowChartsMapper showChartsMapper;
+    @Autowired
+    TimeConverterUtil timeConverterUtil;
+    @Autowired
+    CalculationJudgeUtil calculationJudgeUtil;
+
+    /*
+    Pie数据展示
+     */
+    public RepEntity showPie(PieConfigInfo pieConfigInfo){
+        ChartsDataInfo<PieSeries> chartsDataInfo = new ChartsDataInfo();
+        if (pieConfigInfo == null || "".equals(pieConfigInfo)){
+            return new RepEntity(RepCode.Null);
+        }
+        String tableName = pieConfigInfo.getTableName();
+        String xColumn = pieConfigInfo.getLegendData().getColumnRename();
+        String yColumn = pieConfigInfo.getSeries().getColumnRename();
+        String xColumnType = pieConfigInfo.getLegendData().getColumnType();
+
+        String xAxisType = pieConfigInfo.getLegendData().getShowDataType();
+
+        if (xColumn == null || "".equals(xColumn) || yColumn == null || "".equals(yColumn)){
+            return new RepEntity(RepCode.nullAxis);
+        }
+
+        String yType = pieConfigInfo.getSeries().getShowDataType();
+        String yAxisType = calculationJudgeUtil.Judge(yType);
+
+
+        PieSeries series = new PieSeries();
+        List<PieSeriesMap> value = new ArrayList<PieSeriesMap>();
+        List<PieSeries> serieses = new ArrayList<PieSeries>();    //生成柱状图的系列
+        List<String> xAxisData = new ArrayList<String>();  //X轴自己用
+        List<String> xData = new ArrayList<String>();      //X轴前端用
+
+        //X轴
+        //判断是否为日期类型
+        if ("time".equals(xColumnType)){
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
+            System.out.println("data:"+xAxisData);
+        }else {
+            xAxisData = showChartsMapper.getXAxis(xColumn, tableName);
+
+        }
+        if ("".equals(xAxisData) || xAxisData == null || xAxisData.size() == 0){
+            return new RepEntity(RepCode.Null);
+        }
+        if ("week".equals(xAxisType) || "month".equals(xAxisType) || "quarter".equals(xAxisType)){
+            chartsDataInfo.setxAxis(xData);
+        }else {
+            chartsDataInfo.setxAxis(xAxisData);
+        }
+
+        //无分组时Y值
+        Iterator itX = xAxisData.iterator();
+        while (itX.hasNext()){
+            String xdata = (String)itX.next();
+            double valueOne = 0;
+            String valueOnes = null;
+            PieSeriesMap pieSeriesMap = new PieSeriesMap();
+            if ("time".equals(xColumnType)){
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
+            }else {
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+            }
+            if (valueOnes == null || "".equals(valueOnes)){
+                valueOne = 0;
+            }else {
+                valueOne = Double.parseDouble(valueOnes);
+            }
+            pieSeriesMap.setName(xdata);
+            pieSeriesMap.setValue(valueOne);
+            value.add(pieSeriesMap);
+        }
+
+        series.setName(pieConfigInfo.getSeries().getColumnName());
+        series.setValue(value);
+        serieses.add(series);
+
+        chartsDataInfo.setSerieses(serieses);
+
+        return new RepEntity(RepCode.success, chartsDataInfo);
+    }
+
+
+}

+ 11 - 5
src/main/java/com/database2/server/TimeConverterUtil.java → src/main/java/com/server/TimeConverterUtil.java

@@ -1,6 +1,6 @@
-package com.database2.server;
+package com.server;
 
-import com.database2.dao.ShowChartsMapper;
+import com.dao.ShowChartsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -37,7 +37,8 @@ public class TimeConverterUtil {
         }else if ("halfYear".equals(timeType)){
             value = showChartsMapper.getTimeYear(xColumnName, tableName);
         }else {
-            return null;
+            timeGroup = "'YYYY-MM-DD'";
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
         }
         return value;
     }
@@ -72,7 +73,7 @@ public class TimeConverterUtil {
         //判断时间类型
         if ("halfYear".equals(timeType)){
             String[] str = xdata.split("-");
-            if ("上半年".equals(str[1])){
+            if ("H1".equals(str[1])){
                 String firstIndex = str[0] + "-01";
                 String afterIndex = str[0] + "-06";
                 value = showChartsMapper.getTimeValueYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex);
@@ -95,6 +96,8 @@ public class TimeConverterUtil {
         }else if ("week".equals(timeType)){
             timeGroup = "'YYYY-WW'";
             value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
+        }else {
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }
         return value;
     }
@@ -102,7 +105,7 @@ public class TimeConverterUtil {
     //有分组时间类型值处理
     public String getGroupTimeConverter(String dataType, String yColumn, String tableName, String groupByName, String timeType,
                                         String groupsName, String xColumn, String xAxisDataOne){
-        String timeGroup = "'YYYY-MMDD'";
+        String timeGroup = "'YYYY-MM-DD'";
         String value = null;
         if ("year".equals(timeType)){
             timeGroup = "'YYYY'";
@@ -134,6 +137,9 @@ public class TimeConverterUtil {
                 String afterIndex = str[0] + "-12";
                 value = showChartsMapper.getTimeValueHalfYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, groupByName, groupsName);
             }
+        }else{
+            value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
+                    timeGroup, xAxisDataOne);
         }
         return value;
     }

+ 8 - 8
src/main/resources/application.properties

@@ -2,18 +2,18 @@
 #spring.datasource.type=jdbc:com.alibaba.druid.pool.DruidDataSource
 
 #数据库驱动
-spring.datasource.database1.driver-class-name=oracle.jdbc.driver.OracleDriver
+spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
 #数据库连接地址
-spring.datasource.database1.jdbc-url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-spring.datasource.database1.username=UAS_DEV
-spring.datasource.database1.password=select!#%*(
+spring.datasource.url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
+spring.datasource.username=UAS_DEV
+spring.datasource.password=select!#%*(
 #默认数据源
 
 
-spring.datasource.database2.driver-class-name=oracle.jdbc.driver.OracleDriver
-spring.datasource.database2.jdbc-url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
-spring.datasource.database2.username=UAS_TEST
-spring.datasource.database2.password=select!#%*(
+#spring.datasource.database2.driver-class-name=oracle.jdbc.driver.OracleDriver
+#spring.datasource.database2.jdbc-url=jdbc:oracle:thin:@192.168.253.6:1521:orcl
+#spring.datasource.database2.username=UAS_DEV
+#spring.datasource.database2.password=select!#%*(
 
 
 spring.jpa.database=oracle