From 490af7eee11cb5bf8f962aff2ebf1358d1b030df Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Mon, 17 Mar 2025 14:41:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9B=BE=E8=A1=A8):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E7=BB=B4=E5=BA=A6=E4=B8=8B=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=8D=E5=AD=98=E5=9C=A8=EF=BC=8C?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E7=B4=AF=E5=8A=A0=E6=97=B6=EF=BC=8C=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E7=B4=AF=E5=8A=A0=E4=B8=AD=E6=96=AD=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/charts/impl/DefaultChartHandler.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java index c7277c0e3b..6d27ed05e6 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java +++ b/core/core-backend/src/main/java/io/dataease/chart/charts/impl/DefaultChartHandler.java @@ -533,7 +533,7 @@ public class DefaultChartHandler extends AbstractChartPlugin { } boolean isStack = StringUtils.containsIgnoreCase(chartType, "stack") && CollectionUtils.isNotEmpty(extStack); boolean isGroup = StringUtils.containsIgnoreCase(chartType, "group") - || (StringUtils.containsIgnoreCase(chartType, "-mix") && CollectionUtils.isNotEmpty(xAxisExt)); + || (CollectionUtils.isNotEmpty(xAxisExt)); if (isStack || isGroup) { if (CollectionUtils.isEmpty(xAxis)) { break; @@ -562,18 +562,21 @@ public class DefaultChartHandler extends AbstractChartPlugin { }); int finalDataIndex = dataIndex; int subEndIndex = xAxisBase.size(); - if (StringUtils.containsIgnoreCase(chartType, "group") || StringUtils.containsIgnoreCase(chartType, "-mix")) { + if (CollectionUtils.isNotEmpty(xAxisExt) + || StringUtils.containsIgnoreCase(chartType, "group") + || StringUtils.containsIgnoreCase(chartType, "-mix")) { subEndIndex += xAxisExt.size(); } if (StringUtils.containsIgnoreCase(chartType, "stack")) { subEndIndex += extStack.size(); } int finalSubEndIndex = subEndIndex; + // 存储上次的值 + Map preDataMap = new HashMap<>(); //滑动累加 for (int k = 1; k < mainMatrix.size(); k++) { List preDataItems = mainMatrix.get(k - 1); List curDataItems = mainMatrix.get(k); - Map preDataMap = new HashMap<>(); preDataItems.forEach(preDataItem -> { String[] groupStackAxisArr = Arrays.copyOfRange(preDataItem, xAxisBase.size(), finalSubEndIndex); String groupStackAxis = StringUtils.join(groupStackAxisArr, '-'); @@ -591,6 +594,12 @@ public class DefaultChartHandler extends AbstractChartPlugin { curDataItem[finalDataIndex] = new BigDecimal(curDataItem[finalDataIndex]) .add(preValue) .toString(); + } else { + if (preDataMap.containsKey(groupStackAxis)) { + curDataItem[finalDataIndex] = new BigDecimal(curDataItem[finalDataIndex]) + .add(preDataMap.get(groupStackAxis)) + .toString(); + } } }); }