Browse Source

Merge branch 'master' of ssh://dev@10.10.100.21/source/platform-bi-server.git

will.chen 7 years ago
parent
commit
9497fe1c21

+ 11 - 0
src/main/java/com/controller/ShowChartsController.java

@@ -1,5 +1,6 @@
 package com.controller;
 
+import com.model.vo.configVo.ColumnScreenInfo;
 import com.model.pojo.RepEntity;
 import com.model.vo.configVo.*;
 import com.server.*;
@@ -26,6 +27,8 @@ public class ShowChartsController {
     ShowIndividualService showIndividualService;
     @Autowired
     ShowPopulationService showPopulationService;
+    @Autowired
+    ColumnScreenService columnScreenService;
     /*
     展示柱状图
      */
@@ -74,4 +77,12 @@ public class ShowChartsController {
     public RepEntity showPopulation(@RequestBody PopulationInfo body) throws SQLException {
         return showPopulationService.showPopulation(body);
     }
+
+    /*
+    展示单列数据
+     */
+    @RequestMapping("/showScreenData")
+    public RepEntity showScreenData(@RequestBody ColumnScreenInfo body){
+        return columnScreenService.getScreenData(body);
+    }
 }

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

@@ -144,5 +144,17 @@ public interface ChartsConfigMapper {
             "create_date as createDate from bi_charts_group")
     List<GroupInfo> getChartsGroup();
 
+    /*
+    查询分组是否有子分组
+     */
+    @Select("select BC_GROUP_NAME from bi_charts_group where bc_father_id = #{id}")
+    List<String> getChartFatherId(int id);
+
+    /*
+    查询是否有数据源正在使用
+     */
+    @Select("select chart_name from bi_charts where BC_CHARTS_GROUP = #{id}")
+    List<String> getChartName(int id);
+
 
 }

+ 15 - 3
src/main/java/com/dao/DataConnectorMapper.java

@@ -16,7 +16,7 @@ public interface DataConnectorMapper {
 //            "(select column_name,DATA_TYPE from user_tab_cols where Table_Name = #{tableName}) d," +
 //            "(select * from user_col_comments where Table_Name = #{tableName}) b" +
 //            " where d.column_name = b.column_name order by columnName")
-//    List<ColumnData> getColumn(@Param("tableName") String tableName);
+//    List<ColumnScreenInfo> getColumn(@Param("tableName") String tableName);
 
 //    @Select("<script>" +
 //            "select * from bi_data_connectors where" + "1=1" +
@@ -103,8 +103,8 @@ public interface DataConnectorMapper {
     /*
     查询单个数据库连接ID
      */
-    @Select("select id from BI_DATABASES where  id= #{id}")
-    int getBasesById(int id);
+    @Select("select pass_word from BI_DATABASES where  id= #{id}")
+    String getBasesById(int id);
 
     /*
     查询数据库配置列表
@@ -185,6 +185,18 @@ public interface DataConnectorMapper {
             "</script>")
     void delConnectorGroup(List<Integer> isList);
 
+    /*
+    查询分组是否有子分组
+     */
+    @Select("select BB_GROUP_NAME from bi_base_group_by where bb_father_id = #{id}")
+    List<String> getFatherId(int id);
+
+    /*
+    查询是否有数据源正在使用
+     */
+    @Select("select data_name from bi_data_connectors where bd_group = #{id}")
+    List<String> getConName(int id);
+
     /*
     查询分组
      */

+ 27 - 21
src/main/java/com/dao/ShowChartsMapper.java

@@ -19,59 +19,59 @@ public interface ShowChartsMapper {
 
 
     //x轴数据
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} = #{xdata} ${screen}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${xColumn} = #{xdata}")
     String getValues(@Param("yAxisName") String yAxisName, @Param("xColumn") String xColumn,
                      @Param("tableName") String tableName, @Param("dataType") String dataType,
-                     @Param("xdata") String xdata, @Param("screen") String screen);
+                     @Param("xdata") String xdata);
 
 
     //查询分组系列
-    @Select("select ${groupsBy} from ${tableName} group by ${groupsBy}")
-    List<String> getGroups(@Param("groupsBy") String groupsBy, @Param("tableName") String tableName);
+    @Select("select ${groupsBy} from ${tableName} ${screen} group by ${groupsBy}")
+    List<String> getGroups(@Param("groupsBy") String groupsBy, @Param("tableName") String tableName, @Param("screen") String screen);
 
     //查询分组的值
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn}=#{groupsIndex} and ${xColumn}=#{xColumnIndex} ${screen}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn}=#{groupsIndex} and ${xColumn}=#{xColumnIndex}")
     String getGroupsValue(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
                                @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex,
-                                @Param("xColumn") String xColumn, @Param("xColumnIndex") String xColumnIndex,
-                          @Param("screen") String screen);
+                                @Param("xColumn") String xColumn, @Param("xColumnIndex") String xColumnIndex);
 
 
     //时间类型的X轴
-    @Select("select distinct to_char(${xAxisName},${timeType})time from ${tableName} ORDER by to_char(${xAxisName},${timeType}) ASC")
-    List<String> getTimeDate(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName, @Param("timeType") String timeType);
+    @Select("select distinct to_char(${xAxisName},${timeType})time from ${tableName} ${screen} ORDER by to_char(${xAxisName},${timeType}) ASC")
+    List<String> getTimeDate(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName,
+                             @Param("timeType") String timeType, @Param("screen") String screen);
 
     //半年
     @Select("select distinct case when to_char(${xAxisName},'MM')<=6 then to_char(${xAxisName},'YYYY')|| '-H1'" +
-            "else to_char(${xAxisName},'YYYY')||'-H2' end time from ${tableName} order by time")
-    List<String> getTimeYear(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName);
+            "else to_char(${xAxisName},'YYYY')||'-H2' end time from ${tableName} ${screen} order by time")
+    List<String> getTimeYear(@Param("xAxisName") String xAxisName, @Param("tableName") String tableName, @Param("screen") String screen);
     
     //无分组时间类型值
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where (to_char(${xAxisName},${timeType})) = #{xColumnIndex} ${screen}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where (to_char(${xAxisName},${timeType})) = #{xColumnIndex}")
     String getTimeValue (@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
-                         @Param("xAxisName") String xAxisName, @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex,
-                         @Param("screen") String screen);
+                         @Param("xAxisName") String xAxisName, @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex
+                         );
 
     //无分组半年时间值
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where TO_CHAR(${xAxisName},'YYYY-MM') between #{firstIndex} and #{afterIndex} ${screen}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where TO_CHAR(${xAxisName},'YYYY-MM') between #{firstIndex} and #{afterIndex} ")
     String getTimeValueYear(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
                             @Param("xAxisName") String xAxisName, @Param("firstIndex") String firstIndex,
-                            @Param("afterIndex") String afterIndex, @Param("screen") String screen);
+                            @Param("afterIndex") String afterIndex);
 
 
     //查询时间类型分组的值
-    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn}=#{groupsIndex} and TO_CHAR(${xColumn},${timeType})=#{xColumnIndex} ${screen}")
+    @Select("select ${dataType}(${yAxisName}) from ${tableName} where ${groupsColumn}=#{groupsIndex} and TO_CHAR(${xColumn},${timeType})=#{xColumnIndex} ")
     String getGroupsValueTime(@Param("dataType") String dataType, @Param("yAxisName") String yAxisName, @Param("tableName") String tableName,
                           @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex,
-                          @Param("xColumn") String xColumn, @Param("timeType") String timeType, @Param("xColumnIndex") String xColumnIndex,
-                              @Param("screen") String screen);
+                          @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} ${screen}")
+    @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,
-                                @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex, @Param("screen") String screen);
+                                @Param("groupsColumn") String groupsColumn, @Param("groupsIndex") String groupsIndex);
 
 
     /*
@@ -114,4 +114,10 @@ public interface ShowChartsMapper {
     List<LinkedHashMap<String, Object>> getGroupByValue(@Param("groupBy") String groupBy, @Param("operation") String operation, @Param("tableName") String tableName,
                                                         @Param("groupByOne") String groupByOne, @Param("screen") String screen);
 
+    /*
+    查询筛选列信息
+     */
+    @Select("select distinct ${columnName} from ${tableName}")
+    List<Object> getScreenData(@Param("columnName") String columnName, @Param("tableName") String tableName);
+
 }

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

@@ -0,0 +1,67 @@
+package com.model.po;
+
+public class BaseConfig {
+    private String name;
+    private String addrass;
+    private String port;
+    private String databaseType;
+    private String dataName;           //数据库名称
+    private String userName;
+    private String passWord;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddrass() {
+        return addrass;
+    }
+
+    public void setAddrass(String addrass) {
+        this.addrass = addrass;
+    }
+
+    public String getPort() {
+        return port;
+    }
+
+    public void setPort(String port) {
+        this.port = port;
+    }
+
+    public String getDatabaseType() {
+        return databaseType;
+    }
+
+    public void setDatabaseType(String databaseType) {
+        this.databaseType = databaseType;
+    }
+
+    public String getDataName() {
+        return dataName;
+    }
+
+    public void setDataName(String dataName) {
+        this.dataName = dataName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPassWord() {
+        return passWord;
+    }
+
+    public void setPassWord(String passWord) {
+        this.passWord = passWord;
+    }
+}

+ 1 - 1
src/main/java/com/model/po/ColumnData.java

@@ -31,7 +31,7 @@ public class ColumnData {
 
     @Override
     public String toString() {
-        return "ColumnData{" +
+        return "ColumnScreenInfo{" +
                 "columnName='" + columnName + '\'' +
                 ", columnType='" + columnType + '\'' +
                 ", remarks='" + remarks + '\'' +

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

@@ -7,7 +7,10 @@ public enum  RepCode {
     nullAxis(-101,"x轴或y轴为空"),
     erro(-110,"参数错误"),
     nullTableName(-120,"表名为空"),
-    hasChartsUsing(-130, "图表正在使用");
+    hasChartsUsing(-130, "图表正在使用"),
+    hasGroupUsing(-140, "存在子分组"),
+    hasConUsing(-150, "分组正在被数据源使用"),
+    hasChartUsing(-160, "分组正在被图表使用");
 
     private int code;
     private String msg;

+ 22 - 0
src/main/java/com/model/vo/configVo/ColumnScreenInfo.java

@@ -0,0 +1,22 @@
+package com.model.vo.configVo;
+
+public class ColumnScreenInfo {
+    private int id;
+    private String columnName;
+
+    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;
+    }
+}

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

@@ -226,6 +226,19 @@ public class ChartsConfigService {
     删除图表分组
      */
     public RepEntity delDataConnectorGroup(List<Integer> idList){
+        List<Integer> integerList = idList;
+        Iterator isList = integerList.iterator();
+        while (isList.hasNext()){
+            int id = (int) isList.next();
+            List<String> groupName = chartsConfigMapper.getChartFatherId(id);
+            if (groupName.size() != 0){
+                return new RepEntity(RepCode.hasGroupUsing);
+            }
+            List<String> chartName = chartsConfigMapper.getChartName(id);
+            if (chartName.size() != 0 ){
+                return new RepEntity(RepCode.hasChartUsing);
+            }
+        }
         chartsConfigMapper.delChartsGroup(idList);
         return new RepEntity(RepCode.success);
     }

+ 55 - 0
src/main/java/com/server/ColumnScreenService.java

@@ -0,0 +1,55 @@
+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.ColumnScreenInfo;
+import com.util.BasesSource.DynamicDataSourceContextHolder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class ColumnScreenService {
+    @Autowired
+    ShowChartsMapper showChartsMapper;
+    @Autowired
+    GetChartsDataUtilService getChartsDataUtilService;
+    @Autowired
+    ChartsConfigMapper chartsConfigMapper;
+
+    public RepEntity getScreenData(ColumnScreenInfo columnScreenInfo){
+        //取表名
+        int id = columnScreenInfo.getId();
+        String tableName = chartsConfigMapper.getTableName(id);
+        if (tableName == null || "".equals(tableName)){
+            return new RepEntity(RepCode.nullTableName);
+        }
+
+        List<Object> data = new ArrayList<>();
+
+        String baseName = getChartsDataUtilService.getBaseName(id);
+        System.out.println("切换数据库"+baseName);
+
+        try{
+            if (!DynamicDataSourceContextHolder.isContainsDataSource(baseName)) {
+                //joinPoint.getSignature() :获取连接点的方法签名对象
+                System.out.println("数据源 " + baseName + " 不存在使用默认的数据源 -> ");
+            } else {
+                System.out.println("使用数据源:" + baseName);
+                DynamicDataSourceContextHolder.setDataSourceType(baseName);
+            }
+            data =  showChartsMapper.getScreenData(columnScreenInfo.getColumnName(), tableName);
+        }catch (Exception e){
+            e.printStackTrace();
+            System.out.println("异常");
+            return new RepEntity(RepCode.erro);
+        }finally {
+            DynamicDataSourceContextHolder.clearDataSourceType();
+        }
+        return new RepEntity(RepCode.success, data);
+    }
+}

+ 9 - 1
src/main/java/com/server/DataBasesService.java

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 @Service
@@ -60,7 +61,14 @@ public class DataBasesService {
 //            PageHelper.startPage(pageNum, pageSize);
         }
 
-        List<Databases> databases = dataConnectorMapper.getDatabasesList();
+        List<Databases> databasesList = dataConnectorMapper.getDatabasesList();
+        List<Databases> databases = new ArrayList<>();
+        Iterator isList = databasesList.iterator();
+        while (isList.hasNext()){
+            Databases databases1 = (Databases) isList.next();
+            databases1.setPassWord("");
+            databases.add(databases1);
+        }
         return new RepEntity(RepCode.success, databases);
     }
 

+ 51 - 2
src/main/java/com/server/DataConnectorService.java

@@ -5,6 +5,7 @@ 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.BaseConfig;
 import com.model.po.DataConnector;
 import com.model.po.DataConnectorList;
 import com.model.pojo.RepCode;
@@ -18,6 +19,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -98,7 +100,27 @@ public class DataConnectorService {
 //        }
 
         List<DataConnectorList> listConnector = dataConnectorMapper.getDataConnectorList();
-        return new RepEntity(RepCode.success, listConnector);
+        List<DataConnectorList> listConnectors = new ArrayList<>();
+        Iterator isList = listConnector.iterator();
+        while (isList.hasNext()){
+            DataConnectorList dataConnectorList = (DataConnectorList) isList.next();
+            BaseConfig baseConfig = new BaseConfig();
+            String dbConfig = dataConnectorList.getDbConfig();
+            try {
+                baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            baseConfig.setPassWord("");
+            try{
+                dbConfig = objectmapper.writeValueAsString(baseConfig);
+            }catch (Exception e) {
+                e.printStackTrace();
+            }
+            dataConnectorList.setDbConfig(dbConfig);
+            listConnectors.add(dataConnectorList);
+        }
+        return new RepEntity(RepCode.success, listConnectors);
     }
 
     /*
@@ -106,6 +128,20 @@ public class DataConnectorService {
      */
     public RepEntity getConnector(int id){
         DataConnector dataConnector = dataConnectorMapper.getOneData(id);
+        BaseConfig baseConfig = new BaseConfig();
+        String dbConfig = dataConnector.getDbConfig();
+        try {
+            baseConfig = objectmapper.readValue(dbConfig, BaseConfig.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        baseConfig.setPassWord("");
+        try{
+            dbConfig = objectmapper.writeValueAsString(baseConfig);
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        dataConnector.setDbConfig(dbConfig);
         System.out.println(dataConnector);
         return new RepEntity(RepCode.success, dataConnector);
     }
@@ -187,7 +223,7 @@ public class DataConnectorService {
         while (isList.hasNext()){
             int id = (int) isList.next();
             List<String> chartName = dataConnectorMapper.getChartsName(id);
-            if (chartName != null && !("".equals(chartName))){
+            if (chartName.size() != 0){
                 return new RepEntity(RepCode.hasChartsUsing, chartName);
             }
         }
@@ -233,6 +269,19 @@ public class DataConnectorService {
     删除数据源分组
      */
     public RepEntity delDataConnectorGroup(List<Integer> idList){
+        List<Integer> integerList = idList;
+        Iterator isList = integerList.iterator();
+        while (isList.hasNext()){
+            int id = (int) isList.next();
+            List<String> groupName = dataConnectorMapper.getFatherId(id);
+            if (groupName.size() != 0){
+                return new RepEntity(RepCode.hasGroupUsing);
+            }
+            List<String> chartName = dataConnectorMapper.getConName(id);
+            if (chartName.size() != 0){
+                return new RepEntity(RepCode.hasConUsing);
+            }
+        }
         dataConnectorMapper.delConnectorGroup(idList);
         return new RepEntity(RepCode.success);
     }

+ 14 - 1
src/main/java/com/server/ImplementSqlService.java

@@ -1,6 +1,7 @@
 package com.server;
 
 import com.dao.DataColumnMapper;
+import com.dao.DataConnectorMapper;
 import com.model.bo.ToSql;
 import com.model.po.ColumnData;
 import com.model.po.Databases;
@@ -19,6 +20,8 @@ import java.util.List;
 public class ImplementSqlService {
     @Autowired
     DataColumnMapper dataColumnMapper;
+    @Autowired
+    DataConnectorMapper dataConnectorMapper;
 
     /*
     执行数据源
@@ -38,10 +41,20 @@ public class ImplementSqlService {
     判断数据库连接
      */
     public RepEntity connectTest(Databases databases) {
+        String password = "";
+        String passwords = databases.getPassWord();
+        int id = databases.getId();
+        String pw = dataConnectorMapper.getBasesById(id);
+        if (passwords != null && !"".equals(passwords)){
+            password = passwords;
+        }else {
+            password = pw;
+        }
+
         String url = "jdbc:oracle:thin:@" + databases.getAddrass() + ":" + databases.getPort() + ":" + databases
                 .getDataName();
         String username = databases.getUserName();
-        String password = databases.getPassWord();
+//        String password = databases.getPassWord();
         Connection con = null;
         try {
             DriverManager.setLoginTimeout(8);

+ 27 - 18
src/main/java/com/server/ShowHistogramService.java

@@ -91,26 +91,35 @@ public class ShowHistogramService {
             //取筛选列表
             List<Screen> screens = histogramConfigInfo.getFilters();
             ScreenStr scr = new ScreenStr();
-            String screen = "";
-            String screenToColumn = "";
-            if ("".equals(screens) || screens == null){
+            String screen = "";               //正常筛选条件
+            String screenToColumn = "";       //跟目标列相同的筛选条件
+            if ("".equals(screens) || screens == null || screens.size() == 0){
                 screen = "";
             }else {
-                scr = screenUtil.screensUtil(screens, xColumn);
+                scr = screenUtil.screensUtil(screens, xColumn, xColumnType);
                 screen = scr.getRet();
                 screenToColumn = scr.getWithColumnRet();
                 StringBuilder sb = new StringBuilder(screenToColumn);
-                screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                System.out.println("sb:"+sb);
+                if (screenToColumn != null && !("".equals(screenToColumn))){
+                    screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                    screen = screenToColumn + " " + screen;
+                    System.out.println("screen:" + screen);
+                }else {
+                    StringBuilder sb1 = new StringBuilder(screen);
+                    screen = String.valueOf(sb1 .replace(1, 5, "where "));
+                }
             }
 
             //X轴
             //判断是否为日期类型
             if ("time".equals(xColumnType)){
-                xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+                xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screen);
+                System.out.println("xA:" + xAxisData);
                 xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
                 System.out.println("data:"+xAxisData);
             }else {
-                xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screenToColumn);
+                xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screen);
 
             }
             if ("".equals(xAxisData) || xAxisData == null || xAxisData.size() == 0){
@@ -132,9 +141,9 @@ public class ShowHistogramService {
                 double valueOne = 0;
                 String valueOnes = null;
                 if ("time".equals(xColumnType)){
-                    valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata, screen);
+                    valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
                 }else {
-                    valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata, screen);
+                    valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
                 }
                 if (valueOnes == null || "".equals(valueOnes)){
                     valueOne = 0;
@@ -158,7 +167,7 @@ public class ShowHistogramService {
                 //便利分组
                 while (itGroup.hasNext()){
                     String groupByName = (String) itGroup.next(); //每个分组的组名
-                    List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName); //查询每个分组系列
+                    List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName, screen); //查询每个分组系列
                     System.out.println("groupdata:"+ groupsData.toString());
                     Iterator itGroupsData = groupsData.iterator();
 
@@ -185,9 +194,9 @@ public class ShowHistogramService {
                             String groupsValueOnes = null;
                             if ("time".equals(xColumnType)){
                                 groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
-                                        groupsName, xColumn, xAxisDataOne, screen);
+                                        groupsName, xColumn, xAxisDataOne);
                             }else {
-                                groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne, screen);
+                                groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne);
                             }
                             if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                                 groupsValueOne = 0;
@@ -207,12 +216,12 @@ public class ShowHistogramService {
 
             chartsDataInfo.setSerieses(serieses);
         }catch (Exception e){
-            e.printStackTrace();
-            System.out.println("异常");
-            return new RepEntity(RepCode.erro);
-        }finally {
-            DynamicDataSourceContextHolder.clearDataSourceType();
-        }
+        e.printStackTrace();
+        System.out.println("异常");
+        return new RepEntity(RepCode.erro);
+    }finally {
+        DynamicDataSourceContextHolder.clearDataSourceType();
+    }
 
         return new RepEntity(RepCode.success, chartsDataInfo);
     }

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

@@ -69,7 +69,7 @@ public class ShowIndividualService {
                 screen = "";
                 screenStr = "";
             }else {
-                scr = screenUtil.screensUtil(screens, "");
+                scr = screenUtil.screensUtil(screens, "", "");
                 screen = scr.getRet();
                 StringBuilder sb = new StringBuilder(screen);
                 screenStr = String.valueOf(sb .replace(1, 5, "where "));

+ 17 - 12
src/main/java/com/server/ShowLineService.java

@@ -83,21 +83,27 @@ public class ShowLineService {
             ScreenStr scr = new ScreenStr();
             String screen = "";
             String screenToColumn = "";
-            if ("".equals(screens) || screens == null){
+            if ("".equals(screens) || screens == null || screens.size() == 0){
                 screen = "";
             }else {
-                scr = screenUtil.screensUtil(screens, xColumn);
+                scr = screenUtil.screensUtil(screens, xColumn, xAxisType);
                 screen = scr.getRet();
                 screenToColumn = scr.getWithColumnRet();
                 StringBuilder sb = new StringBuilder(screenToColumn);
-                screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                if (screenToColumn != null && !("".equals(screenToColumn))){
+                    screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                    screen = screenToColumn + " " + screen;
+                    System.out.println("screen:" + screen);
+                }else {
+                    StringBuilder sb1 = new StringBuilder(screen);
+                    screen = String.valueOf(sb1 .replace(1, 5, "where "));
+                }
             }
 
         //X轴
         //判断是否为日期类型
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screen);
 //            xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
-            System.out.println("data:"+xAxisData);
 
         if ("".equals(xAxisData) || xAxisData == null || xAxisData.size() == 0){
             return new RepEntity(RepCode.Null);
@@ -113,7 +119,7 @@ public class ShowLineService {
             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, screen);
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
 //                System.out.println("value:"+valueOnes);
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;
@@ -130,7 +136,6 @@ public class ShowLineService {
         series.setMdata(value);
 
         serieses.add(series);
-        System.out.println(serieses);
 
         //有分组
         if (groupBy.size() != 0){
@@ -140,14 +145,15 @@ public class ShowLineService {
             //便利分组
             while (itGroup.hasNext()){
                 String groupByName = (String) itGroup.next();
-                List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName); //查询每个分组系列
-                System.out.println("groupdata:"+ groupsData.toString());
+                List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName, screen); //查询每个分组系列
                 Iterator itGroupsData = groupsData.iterator();
 
                 //每个分组得到得每个系列
                 while(itGroupsData.hasNext()){
                     String groupsName = (String)itGroupsData.next();
-
+                    if ("".equals(groupsName) || groupsName == null){
+                        continue;
+                    }
                     List<LineSeriesMap> groupsValue = new ArrayList<LineSeriesMap>();
                     Iterator itXAxisData = xAxisData.iterator();
 
@@ -160,7 +166,7 @@ public class ShowLineService {
                         double groupsValueOne = 0;
                         String groupsValueOnes = null;
                         groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
-                                    groupsName, xColumn, xAxisDataOne, screen);
+                                    groupsName, xColumn, xAxisDataOne);
                         if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                             groupsValueOne = 0;
                         }else{
@@ -177,7 +183,6 @@ public class ShowLineService {
                     lineSeries.setName(groupsName);
                     serieses.add(lineSeries);
                 }
-                System.out.println(serieses);
             }
         }
 

+ 18 - 7
src/main/java/com/server/ShowPieService.java

@@ -67,24 +67,32 @@ public class ShowPieService {
         ScreenStr scr = new ScreenStr();
         String screen = "";
         String screenToColumn = "";
-        if ("".equals(screens) || screens == null){
+        if ("".equals(screens) || screens == null || screens.size() == 0){
             screen = "";
         }else {
-            scr = screenUtil.screensUtil(screens, xColumn);
+            scr = screenUtil.screensUtil(screens, xColumn, xColumnType);
             screen = scr.getRet();
             screenToColumn = scr.getWithColumnRet();
             StringBuilder sb = new StringBuilder(screenToColumn);
-            screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+            System.out.println("sb:"+sb);
+            if (screenToColumn != null && !("".equals(screenToColumn))){
+                screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                screen = screenToColumn + " " + screen;
+                System.out.println("screen:" + screen);
+            }else {
+                StringBuilder sb1 = new StringBuilder(screen);
+                screen = String.valueOf(sb1 .replace(1, 5, "where "));
+            }
         }
 
         //X轴
         //判断是否为日期类型
         if ("time".equals(xColumnType)){
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screen);
             xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
         }else {
-            xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screenToColumn);
+            xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screen);
 
         }
         if ("".equals(xAxisData) || xAxisData == null || xAxisData.size() == 0){
@@ -109,13 +117,16 @@ public class ShowPieService {
         Iterator itX = xAxisData.iterator();
         while (itX.hasNext()){
             String xdata = (String)itX.next();
+            if ("".equals(xdata) || xdata == null){
+                continue;
+            }
             double valueOne = 0;
             String valueOnes = null;
             PieSeriesMap pieSeriesMap = new PieSeriesMap();
             if ("time".equals(xColumnType)){
-                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata, screen);
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata, screen);
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;

+ 4 - 4
src/main/java/com/server/ShowPopulationService.java

@@ -66,7 +66,7 @@ public class ShowPopulationService {
                 screen = "";
                 screenStr = "";
             }else {
-                str = screenUtil.screensUtil(screens, "");
+                str = screenUtil.screensUtil(screens, "", "");
                 screen = str.getRet();
                 StringBuilder sb = new StringBuilder(screen);
                 screenStr = String.valueOf(sb .replace(1, 5, "where "));
@@ -77,19 +77,19 @@ public class ShowPopulationService {
             Iterator operatorsList = operators.iterator();
             while (operatorsList.hasNext()) {
                 String operator = String.valueOf(operatorsList.next()).toUpperCase();
-                if ("75th".equals(operator)) {
+                if ("75TH".equals(operator)) {
                     String calculation = "MEDIAN";
                     Double median = showChartsMapper.getColumnDev(tableName, columnName, calculation, screenStr);
                     calculation = "MAX";
                     Double max = showChartsMapper.getColumnDev(tableName, columnName, calculation, screenStr);
                     value = showChartsMapper.getValue(tableName, columnName, calculation, median, max);
-                } else if ("25th".equals(operator)) {
+                } else if ("25TH".equals(operator)) {
                     String calculation = "MEDIAN";
                     Double median = showChartsMapper.getColumnDev(tableName, columnName, calculation, screen);
                     calculation = "MIN";
                     Double min = showChartsMapper.getColumnDev(tableName, columnName, calculation, screenStr);
                     value = showChartsMapper.getValue(tableName, columnName, calculation, min, median);
-                } else if ("percentage".equals(operator)) {
+                } else if ("PERCENT".equals(operator)) {
                     value = 1.00;
                 } else {
                     value = showChartsMapper.getColumnDev(tableName, columnName, operator, screenStr);

+ 17 - 10
src/main/java/com/server/ShowScatterService.java

@@ -84,24 +84,31 @@ public class ShowScatterService {
             ScreenStr scr = new ScreenStr();
             String screen = "";
             String screenToColumn = "";
-            if ("".equals(screens) || screens == null){
+            if ("".equals(screens) || screens == null || screens.size() == 0){
                 screen = "";
             }else {
-                scr = screenUtil.screensUtil(screens, xColumn);
+                scr = screenUtil.screensUtil(screens, xColumn, xColumnType);
                 screen = scr.getRet();
                 screenToColumn = scr.getWithColumnRet();
                 StringBuilder sb = new StringBuilder(screenToColumn);
-                screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                if (screenToColumn != null && !("".equals(screenToColumn))){
+                    screenToColumn = String.valueOf(sb .replace(1, 5, "where "));
+                    screen = screenToColumn + " " + screen;
+                    System.out.println("screen:" + screen);
+                }else {
+                    StringBuilder sb1 = new StringBuilder(screen);
+                    screen = String.valueOf(sb1 .replace(1, 5, "where "));
+                }
             }
 
         //X轴
         //判断是否为日期类型
         if ("time".equals(xColumnType)){
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screen);
             xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
         }else {
-            xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screenToColumn);
+            xAxisData = showChartsMapper.getXAxis(xColumn, tableName, screen);
 
         }
 
@@ -116,9 +123,9 @@ public class ShowScatterService {
             double valueOne = 0;
             String valueOnes = null;
             if ("time".equals(xColumnType)){
-                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata, screen);
+                valueOnes = timeConverterUtil.getTimeValueConverter(yColumn, xColumn, tableName, yAxisType, xAxisType, xdata);
             }else {
-                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata, screen);
+                valueOnes = showChartsMapper.getValues(yColumn, xColumn, tableName, yAxisType, xdata);
             }
             if (valueOnes == null || "".equals(valueOnes)){
                 valueOne = 0;
@@ -145,7 +152,7 @@ public class ShowScatterService {
             //便利分组
             while (itGroup.hasNext()){
                 String groupByName = (String) itGroup.next();
-                List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName); //查询每个分组系列
+                List<String> groupsData = showChartsMapper.getGroups(groupByName,tableName, screen); //查询每个分组系列
                 System.out.println("groupdata:"+ groupsData.toString());
                 Iterator itGroupsData = groupsData.iterator();
 
@@ -166,9 +173,9 @@ public class ShowScatterService {
                         String groupsValueOnes = null;
                         if ("time".equals(xColumnType)){
                             groupsValueOnes = timeConverterUtil.getGroupTimeConverter(yAxisType, yColumn, tableName, groupByName, xAxisType,
-                                    groupsName, xColumn, xAxisDataOne, screen);
+                                    groupsName, xColumn, xAxisDataOne);
                         }else {
-                            groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne, screen);
+                            groupsValueOnes = showChartsMapper.getGroupsValue(yAxisType, yColumn, tableName, groupByName, groupsName, xColumn, xAxisDataOne);
                         }
                         if ("".equals(groupsValueOnes) || groupsValueOnes == null){
                             groupsValueOne = 0;

+ 29 - 26
src/main/java/com/server/TimeConverterUtil.java

@@ -17,28 +17,28 @@ public class TimeConverterUtil {
     ShowChartsMapper showChartsMapper;
 
     //x轴时间类型
-    public List<String> timeConverter(String xColumnName, String tableName, String timeType){
+    public List<String> timeConverter(String xColumnName, String tableName, String timeType, String screen){
         String timeGroup = "'YYYY-MM-DD'";
         List<String> value = new ArrayList<String>();
         if ("year".equals(timeType)){
             timeGroup = "'YYYY'";
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }else if ("month".equals(timeType)){
             timeGroup = "'YYYY-MM'";
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }else if ("day".equals(timeType) || "".equals(timeType)){
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }else if ("quarter".equals(timeType)){
             timeGroup = "'YYYY-Q'";
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }else if ("week".equals(timeType)){
             timeGroup = "'YYYY-WW'";
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }else if ("halfYear".equals(timeType)){
-            value = showChartsMapper.getTimeYear(xColumnName, tableName);
+            value = showChartsMapper.getTimeYear(xColumnName, tableName, screen);
         }else {
             timeGroup = "'YYYY-MM-DD'";
-            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup);
+            value = showChartsMapper.getTimeDate(xColumnName, tableName, timeGroup, screen);
         }
         return value;
     }
@@ -50,6 +50,9 @@ public class TimeConverterUtil {
         Iterator isDataList = dataList.iterator();
         while (isDataList.hasNext()){
             String data = (String) isDataList.next();
+            if (data == null || "".equals(data)){
+                continue;
+            }
             if ("quarter".equals(timeType)){
                 String[] str = data.split("-");
                 dataLast = str[0] + "-Q" + str[1];
@@ -66,7 +69,7 @@ public class TimeConverterUtil {
     }
 
     //无分组时间值
-    public String getTimeValueConverter(String yColumn, String xColumn, String tableName, String dataType, String timeType, String xdata, String screen){
+    public String getTimeValueConverter(String yColumn, String xColumn, String tableName, String dataType, String timeType, String xdata){
 
         String timeGroup = "'YYYY-MM-DD'";
         String value = null;
@@ -76,70 +79,70 @@ public class TimeConverterUtil {
             if ("H1".equals(str[1])){
                 String firstIndex = str[0] + "-01";
                 String afterIndex = str[0] + "-06";
-                value = showChartsMapper.getTimeValueYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, screen);
+                value = showChartsMapper.getTimeValueYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex);
             }else {
                 String firstIndex = str[0] + "-07";
                 String afterIndex = str[0] + "-12";
-                value = showChartsMapper.getTimeValueYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, screen);
+                value = showChartsMapper.getTimeValueYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex);
             }
         }else if ("year".equals(timeType)){
             timeGroup = "'YYYY'";
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }else if ("month".equals(timeType)){
             timeGroup = "'YYYY-MM'";
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }else if ("day".equals(timeType) || "".equals(timeType)){
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }else if ("quarter".equals(timeType)){
             timeGroup = "'YYYY-Q'";
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }else if ("week".equals(timeType)){
             timeGroup = "'YYYY-WW'";
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }else {
-            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata,screen);
+            value = showChartsMapper.getTimeValue(dataType, yColumn, tableName, xColumn, timeGroup,xdata);
         }
         return value;
     }
 
     //有分组时间类型值处理
     public String getGroupTimeConverter(String dataType, String yColumn, String tableName, String groupByName, String timeType,
-                                        String groupsName, String xColumn, String xAxisDataOne, String screen){
+                                        String groupsName, String xColumn, String xAxisDataOne){
         String timeGroup = "'YYYY-MM-DD'";
         String value = null;
         if ("year".equals(timeType)){
             timeGroup = "'YYYY'";
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne, screen);
+                    timeGroup, xAxisDataOne);
         }else if ("month".equals(timeType)){
             timeGroup = "'YYYY-MM'";
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne ,screen);
+                    timeGroup, xAxisDataOne);
         }else if ("quarter".equals(timeType)){
             timeGroup = "'YYYY-Q'";
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne, screen);
+                    timeGroup, xAxisDataOne);
         }else if ("week".equals(timeType)){
             timeGroup = "'YYYY-WW'";
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne, screen);
+                    timeGroup, xAxisDataOne);
         }else if ("day".equals(timeType) || "".equals(timeType)){
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne, screen);
+                    timeGroup, xAxisDataOne);
         }else if ("halfYear".equals(timeType)){
             String[] str = xAxisDataOne.split("-");
             if ("上半年".equals(str[1])){
                 String firstIndex = str[0] + "-01";
                 String afterIndex = str[0] + "-06";
-                value = showChartsMapper.getTimeValueHalfYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, groupByName, groupsName, screen);
+                value = showChartsMapper.getTimeValueHalfYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, groupByName, groupsName);
             }else {
                 String firstIndex = str[0] + "-07";
                 String afterIndex = str[0] + "-12";
-                value = showChartsMapper.getTimeValueHalfYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, groupByName, groupsName, screen);
+                value = showChartsMapper.getTimeValueHalfYear(dataType, yColumn, tableName, xColumn, firstIndex, afterIndex, groupByName, groupsName);
             }
         }else{
             value = showChartsMapper.getGroupsValueTime(dataType, yColumn, tableName, groupByName, groupsName, xColumn,
-                    timeGroup, xAxisDataOne, screen);
+                    timeGroup, xAxisDataOne);
         }
         return value;
     }

+ 17 - 5
src/main/java/com/util/ScreenUtil.java

@@ -12,7 +12,7 @@ import java.util.List;
  */
 @Component
 public class ScreenUtil {
-    public ScreenStr screensUtil(List<Screen> screenList, String xColumn){
+    public ScreenStr screensUtil(List<Screen> screenList, String xColumn, String xColumnType){
         //返回值
         ScreenStr screenStr = new ScreenStr();
         if (screenList.size() == 0){
@@ -40,7 +40,7 @@ public class ScreenUtil {
                 System.out.println("ret:" + ret);
             }if(columnType == "time" || "time".equals(columnType)){
                 String symbVal = getTimeSymbAndVal(symbol, value);
-                String column = getTimeColumn(columnName);
+                String column = getTimeColumn(columnName, xColumnType);
                 if (xColumn.equals(columnName)){
                     withColumnRet = ret + " and " + column + " " + symbVal;
                 }else {
@@ -74,13 +74,25 @@ public class ScreenUtil {
             String str2 = str[1];
             tar = "between '" + str1 + "' and '" + str2 + "'";
         } else {
-            tar = symbol + " " + values + "'";
+            tar = symbol + " '" + values + "'";
         }
         return tar;
     }
 
-    public String getTimeColumn(String columnName){
-        return "to_char(" + columnName +", 'yyyy-mm-dd')";
+    public String getTimeColumn(String columnName, String xColumnType){
+        if ("year".equals(xColumnType)){
+            return "to_char(" + columnName +", 'yyyy')";
+        }else if("month".equals(xColumnType)){
+            return "to_char(" + columnName +", 'yyyy-mm')";
+        }else if ("day".equals(xColumnType)){
+            return "to_char(" + columnName +", 'yyyy-mm-dd')";
+        }else if ("quarter".equals(xColumnType)){
+            return "to_char(" + columnName +", 'yyyy-Q')";
+        }else if("week".equals(xColumnType)){
+            return "to_char(" + columnName +", 'yyyy-ww')";
+        }else {
+            return "to_char(" + columnName +", 'yyyy-mm-dd')";
+        }
     }
 
     private String getTimeSymbAndVal(String symbol, String value){