diff --git a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewThresholdManage.java b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewThresholdManage.java index e9379142d9..aeb20ae848 100644 --- a/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewThresholdManage.java +++ b/core/core-backend/src/main/java/io/dataease/chart/manage/ChartViewThresholdManage.java @@ -20,6 +20,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -281,8 +282,15 @@ public class ChartViewThresholdManage { if (ObjectUtils.isEmpty(fieldDTO)) continue; String fieldDTOName = fieldDTO.getName(); String dataeaseName = fieldDTO.getDataeaseName(); - List valueList = rows.stream().map(row -> ObjectUtils.isEmpty(row.get(dataeaseName)) ? null : row.get(dataeaseName).toString()).collect(Collectors.toList()); - String replacement = fieldDTOName + ": " + JsonUtil.toJSONString(valueList); + String replacement = null; + if (fieldDTO.getDeType().equals(DeTypeConstants.DE_FLOAT)) { + List valueList = rows.stream().map(row -> ObjectUtils.isEmpty(row.get(dataeaseName)) ? null : stripTrailingZeros2String(row.get(dataeaseName))).collect(Collectors.toList()); + replacement = fieldDTOName + ": " + JsonUtil.toJSONString(valueList); + } else { + List valueList = rows.stream().map(row -> ObjectUtils.isEmpty(row.get(dataeaseName)) ? null : row.get(dataeaseName).toString()).collect(Collectors.toList()); + replacement = fieldDTOName + ": " + JsonUtil.toJSONString(valueList); + } + // 替换文本 matcher.appendReplacement(sb, replacement); } @@ -297,6 +305,14 @@ public class ChartViewThresholdManage { } } + private String stripTrailingZeros2String(Object value) { + if (ObjectUtils.isEmpty(value)) { + return null; + } + if (!(value instanceof BigDecimal)) return value.toString(); + return ((BigDecimal) value).stripTrailingZeros().toString(); + } + private void chartDynamicMap(List> rows, FilterTreeObj conditionTree, Map fieldMap) { List items = conditionTree.getItems(); items.forEach(item -> {