From 4df6457964c9da37e16b21ebc0300d602fa919d0 Mon Sep 17 00:00:00 2001 From: junjun Date: Mon, 17 Jun 2024 15:36:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E9=92=BB=E6=97=A5=E6=9C=9FSQL=E6=8B=BC=E6=8E=A5?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/manage/ChartDataManage.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java index c76d6f2de8..b4f810d23c 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartDataManage.java @@ -541,11 +541,18 @@ public class ChartDataManage { ChartExtFilterDTO tmpFilter = new ChartExtFilterDTO(); DatasetTableFieldDTO datasetTableField = datasetTableFieldManage.selectById(tmpField.getId()); tmpFilter.setDatasetTableField(datasetTableField); - tmpFilter.setOperator("in"); tmpFilter.setDateStyle(fieldMap.get(tmpField.getId()).getDateStyle()); tmpFilter.setDatePattern(fieldMap.get(tmpField.getId()).getDatePattern()); tmpFilter.setFieldId(String.valueOf(tmpField.getId())); - tmpFilter.setValue(Collections.singletonList(dimValMap.get(tmpField.getId()))); + if (datasetTableField.getDeType() == 1) { + tmpFilter.setOperator("between"); + // 把value类似过滤组件处理,获得start time和end time + Map stringLongMap = Utils.parseDateTimeValue(dimValMap.get(tmpField.getId())); + tmpFilter.setValue(Arrays.asList(String.valueOf(stringLongMap.get("startTime")), String.valueOf(stringLongMap.get("endTime")))); + } else { + tmpFilter.setOperator("in"); + tmpFilter.setValue(Collections.singletonList(dimValMap.get(tmpField.getId()))); + } extFilterList.add(tmpFilter); drillFilters.add(tmpFilter); } @@ -614,11 +621,14 @@ public class ChartDataManage { if (Arrays.asList(ChartConstants.M_Y).contains(compareCalc.getType())) { if (StringUtils.equalsIgnoreCase(compareCalc.getField() + "", filterDTO.getFieldId())) { // -1 year - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date(Long.parseLong(filterDTO.getValue().getFirst()))); - calendar.add(Calendar.YEAR, -1); - filterDTO.getValue().set(0, String.valueOf(calendar.getTime().getTime())); - isYOY = true; + try { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date(Long.parseLong(filterDTO.getValue().getFirst()))); + calendar.add(Calendar.YEAR, -1); + filterDTO.getValue().set(0, String.valueOf(calendar.getTime().getTime())); + isYOY = true; + } catch (Exception e) { + } } } }