From db809f65ce11423bf2cb1521366f207851f3d026 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 21 Mar 2024 11:08:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E5=9B=BE):=20=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=94=AF=E6=8C=81=E5=91=A8=E7=8E=AF=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/chart/ChartViewService.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 540ac9a012..d58cd2ab11 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -1399,7 +1399,7 @@ public class ChartViewService { String cValue = item[dataIndex]; // 获取计算后的时间,并且与所有维度拼接 - String lastTime = calcLastTime(cTime, compareCalc.getType(), timeField.getDateStyle(), timeField.getDatePattern()); + String lastTime = calcLastTime(cTime, compareCalc.getType(), timeField.getDateStyle(), timeField.getDatePattern(), ds); String[] dimension = Arrays.copyOfRange(item, 0, checkedField.size()); dimension[timeIndex] = lastTime; @@ -1460,7 +1460,7 @@ public class ChartViewService { if (StringUtils.containsIgnoreCase(view.getType(), "stack") && extStack.isEmpty()) { break; } - if (StringUtils.containsIgnoreCase(view.getType(), "group") && xAxisExt.isEmpty() ) { + if (StringUtils.containsIgnoreCase(view.getType(), "group") && xAxisExt.isEmpty()) { break; } final Map mainIndexMap = new HashMap<>(); @@ -1764,7 +1764,7 @@ public class ChartViewService { return false; } - private String calcLastTime(String cTime, String type, String dateStyle, String datePattern) { + private String calcLastTime(String cTime, String type, String dateStyle, String datePattern, Datasource ds) { try { String lastTime = null; Calendar calendar = Calendar.getInstance(); @@ -1843,9 +1843,17 @@ public class ChartViewService { } else if (StringUtils.equalsIgnoreCase(type, ChartConstants.WEEK_MOM)) { SimpleDateFormat simpleDateFormat = null; if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) { - simpleDateFormat = new SimpleDateFormat("yyyy/'W'w"); + if (StringUtils.equalsIgnoreCase(ds.getType(), "ck")) { + simpleDateFormat = new SimpleDateFormat("yyyy/'W'w"); + } else { + simpleDateFormat = new SimpleDateFormat("yyyy/'W'ww"); + } } else { - simpleDateFormat = new SimpleDateFormat("yyyy-'W'w"); + if (StringUtils.equalsIgnoreCase(ds.getType(), "ck")) { + simpleDateFormat = new SimpleDateFormat("yyyy-'W'w"); + } else { + simpleDateFormat = new SimpleDateFormat("yyyy-'W'ww"); + } } Date date = simpleDateFormat.parse(cTime); calendar.setTime(date);