feat(echarts): 添加波形图绘制功能支持

- 新增drawWavePic方法用于绘制波形图
- 实现null数据段压缩算法,确保图表性能优化
- 添加markLine和markArea功能显示null段边界标记
- 集成到WavePicComponent组件中支持瞬时和RMS波形图生成
- 修复RestTemplate对Hutool JSON对象的支持问题
- 优化WaveUtil工具类处理空值数据逻辑
This commit is contained in:
xy
2026-06-04 18:27:47 +08:00
parent aafd32c7fc
commit 56cd9a05c3
5 changed files with 691 additions and 65 deletions

View File

@@ -1,5 +1,8 @@
package com.njcn.web.utils;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.*;
@@ -149,7 +152,8 @@ public class RestTemplateUtil {
* @return ResponseEntity 响应对象封装类
*/
public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType) {
return restTemplate.postForEntity(url, requestBody, responseType);
Object actualBody = convertHutoolJsonToStandard(requestBody);
return restTemplate.postForEntity(url, actualBody, responseType);
}
/**
@@ -162,7 +166,8 @@ public class RestTemplateUtil {
* @return ResponseEntity 响应对象封装类
*/
public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType, Object... uriVariables) {
return restTemplate.postForEntity(url, requestBody, responseType, uriVariables);
Object actualBody = convertHutoolJsonToStandard(requestBody);
return restTemplate.postForEntity(url, actualBody, responseType, uriVariables);
}
/**
@@ -175,7 +180,21 @@ public class RestTemplateUtil {
* @return ResponseEntity 响应对象封装类
*/
public static <T> ResponseEntity<T> post(String url, Object requestBody, Class<T> responseType, Map<String, ?> uriVariables) {
return restTemplate.postForEntity(url, requestBody, responseType, uriVariables);
Object actualBody = convertHutoolJsonToStandard(requestBody);
return restTemplate.postForEntity(url, actualBody, responseType, uriVariables);
}
private static Object convertHutoolJsonToStandard(Object requestBody) {
if (requestBody instanceof JSONObject || requestBody instanceof JSONArray) {
try {
com.fasterxml.jackson.databind.ObjectMapper objectMapper = new com.fasterxml.jackson.databind.ObjectMapper();
return objectMapper.readValue(JSONUtil.toJsonStr(requestBody), Object.class);
} catch (Exception e) {
log.warn("Hutool JSON转标准结构失败尝试直接使用字符串", e);
return requestBody;
}
}
return requestBody;
}
/**