From 8f6558142095bfef83bdf165c4a1ad796767a3af Mon Sep 17 00:00:00 2001 From: wisonic-s Date: Thu, 28 Mar 2024 18:14:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E5=BF=AB=E9=80=9F?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E7=B4=AF=E5=8A=A0=E7=A9=BA=E6=8C=87=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataease/service/chart/ChartViewService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 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 165a674a7a..8a39cfcf15 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 @@ -1515,7 +1515,11 @@ public class ChartViewService { preDataItems.forEach(preDataItem -> { String[] groupStackAxisArr = Arrays.copyOfRange(preDataItem, finalXAxisBase.size(), finalSubEndIndex); String groupStackAxis = StringUtils.join(groupStackAxisArr, '-'); - preDataMap.put(groupStackAxis, new BigDecimal(preDataItem[finalDataIndex])); + String preVal = preDataItem[finalDataIndex]; + if (StringUtils.isBlank(preVal)) { + preVal = "0"; + } + preDataMap.put(groupStackAxis, new BigDecimal(preVal)); }); curDataItems.forEach(curDataItem -> { String[] groupStackAxisArr = Arrays.copyOfRange(curDataItem, finalXAxisBase.size(), finalSubEndIndex); @@ -1532,10 +1536,14 @@ public class ChartViewService { final int index = dataIndex; final AtomicReference accumValue = new AtomicReference<>(new BigDecimal(0)); data.forEach(item -> { - BigDecimal curVal = new BigDecimal(item[index]); - BigDecimal curAccumValue = accumValue.get().add(curVal); + String val = item[index]; + BigDecimal curAccumValue = accumValue.get(); + if (!StringUtils.isBlank(val)) { + BigDecimal curVal = new BigDecimal(val); + curAccumValue = curAccumValue.add(curVal); + accumValue.set(curAccumValue); + } item[index] = curAccumValue.toString(); - accumValue.set(curAccumValue); }); } }