heqinwei 7 жил өмнө
parent
commit
03915c9b94
27 өөрчлөгдсөн 499 нэмэгдсэн , 60 устгасан
  1. 9 0
      src/main/java/com/controller/ChartsConfigController.java
  2. 8 0
      src/main/java/com/controller/DataConnectorController.java
  3. 16 2
      src/main/java/com/controller/ShowChartsController.java
  4. 11 4
      src/main/java/com/dao/ChartsConfigMapper.java
  5. 16 4
      src/main/java/com/dao/DataConnectorMapper.java
  6. 18 8
      src/main/java/com/dao/ShowChartsMapper.java
  7. 30 0
      src/main/java/com/model/bo/GroupUpdateId.java
  8. 40 0
      src/main/java/com/model/bo/Screen.java
  9. 3 3
      src/main/java/com/model/po/ChartConfig.java
  10. 3 3
      src/main/java/com/model/po/ChartConfigList.java
  11. 3 3
      src/main/java/com/model/po/DataConnector.java
  12. 5 6
      src/main/java/com/model/po/DataConnectorList.java
  13. 2 1
      src/main/java/com/model/pojo/RepCode.java
  14. 3 3
      src/main/java/com/model/vo/configVo/ChartConfigInfo.java
  15. 10 0
      src/main/java/com/model/vo/configVo/HistogramConfigInfo.java
  16. 42 0
      src/main/java/com/model/vo/configVo/PopulationInfo.java
  17. 25 0
      src/main/java/com/model/vo/dataVo/PopulationDataInfo.java
  18. 18 2
      src/main/java/com/server/ChartsConfigService.java
  19. 4 0
      src/main/java/com/server/DataBasesService.java
  20. 29 4
      src/main/java/com/server/DataConnectorService.java
  21. 15 12
      src/main/java/com/server/ShowHistogramService.java
  22. 3 3
      src/main/java/com/server/ShowIndividualService.java
  23. 5 1
      src/main/java/com/server/ShowPieService.java
  24. 111 0
      src/main/java/com/server/ShowPopulationService.java
  25. 1 1
      src/main/java/com/server/ShowScatterService.java
  26. 62 0
      src/main/java/com/util/ScreenUtil.java
  27. 7 0
      src/main/resources/application.properties

+ 9 - 0
src/main/java/com/controller/ChartsConfigController.java

@@ -1,5 +1,6 @@
 package com.controller;
 
+import com.model.bo.GroupUpdateId;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.ChartConfigInfo;
 import com.model.vo.configVo.GroupInfo;
@@ -34,6 +35,14 @@ public class ChartsConfigController {
         return chartsConfigService.updateChartsConfig(body);
     }
 
+    /*
+    更新图表的分组
+     */
+    @RequestMapping("/updateChartConfigGroup")
+    public RepEntity updateConfigGroup(@RequestBody GroupUpdateId body){
+        return chartsConfigService.updateConfigGroup(body);
+    }
+
     /*
     删除
      */

+ 8 - 0
src/main/java/com/controller/DataConnectorController.java

@@ -1,5 +1,6 @@
 package com.controller;
 
+import com.model.bo.GroupUpdateId;
 import com.model.bo.ToSql;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.DataConnectorInfo;
@@ -56,6 +57,13 @@ public class DataConnectorController {
         return dataConnectorService.updateData(body);
     }
 
+    /*
+    更新数据源配置的分组
+     */
+    @RequestMapping("/updateConnectConfigGroup")
+    public RepEntity updateConConfigGroup(@RequestBody GroupUpdateId body){
+        return dataConnectorService.updateConfigGroup(body);
+    }
 
 
     /*

+ 16 - 2
src/main/java/com/controller/ShowChartsController.java

@@ -4,10 +4,13 @@ import com.model.pojo.RepEntity;
 import com.model.vo.configVo.*;
 import com.server.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.sql.SQLException;
+
 @RestController
 public class ShowChartsController {
 
@@ -21,10 +24,13 @@ public class ShowChartsController {
     ShowScatterService showScatterService;
     @Autowired
     ShowIndividualService showIndividualService;
+    @Autowired
+    ShowPopulationService showPopulationService;
     /*
     展示柱状图
      */
     @RequestMapping("/showHistogram")
+    @Transactional
     public RepEntity showHistogram(@RequestBody HistogramConfigInfo body){
         return showHistogramService.showHistogram(body);
     }
@@ -57,7 +63,15 @@ public class ShowChartsController {
     show个体统计表
      */
     @RequestMapping("/showIndividual")
-    public RepEntity ShowIndividual(@RequestBody IndividualConfigInfo body){
-        return showIndividualService.ShowIndividual(body);
+    public RepEntity showIndividual(@RequestBody IndividualConfigInfo body){
+        return showIndividualService.showIndividual(body);
+    }
+
+    /*
+    show总体统计表
+     */
+    @RequestMapping("/showPopulation")
+    public RepEntity showPopulation(@RequestBody PopulationInfo body) throws SQLException {
+        return showPopulationService.showPopulation(body);
     }
 }

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

@@ -13,7 +13,7 @@ import java.util.List;
 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) " +
-            "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'))" )
 //    @Options(useGeneratedKeys=false, keyProperty = "chartId",keyColumn = "id")
     @SelectKey(before=true,keyProperty="chartId",resultType=Integer.class,statement="SELECT charts_squence.nextval from dual",keyColumn = "id")
@@ -29,14 +29,14 @@ public interface ChartsConfigMapper {
             "</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_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," +
             "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}")
     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, CHART_DESCRIBES as describes, bc_charts_group as ChartsGroup from bi_charts")
+            ",bc_filters as filters, CHART_DESCRIBES as describes, bc_charts_group as chartsGroup from bi_charts")
     List<ChartConfigList> getListCharts();
 
     /*
@@ -73,12 +73,18 @@ public interface ChartsConfigMapper {
             "<if test=\"accessAuthority != null\"> , ACCESS_AUTHORITY = #{accessAuthority} </if>" +
             "<if test=\"updateAuthority != null\"> , UPDATE_AUTHORITY = #{updateAuthority} </if>" +
             "<if test=\"style != null\"> , BC_CHART_STYLE = #{style} </if>" +
-            "<if test=\"group !=null\">, BC_CHARTS_GROUP = #{ChartsGroup}</if>"+
+            "<if test=\"chartsGroup !=null\">, BC_CHARTS_GROUP = #{chartsGroup}</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);
 
+    /*
+    更新图表分组
+     */
+    @Update("update bi_charts set BC_CHARTS_GROUP = #{chartsGroup} where id = #{chartId}")
+    void updateConfigGroup(@Param("chartId") int chartId, @Param("chartsGroup") int chartsGroup);
+
     /*
    创建图表分组
     */
@@ -138,4 +144,5 @@ public interface ChartsConfigMapper {
             "create_date as createDate from bi_charts_group")
     List<GroupInfo> getChartsGroup();
 
+
 }

+ 16 - 4
src/main/java/com/dao/DataConnectorMapper.java

@@ -34,7 +34,7 @@ public interface DataConnectorMapper {
     查询单个数据源
      */
     @Select("select ID as dataId, DATA_NAME as dataName, DATA_NOTE as note, DATA_TAG as dataTag, COLUMNS_CONFIG as columnConfig, LOAD_OBJECT as loadObject," +
-            "CREATE_BY as createBy, USED_NUMBER as userNumber, CREATE_DATE as createDate,DB_CONFIG as dbConfig, BD_group as ConnectorGroup," +
+            "CREATE_BY as createBy, USED_NUMBER as userNumber, CREATE_DATE as createDate,DB_CONFIG as dbConfig, BD_group as connectorGroup," +
             "CON_TYPE as type from bi_data_connectors where id = #{id}")
     DataConnector getOneData(int id);
 
@@ -42,14 +42,14 @@ public interface DataConnectorMapper {
     查询数据源列表
      */
     @Select("select id as dataId, con_type as type, data_name as dataName, data_tag as dataTag, data_note as note, create_by as createBy, create_date as createDate," +
-            " used_number as usedNumber, db_config as dbConfig ,BD_group as ConnectorGroup from bi_data_connectors")
+            " used_number as usedNumber, db_config as dbConfig ,BD_group as connectorGroup from bi_data_connectors")
     List<DataConnectorList> getDataConnectorList();
 
     /*
     插入数据源配置
      */
     @Insert("INSERT INTO bi_data_connectors(id,data_name,data_note,data_tag,con_type,LOAD_OBJECT,DB_CONFIG,columns_config,used_number,create_by,create_date, table_name, BD_GROUP) " +
-            "VALUES (#{dataId},#{dataName}, #{note}, #{dataTag}, #{type}, #{loadObject}, #{dbConfig},#{columnConfig}, #{usedNumber},#{createBy}, to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss'), #{tableName}, #{ConnectorGroup})")
+            "VALUES (#{dataId},#{dataName}, #{note}, #{dataTag}, #{type}, #{loadObject}, #{dbConfig},#{columnConfig}, #{usedNumber},#{createBy}, to_date(#{createDate},'YYYY-MM-DD hh24:mi:ss'), #{tableName}, #{connectorGroup})")
     @SelectKey(before=true,keyProperty="dataId",resultType=int.class,statement="SELECT BI_DASHBOARDS_squence.nextval from dual",keyColumn = "id")
     void insertDataConnector(DataConnector dataConnector);
 
@@ -68,11 +68,17 @@ public interface DataConnectorMapper {
             "<if test=\"type != null\"> , con_TYPE = #{type} </if>" +
             "<if test=\"note != null\"> , DATA_NOTE = #{note} </if>" +
             "<if test=\"tableName != null\"> , table_name = #{tableName} </if>" +
-            "<if test=\"ConnectorGroup != null\"> , BD_GROUP = #{ConnectorGroup} </if>"+
+            "<if test=\"connectorGroup != null\"> , BD_GROUP = #{connectorGroup} </if>"+
             "where id = #{dataId}" +
             "</script>")
     void updateData(DataConnector dataConnector);
 
+    /*
+    更新数据源配置的分组
+     */
+    @Update("update bi_data_connectors set BD_GROUP = #{connectGroup} where id = #{dataId}")
+    void updateConfigGroup(@Param("dataId") int dataId, @Param("connectGroup") int connectGroup);
+
     /*
     删除数据源
      */
@@ -185,4 +191,10 @@ public interface DataConnectorMapper {
     @Select("select bb_id as id, bb_group_name as groupName, bb_index as groupIndex, bb_father_id as fatherId, create_by as createBy," +
             "create_date as createDate from bi_base_group_by")
     List<GroupInfo> getConnectorGroup();
+
+    /*
+    查询数据源是否关联图表
+     */
+    @Select("select chart_name from bi_charts where bd_data_ID = #{id}")
+    List<String> getChartsName(int id);
 }

+ 18 - 8
src/main/java/com/dao/ShowChartsMapper.java

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
 
+import java.util.LinkedHashMap;
 import java.util.List;
 
 @Mapper
@@ -18,17 +19,11 @@ public interface ShowChartsMapper {
 
 
     //x轴数据
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} = #{xdata}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} = #{xdata} ${screen}")
     String getValues(@Param("yAxisName") String yAxisName, @Param("xColumn") String xColumn,
                      @Param("tableName") String tableName, @Param("dataType") String dataType,
-                     @Param("xdata") String xdata);
+                     @Param("xdata") String xdata, @Param("screen") String screen);
 
-    //x轴数据
-//    @Select("select ${dataType}(${yAxisName}) from ${tableName} group by ${xColumn}")
-//    List<Double> getYAxis(@Param("yAxisName") String yAxisName, @Param("xColumn") String xColumn, @Param("tableName") String tableName, @Param("dataType") String dataType);
-
-//    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xAxisName} = #{values} group by ${groupsBy}")
-//    List<String> getGroups(@Param("groupsBy") String groupsBy, @Param("tableName") String tableName);
 
     //查询分组系列
     @Select("select ${groupsBy} from ${tableName} group by ${groupsBy}")
@@ -98,4 +93,19 @@ public interface ShowChartsMapper {
      */
     @Select("select ${columnList} from ${tableName} where ${keyName} = #{id} ")
     Object getOtherData(@Param("columnList") String columnList, @Param("id") int id, @Param("tableName") String tableName, @Param("keyName") String keyName);
+
+    /*
+    总体统计求值
+     */
+    @Select("select ${operation}(${columnName}) from ${tableName} where ${columnName} between #{first} and #{last}")
+    Double getValue(@Param("tableName") String tableName, @Param("columnName") String columnName, @Param("operation") String operation, @Param("first") Double first,
+                    @Param("last") Double last);
+
+    /*
+    总体分组的值
+     */
+    @Select("select ${groupBy},${operation} from ${tableName} group by ${groupBy} order by ${groupByOne}")
+    List<LinkedHashMap<String, Object>> getGroupByValue(@Param("groupBy") String groupBy, @Param("operation") String operation, @Param("tableName") String tableName,
+                                                        @Param("groupByOne") String groupByOne);
+
 }

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

@@ -0,0 +1,30 @@
+package com.model.bo;
+
+public class GroupUpdateId {
+    private int id;
+    private int groupId;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(int groupId) {
+        this.groupId = groupId;
+    }
+
+    @Override
+    public String toString() {
+        return "GroupUpdateId{" +
+                "id=" + id +
+                ", groupId=" + groupId +
+                '}';
+    }
+}

+ 40 - 0
src/main/java/com/model/bo/Screen.java

@@ -0,0 +1,40 @@
+package com.model.bo;
+
+public class Screen {
+    private String columnName;
+    private String columnType;
+    private String symbol;
+    private String value;
+
+    public String getColumnName() {
+        return columnName;
+    }
+
+    public void setColumnName(String columnName) {
+        this.columnName = columnName;
+    }
+
+    public String getSymbol() {
+        return symbol;
+    }
+
+    public void setSymbol(String symbol) {
+        this.symbol = symbol;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getColumnType() {
+        return columnType;
+    }
+
+    public void setColumnType(String columnType) {
+        this.columnType = columnType;
+    }
+}

+ 3 - 3
src/main/java/com/model/po/ChartConfig.java

@@ -7,7 +7,7 @@ public class ChartConfig {
     private String chartType;
     private int DataId;            //数据源id
 //    private int dashboardsId;      //看板id
-    private int ChartsGroup;
+    private int chartsGroup;
     private String groupBy;        //分组
     private String Subsections;    //分段
     private String chartConfig;
@@ -22,11 +22,11 @@ public class ChartConfig {
 
 
     public int getChartsGroup() {
-        return ChartsGroup;
+        return chartsGroup;
     }
 
     public void setChartsGroup(int chartsGroup) {
-        ChartsGroup = chartsGroup;
+        this.chartsGroup = chartsGroup;
     }
 
     public int getChartId() {

+ 3 - 3
src/main/java/com/model/po/ChartConfigList.java

@@ -5,16 +5,16 @@ public class ChartConfigList {
     private String chartName;
     private String chartType;
     private String describes;
-    private int ChartsGroup;
+    private int chartsGroup;
     private String createBy;
     private String createDate;
 
     public int getChartsGroup() {
-        return ChartsGroup;
+        return chartsGroup;
     }
 
     public void setChartsGroup(int chartsGroup) {
-        ChartsGroup = chartsGroup;
+        this.chartsGroup = chartsGroup;
     }
 
     public String getDescribes() {

+ 3 - 3
src/main/java/com/model/po/DataConnector.java

@@ -9,7 +9,7 @@ public class DataConnector {
     private String tableName;
     private String dbConfig;         //数据库配置
     private String loadObject;    //加载对象
-    private int ConnectorGroup;
+    private int connectorGroup;
     private String note;
     private String columnConfig;
     private String dataTag;
@@ -20,11 +20,11 @@ public class DataConnector {
     private String updateDate;
 
     public int getConnectorGroup() {
-        return ConnectorGroup;
+        return connectorGroup;
     }
 
     public void setConnectorGroup(int connectorGroup) {
-        ConnectorGroup = connectorGroup;
+        this.connectorGroup = connectorGroup;
     }
 
     public int getDataId() {

+ 5 - 6
src/main/java/com/model/po/DataConnectorList.java

@@ -7,17 +7,17 @@ public class DataConnectorList {
     private String type;
     private String dataTag;
     private String dbConfig;
-    private int group;
+    private int connectorGroup;
     private int usedNumber;
     private String createBy;
     private String createDate;
 
-    public int getGroup() {
-        return group;
+    public int getConnectorGroup() {
+        return connectorGroup;
     }
 
-    public void setGroup(int group) {
-        this.group = group;
+    public void setConnectorGroup(int connectorGroup) {
+        this.connectorGroup = connectorGroup;
     }
 
     public int getDataId() {
@@ -102,7 +102,6 @@ public class DataConnectorList {
                 ", type='" + type + '\'' +
                 ", dataTag='" + dataTag + '\'' +
                 ", dbConfig='" + dbConfig + '\'' +
-                ", group='" + group + '\'' +
                 ", usedNumber=" + usedNumber +
                 ", createBy='" + createBy + '\'' +
                 ", createDate='" + createDate + '\'' +

+ 2 - 1
src/main/java/com/model/pojo/RepCode.java

@@ -6,7 +6,8 @@ public enum  RepCode {
     Null(-100,"数据为空"),
     nullAxis(-101,"x轴或y轴为空"),
     erro(-110,"参数错误"),
-    nullTableName(-120,"表名为空");
+    nullTableName(-120,"表名为空"),
+    hasChartsUsing(-130, "图表正在使用");
 
     private int code;
     private String msg;

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

@@ -11,7 +11,7 @@ public class ChartConfigInfo {
     private String chartType;
     private int dataId;            //数据源id
 //    private int dashboardsId;      //看板id
-    private int ChartsGroup;
+    private int chartsGroup;
     private List<Column> groupBy;        //分组
     private List<Column> subsections;    //分段
     private String chartConfig;
@@ -24,11 +24,11 @@ public class ChartConfigInfo {
 
 
     public int getChartsGroup() {
-        return ChartsGroup;
+        return chartsGroup;
     }
 
     public void setChartsGroup(int chartsGroup) {
-        ChartsGroup = chartsGroup;
+        this.chartsGroup = chartsGroup;
     }
 
     public int getChartId() {

+ 10 - 0
src/main/java/com/model/vo/configVo/HistogramConfigInfo.java

@@ -2,6 +2,7 @@ package com.model.vo.configVo;
 
 
 import com.model.bo.Column;
+import com.model.bo.Screen;
 
 import java.util.List;
 
@@ -11,6 +12,7 @@ public class HistogramConfigInfo {
     private Column xAxis;
     private Column yAxis;
     private List<String> groups;
+    private List<Screen> filters;
 
     public int getId() {
         return id;
@@ -44,6 +46,14 @@ public class HistogramConfigInfo {
         this.groups = groups;
     }
 
+    public List<Screen> getFilters() {
+        return filters;
+    }
+
+    public void setFilters(List<Screen> filters) {
+        this.filters = filters;
+    }
+
     @Override
     public String toString() {
         return "HistogramConfigInfo{" +

+ 42 - 0
src/main/java/com/model/vo/configVo/PopulationInfo.java

@@ -0,0 +1,42 @@
+package com.model.vo.configVo;
+
+import java.util.List;
+
+public class PopulationInfo {
+    private int id;
+    private String columnName;
+    private List<String> operatorList;
+    private List<String> groupByList;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getColumnName() {
+        return columnName;
+    }
+
+    public void setColumnName(String columnName) {
+        this.columnName = columnName;
+    }
+
+    public List<String> getOperatorList() {
+        return operatorList;
+    }
+
+    public void setOperatorList(List<String> operatorList) {
+        this.operatorList = operatorList;
+    }
+
+    public List<String> getGroupByList() {
+        return groupByList;
+    }
+
+    public void setGroupByList(List<String> groupByList) {
+        this.groupByList = groupByList;
+    }
+}

+ 25 - 0
src/main/java/com/model/vo/dataVo/PopulationDataInfo.java

@@ -0,0 +1,25 @@
+package com.model.vo.dataVo;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+public class PopulationDataInfo {
+    private List<String> columnHead;
+    private List<LinkedHashMap<String, Object>> valueList;
+
+    public List<String> getColumnHead() {
+        return columnHead;
+    }
+
+    public void setColumnHead(List<String> columnHead) {
+        this.columnHead = columnHead;
+    }
+
+    public List<LinkedHashMap<String, Object>> getValueList() {
+        return valueList;
+    }
+
+    public void setValueList(List<LinkedHashMap<String, Object>> valueList) {
+        this.valueList = valueList;
+    }
+}

+ 18 - 2
src/main/java/com/server/ChartsConfigService.java

@@ -3,6 +3,7 @@ package com.server;
 import com.dao.ChartsConfigMapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.model.bo.GroupUpdateId;
 import com.model.po.ChartConfig;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
@@ -32,7 +33,6 @@ public class ChartsConfigService {
      */
     public RepEntity setChartsConfig(ChartConfigInfo chartConfigInfo){
 
-
         ChartConfig chartConfig = new ChartConfig();
         BeanUtils.copyProperties(chartConfigInfo, chartConfig);
 
@@ -81,6 +81,10 @@ public class ChartsConfigService {
         chartConfig.setStyle(style);
         chartConfig.setCreateDate(timeUtil.SystemTime());
 
+        if (chartConfig.getChartsGroup() == 0){
+            chartConfig.setChartsGroup(-1);
+        }
+
         chartsConfigMapper.insertCharts(chartConfig);
         int id = chartConfig.getChartId();
 
@@ -140,12 +144,24 @@ public class ChartsConfigService {
         chartConfig.setFilters(filters);
         chartConfig.setStyle(style);
         chartConfig.setUpdateDate(timeUtil.SystemTime());
-
+        if (chartConfig.getChartsGroup() == 0){
+            chartConfig.setChartsGroup(-1);
+        }
         chartsConfigMapper.updateChartConfig(chartConfig);
 
         return new RepEntity(RepCode.success);
     }
 
+    /*
+    更新图表配置的分组
+     */
+    public RepEntity updateConfigGroup(GroupUpdateId groupUpdateId){
+        int chartId = groupUpdateId.getId();
+        int chartGroupId = groupUpdateId.getGroupId();
+        chartsConfigMapper.updateConfigGroup(chartId, chartGroupId);
+        return new RepEntity(RepCode.success);
+    }
+
     /*
     删除图表
      */

+ 4 - 0
src/main/java/com/server/DataBasesService.java

@@ -38,6 +38,10 @@ public class DataBasesService {
         Databases databases = new Databases();
         BeanUtils.copyProperties(databasesInfo, databases);
         databases.setCreateDate(timeUtil.SystemTime());
+        String note = databases.getNote();
+        if (note == null || "".equals(note)){
+            note = "";
+        }
         dataConnectorMapper.inputDataBases(databases);
         int id = databases.getId();
         return new RepEntity(RepCode.success,id);

+ 29 - 4
src/main/java/com/server/DataConnectorService.java

@@ -4,6 +4,7 @@ import com.dao.DataConnectorMapper;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.model.bo.DatabaseConfig;
+import com.model.bo.GroupUpdateId;
 import com.model.po.DataConnector;
 import com.model.po.DataConnectorList;
 import com.model.pojo.RepCode;
@@ -75,6 +76,9 @@ public class DataConnectorService {
         dataConnector.setDbConfig(databaseConfig);
         dataConnector.setDataTag(dataTag);
         dataConnector.setCreateDate(timeUtil.SystemTime());
+        if (dataConnector.getConnectorGroup() == 0){
+            dataConnector.setConnectorGroup(-1);
+        }
 
         System.out.println(dataConnector);
 
@@ -111,7 +115,7 @@ public class DataConnectorService {
      */
     public RepEntity updateData(DataConnectorInfo dataConnectorInfo){
 
-        if (dataConnectorInfo == null || "".equals(dataConnectorInfo)){
+        if (dataConnectorInfo == null && "".equals(dataConnectorInfo)){
             return new RepEntity(RepCode.Null);
         }
         DataConnector dataConnector = new DataConnector();
@@ -128,7 +132,7 @@ public class DataConnectorService {
         String dbConfigJson = null;
         String dataTagJson = null;
 
-        if (!("".equals(columnConfig)) || columnConfig != null){
+        if (!("".equals(columnConfig)) && columnConfig != null){
             try {
                 columnConfigJson = objectmapper.writeValueAsString(columnConfig);
             } catch (JsonProcessingException e) {
@@ -136,7 +140,7 @@ public class DataConnectorService {
             }
             dataConnector.setColumnConfig(columnConfigJson);
         }
-        if (!("".equals(dbConfig)) || dbConfig != null){
+        if (!("".equals(dbConfig)) && dbConfig != null){
             try {
                 dbConfigJson = objectmapper.writeValueAsString(dbConfig);
             } catch (JsonProcessingException e) {
@@ -154,6 +158,9 @@ public class DataConnectorService {
         }
 
         dataConnector.setUpdateDate(timeUtil.SystemTime());
+        if (dataConnector.getConnectorGroup() == 0){
+            dataConnector.setConnectorGroup(-1);
+        }
 
         System.out.println(dataConnector);
 
@@ -161,12 +168,30 @@ public class DataConnectorService {
         return new RepEntity(RepCode.success);
     }
 
+    /*
+    更新数据源分组
+     */
+    public RepEntity updateConfigGroup(GroupUpdateId groupUpdateId){
+        int id = groupUpdateId.getId();
+        int groupId = groupUpdateId.getGroupId();
+        dataConnectorMapper.updateConfigGroup(id, groupId);
+        return new RepEntity(RepCode.success);
+    }
+
     /*
     删除数据源
      */
 
     public RepEntity delDataConnector(List<Integer> idList){
-            dataConnectorMapper.deleteData(idList);
+        Iterator isList = idList.iterator();
+        while (isList.hasNext()){
+            int id = (int) isList.next();
+            List<String> chartName = dataConnectorMapper.getChartsName(id);
+            if (chartName != null && !("".equals(chartName))){
+                return new RepEntity(RepCode.hasChartsUsing, chartName);
+            }
+        }
+        dataConnectorMapper.deleteData(idList);
         return new RepEntity(RepCode.success);
     }
 

+ 15 - 12
src/main/java/com/server/ShowHistogramService.java

@@ -3,6 +3,7 @@ package com.server;
 import com.dao.ChartsConfigMapper;
 import com.dao.ShowChartsMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.model.bo.Screen;
 import com.model.bo.Series;
 import com.model.pojo.RepCode;
 import com.model.pojo.RepEntity;
@@ -10,6 +11,7 @@ import com.model.vo.configVo.HistogramConfigInfo;
 import com.model.vo.dataVo.ChartsDataInfo;
 import com.util.BasesSource.DynamicDataSourceContextHolder;
 import com.util.CalculationJudgeUtil;
+import com.util.ScreenUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
@@ -31,6 +33,8 @@ public class ShowHistogramService {
     ObjectMapper objectMapper;
     @Autowired
     GetChartsDataUtilService getChartsDataUtilService;
+    @Autowired
+    ScreenUtil screenUtil;
 
     /*
     柱状图数据展示
@@ -48,17 +52,6 @@ public class ShowHistogramService {
             return new RepEntity(RepCode.nullTableName);
         }
 
-
-        //取数据源ID
-//        String dataConfig = chartsConfigMapper.getBaseConifg(id);
-
-        //取数据连接名的数据库名
-//        Databases databases = new Databases();
-//        try {
-//            databases = objectMapper.readValue(dataConfig, Databases.class);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
         String baseName = getChartsDataUtilService.getBaseName(id);
         System.out.println("切换数据库"+baseName);
 
@@ -110,6 +103,16 @@ public class ShowHistogramService {
             chartsDataInfo.setxAxis(xAxisData);
         }
 
+
+        //取筛选列表
+        List<Screen> screens = histogramConfigInfo.getFilters();
+        String screen = "";
+        if ("".equals(screens) || screens == null){
+            screen = "";
+        }else {
+            screen = screenUtil.screensUtil(screens);
+        }
+
         //无分组时Y值
         Iterator itX = xAxisData.iterator();
         while (itX.hasNext()){
@@ -119,7 +122,7 @@ public class ShowHistogramService {
             if ("time".equals(xColumnType)){
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata, screen);
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;

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

@@ -23,14 +23,14 @@ public class ShowIndividualService {
     ChartsConfigMapper chartsConfigMapper;
     @Autowired
     ShowChartsMapper showChartsMapper;
-    public RepEntity ShowIndividual(IndividualConfigInfo individualConfigInfo){
+    public RepEntity showIndividual(IndividualConfigInfo individualConfigInfo){
         if (individualConfigInfo == null || "".equals(individualConfigInfo)){
             return new RepEntity(RepCode.Null);
         }
         //取表名
         int id = individualConfigInfo.getId();
-//        String tableName = chartsConfigMapper.getTableName(id).toUpperCase();
-        String tableName = "bench_flowchart".toUpperCase();
+        String tableName = chartsConfigMapper.getTableName(id).toUpperCase();
+//        String tableName = "bench_flowchart".toUpperCase();
         if (tableName == null || "".equals(tableName)){
             return new RepEntity(RepCode.nullTableName);
         }

+ 5 - 1
src/main/java/com/server/ShowPieService.java

@@ -9,6 +9,7 @@ import com.model.pojo.RepEntity;
 import com.model.vo.configVo.PieConfigInfo;
 import com.model.vo.dataVo.ChartsDataInfo;
 import com.util.CalculationJudgeUtil;
+import com.util.ScreenUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -26,6 +27,8 @@ public class ShowPieService {
     CalculationJudgeUtil calculationJudgeUtil;
     @Autowired
     ChartsConfigMapper chartsConfigMapper;
+    @Autowired
+    ScreenUtil screenUtil;
 
     /*
     Pie数据展示
@@ -86,7 +89,8 @@ public class ShowPieService {
             if ("time".equals(xColumnType)){
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                String p = "";
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata, p);
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;

+ 111 - 0
src/main/java/com/server/ShowPopulationService.java

@@ -0,0 +1,111 @@
+package com.server;
+
+import com.dao.ChartsConfigMapper;
+import com.dao.ShowChartsMapper;
+import com.model.pojo.RepCode;
+import com.model.pojo.RepEntity;
+import com.model.vo.configVo.PopulationInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.SQLException;
+import java.util.*;
+
+@Service
+public class ShowPopulationService {
+    @Autowired
+    ChartsConfigMapper chartsConfigMapper;
+    @Autowired
+    ShowChartsMapper showChartsMapper;
+
+    public RepEntity showPopulation(PopulationInfo populationInfo) throws SQLException {
+        if (populationInfo == null || "".equals(populationInfo)){
+            return new RepEntity(RepCode.Null);
+        }
+        //取表名
+        int id = populationInfo.getId();
+        String tableName = chartsConfigMapper.getTableName(id).toUpperCase();
+//        String tableName = "bench_flowchart".toUpperCase();
+        if (tableName == null || "".equals(tableName)){
+            return new RepEntity(RepCode.nullTableName);
+        }
+
+        List<String> groupByList = populationInfo.getGroupByList();  //分组
+
+        //取目标列和分析运算符
+        String columnName = populationInfo.getColumnName();
+        List<String> operators = populationInfo.getOperatorList();
+        Map<String, Double> targetData = new HashMap<>();  //存放结果集
+        Double value = null;                 //MAP的值
+
+        //无分组
+        if (groupByList.size() == 0) {
+            Iterator operatorsList = operators.iterator();
+            while (operatorsList.hasNext()) {
+                String operator = String.valueOf(operatorsList.next()).toUpperCase();
+                if ("75th".equals(operator)) {
+                    String calculation = "MEDIAN";
+                    Double median = showChartsMapper.getColumnDev(tableName, columnName, calculation);
+                    calculation = "MAX";
+                    Double max = showChartsMapper.getColumnDev(tableName, columnName, calculation);
+                    value = showChartsMapper.getValue(tableName, columnName, calculation, median, max);
+                } else if ("25th".equals(operator)) {
+                    String calculation = "MEDIAN";
+                    Double median = showChartsMapper.getColumnDev(tableName, columnName, calculation);
+                    calculation = "MIN";
+                    Double min = showChartsMapper.getColumnDev(tableName, columnName, calculation);
+                    value = showChartsMapper.getValue(tableName, columnName, calculation, min, median);
+                } else if ("percentage".equals(operator)) {
+                    value = 1.00;
+                } else {
+                    value = showChartsMapper.getColumnDev(tableName, columnName, operator);
+                }
+                targetData.put(operator, value);
+            }
+            return new RepEntity(RepCode.success, targetData);
+            //有分组
+        }else {
+            String listOne = groupByList.get(0);
+
+            Iterator operatorsList = operators.iterator();
+            //获取运算列
+            List<String> operatorColumn = new ArrayList<>();
+
+            while (operatorsList.hasNext()){
+                String next = String.valueOf(operatorsList.next()).toLowerCase();
+                String op = next + "(" + columnName + ") as " +next.toLowerCase() ;
+                operatorColumn.add(op);
+            }
+
+//            groupByList.addAll(operatorColumn);
+            String groups = groupByList.toString();
+            String groupBy = getString(groups);
+
+            String oprs = operatorColumn.toString();
+            String opr = getString(oprs);
+
+            //列头
+            groupByList.add(columnName);
+            groupByList.addAll(operators);
+
+
+
+            List<LinkedHashMap<String, Object>> valueList = new ArrayList<>();
+            valueList = showChartsMapper.getGroupByValue(groupBy, opr, tableName, listOne);
+            System.out.println("valueList:"+ valueList);
+//            PopulationDataInfo populationDataInfo = new PopulationDataInfo();
+//            populationDataInfo.setColumnHead(groupByList);
+//            populationDataInfo.setValueList(valueList);
+            return new RepEntity(RepCode.success, valueList);
+        }
+    }
+
+    public String getString(String str){
+        String st1 = "[";
+        String st2 = "]";
+        String strA = str.replace(st1, "");
+        String StrB = strA.replace(st2, "");
+        System.out.println("str:"+ StrB);
+        return StrB;
+    }
+}

+ 1 - 1
src/main/java/com/server/ShowScatterService.java

@@ -83,7 +83,7 @@ public class ShowScatterService {
             if ("time".equals(xColumnType)){
                 valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata,"");
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;

+ 62 - 0
src/main/java/com/util/ScreenUtil.java

@@ -0,0 +1,62 @@
+package com.util;
+
+import com.model.bo.Screen;
+import org.springframework.stereotype.Component;
+
+import java.util.Iterator;
+import java.util.List;
+
+/*
+解析筛选信息
+ */
+@Component
+public class ScreenUtil {
+    public String screensUtil(List<Screen> screenList){
+        //返回值
+        if (screenList.size() == 0){
+            return "";
+        }
+        String ret = "";
+        Iterator isList = screenList.iterator();
+        while (isList.hasNext()){
+            Screen screen = (Screen) isList.next();
+            String columnName = screen.getColumnName();
+            String columnType = screen.getColumnType();
+            String symbol = screen.getSymbol();
+            String value = screen.getValue();
+
+            if (columnType != "time"){
+                String symbVal = getSymbAndVal(symbol, value);
+                ret = ret + " and " + columnName + " " + symbVal;
+                System.out.println("ret:" + ret);
+            }if(columnType == "time" || "time".equals(columnType)){
+                String symbVal ;
+            }
+        }
+        return ret;
+    }
+    public String getSymbAndVal(String symbol, String value){
+        String values = "'" + value;
+        String tar = "";
+        if ("contain".equals(symbol)){
+            tar = "like %" + values + "%'";
+        }else if("notContain".equals(symbol)){
+            tar = "not like %" + values + "%'";
+        }else if("startsWith".equals(symbol)){
+            tar = "like " + values + "%'";
+        }else if("endsWith".equals(symbol)){
+            tar = "like %" + values +"'";
+        }else if("null".equals(symbol)){
+            tar = "is null";
+        }else if ("notNull".equals(symbol)){
+            tar = "is not null";
+        }else {
+            tar = symbol + " " + values + "'";
+        }
+        return tar;
+    }
+
+    public String getTimeSybVal(String symbol, String value){
+        return "";
+    }
+}

+ 7 - 0
src/main/resources/application.properties

@@ -34,6 +34,13 @@ slave.datasource.N_USOFTSYS.url=jdbc:oracle:thin:@10.1.1.168:1521:orcl
 slave.datasource.N_USOFTSYS.username=N_USOFTSYS
 slave.datasource.N_USOFTSYS.password=select!#%*(
 
+//
+slave.datasource.N_WILIC.driver-class-name=oracle.jdbc.driver.OracleDriver
+slave.datasource.N_WILIC.url=jdbc:oracle:thin:@218.18.115.198:1521:orcl
+slave.datasource.N_WILIC.username=N_WILIC 
+slave.datasource.N_WILIC.password=select!#%*(
+
+
 
 spring.jpa.database=oracle