@PostMapping("/smart/chart/importData2")
@Transactional(rollbackFor = Exception.class) // 添加事务管理注解,捕获所有异常回滚事务
public AjaxResult cornerLoopPhoto45466666(@RequestBody ChartDateTto chartDateTto) throws Exception {
String chartValue = chartDateTto.getChartValue();
List<List<String>> lists = extractDataFromList(chartDateTto.getDataList());
System.out.println(chartValue);
ObjectMapper objectMapper = new ObjectMapper();
JsonNode chartValueJson = objectMapper.readTree(chartValue);
// 获取dataset节点并替换source节点
ArrayNode dataset = (ArrayNode) chartValueJson.path("dataset");
for (JsonNode node : dataset) {
if (node.has("source")) {
((com.fasterxml.jackson.databind.node.ObjectNode) node).set("source", objectMapper.valueToTree(lists));
break;
}
}
// 移除集合中第一个对象的第一个元素
if (!lists.isEmpty() && !lists.get(0).isEmpty()) {
lists.get(0).remove(0);
}
System.out.println("-----------------------------以下是修改代码----------------------------------------");
ArrayNode seriesArray = (ArrayNode) chartValueJson.path("series");
// 计算第一个对象元素数量
int firstObjectRemainingElements = lists.isEmpty() ? 0 : lists.get(0).size();
System.out.println(firstObjectRemainingElements);
// 如果series字段的对象数量小于第一个集合的数量,循环复制series中的对象使其数量相等
if (seriesArray.size() < firstObjectRemainingElements) {
JsonNode firstSeriesObject = seriesArray.get(0);
for (int i = seriesArray.size(); i < firstObjectRemainingElements; i++) {
seriesArray.add(firstSeriesObject.deepCopy());
}
} else {
// 删除多余的对象
while (seriesArray.size() > firstObjectRemainingElements) {
seriesArray.remove(seriesArray.size() - 1);
}
}
System.out.println("-----------------------------以上是修改代码----------------------------------------");
// 更新series中每个对象的name字段
for (int i = 0; i < firstObjectRemainingElements; i++) {
((ObjectNode) seriesArray.get(i)).put("name", lists.get(0).get(i));
}
// 获取legend节点并更新data
JsonNode legend = chartValueJson.path("legend");
ChartDataUtils.updateLegendData(legend, lists);
String updatedChartValue = chartValueJson.toString();
ArrayList<ChartSmartVo> newList = new ArrayList<>();
// 获取ChartConfigs对象
ChartConfigs configs = chartConfigsService.getById(chartDateTto.getConfigId());
// 创建新的ChartSmartVo对象并设置属性
ChartSmartVo chartSmartVo = new ChartSmartVo();
chartSmartVo.setConfigId(configs.getId()); // 假设ChartConfigs有getId方法
chartSmartVo.setConfigName(configs.getConfigName()); // 假设ChartConfigs有getName方法
chartSmartVo.setConfigValue(updatedChartValue);
chartSmartVo.setChartTypeId(configs.getChartTypeId());
newList.add(chartSmartVo);
System.out.println(updatedChartValue);
return AjaxResult.success(newList);
}
多层圆滑折线图-2(物理学) 对series对象循环复制
于 2024-07-12 15:56:33 首次发布