Kaynağa Gözat

拼接Condition修改

chenw 6 yıl önce
ebeveyn
işleme
3d5f7a44f4

+ 18 - 10
bi-server/src/main/java/com/usoftchina/bi/server/service/chart/ShowHistogramService.java

@@ -44,7 +44,7 @@ public class ShowHistogramService {
      */
     @Cacheable(value = "Histogram", key = "#histogramConfigInfo.toString()+#dashId")
     public RepEntity<ChartsDataInfo> showHistogram(HistogramConfigInfo histogramConfigInfo, String token, int dashId){
-        Assert.notNull(histogramConfigInfo, "参数不能为空");
+        Assert.notNull(histogramConfigInfo, "请求参数不能为空");
         /* 变量定义 */
         ChartsDataInfo chartsDataInfo = new ChartsDataInfo();
         String xColumn = histogramConfigInfo.getxAxis().getColumnRename(),
@@ -61,8 +61,8 @@ public class ShowHistogramService {
         List<Series> serieses = new ArrayList<Series>();                //生成柱状图的系列
         int id = histogramConfigInfo.getId();
         int baseId = getChartsDataUtilService.getBaseId(id);
-        List<Screen> screens = histogramConfigInfo.getFilters();
-        ScreenStr scr = new ScreenStr();
+        List<Screen> filters = histogramConfigInfo.getFilters();
+        ScreenStr screenStr = new ScreenStr();
         String screen = "",               //正常筛选条件
                screenToColumn = "",       //跟目标列相同的筛选条件
                screenToColumnS = "";      //跟目标列相同的筛选条件
@@ -86,14 +86,22 @@ public class ShowHistogramService {
                 DynamicDataSourceContextHolder.setDataSourceType(baseId);
             }
             //条件语句处理
-            if (!CollectionUtils.isEmpty(screens)){
-                scr = screenUtil.screensUtil(screens, xColumn, xColumnType);
-                screen = scr.getRet();
-                screenToColumn = scr.getWithColumnRet();
+            if (!CollectionUtils.isEmpty(filters)){
+                screenStr = screenUtil.screensUtil(filters, xColumn, xColumnType);
+                screen = screenStr.getRet();
+                screenToColumn = screenStr.getWithColumnRet();
                 if (StringUtils.isEmpty(screenToColumn)){
-                    screenToColumnS = screen;               //and
+                    if (screen.startsWith(" and ")) {
+                        screenToColumnS = screen.substring(5);
+                    }else {
+                        screenToColumnS = screen;
+                    }
                 } else {
-                    screenToColumnS = screenToColumn.substring(5) + screen;
+                    if (screenToColumn.startsWith(" and ")) {
+                        screenToColumnS = screenToColumn.substring(5) + screen;
+                    }else {
+                        screenToColumnS = screenToColumn + screen;
+                    }
                 }
             }else {
                 screenToColumnS = " 1 = 1 ";
@@ -142,7 +150,7 @@ public class ShowHistogramService {
                     groupList.forEach(groupName -> {
                         boolean matched = histogramGroupDataList.stream().noneMatch(histogramGroupData -> groupName.equals(histogramGroupData.getGroupName()));
                         if (matched) {
-                            histogramGroupDataList.add(new HistogramGroupData(key, 0d, groupName));
+                            histogramGroupDataList.add(new HistogramGroupData(key, null, groupName));
                         }
                     });
                     histogramGroupListAfterHandle.addAll(histogramGroupDataList);