Browse Source

1.修改了部分bug
2.添加了分组关联图表,数据源不可删除功能
3.添加是有子图表时不可删除功能

heqinwei 7 years ago
parent
commit
dcbae222e0

+ 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);
+
     /*
     查询分组
      */

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

@@ -38,13 +38,14 @@ public interface ShowChartsMapper {
 
 
     //时间类型的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}")
@@ -114,4 +115,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);

+ 9 - 9
src/main/java/com/server/ShowHistogramService.java

@@ -93,10 +93,10 @@ public class ShowHistogramService {
             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);
@@ -106,7 +106,7 @@ public class ShowHistogramService {
             //X轴
             //判断是否为日期类型
             if ("time".equals(xColumnType)){
-                xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+                xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screenToColumn);
                 xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
                 System.out.println("data:"+xAxisData);
             }else {
@@ -207,12 +207,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 "));

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

@@ -83,10 +83,10 @@ 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);
@@ -95,7 +95,7 @@ public class ShowLineService {
 
         //X轴
         //判断是否为日期类型
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screenToColumn);
 //            xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
 

+ 6 - 3
src/main/java/com/server/ShowPieService.java

@@ -67,10 +67,10 @@ 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);
@@ -80,7 +80,7 @@ public class ShowPieService {
         //X轴
         //判断是否为日期类型
         if ("time".equals(xColumnType)){
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screenToColumn);
             xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
         }else {
@@ -109,6 +109,9 @@ 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();

+ 1 - 1
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 "));

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

@@ -84,10 +84,10 @@ 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);
@@ -97,7 +97,7 @@ public class ShowScatterService {
         //X轴
         //判断是否为日期类型
         if ("time".equals(xColumnType)){
-            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType);
+            xAxisData = timeConverterUtil.timeConverter(xColumn, tableName, xAxisType, screenToColumn);
             xData = timeConverterUtil.toRespons(xAxisData,xAxisType );
             System.out.println("data:"+xAxisData);
         }else {

+ 8 - 8
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;
     }

+ 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){