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); }); } }