From d25d0d26e37d1d49f1cc800b5f8fdb234e8fde66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=BE=E5=AF=8C=E6=96=8C?= Date: Thu, 9 Oct 2025 19:50:53 +0800 Subject: [PATCH] =?UTF-8?q?fix=20(farm):=20=E5=9C=9F=E5=A3=A4=E4=BC=A0?= =?UTF-8?q?=E6=84=9F=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 历史数据格式重构 --- .../soil/history/HistoryDataListPageRespVO.java | 9 +++++++++ .../service/impl/SoilService.java | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/dto/soil/history/HistoryDataListPageRespVO.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/dto/soil/history/HistoryDataListPageRespVO.java index 0fa30bdb..b8aa6022 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/dto/soil/history/HistoryDataListPageRespVO.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/dto/soil/history/HistoryDataListPageRespVO.java @@ -19,6 +19,15 @@ public class HistoryDataListPageRespVO { private String code; private String message; private HistoryDataList data; + private List list; + + @Data + @AllArgsConstructor + @NoArgsConstructor + public static class HistoryDataListPlus{ + private Integer nodeId; + private List rows; + } @Data @AllArgsConstructor diff --git a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/service/impl/SoilService.java b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/service/impl/SoilService.java index e9557aeb..119425c9 100644 --- a/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/service/impl/SoilService.java +++ b/yudao-module-farm/src/main/java/cn/iocoder/yudao/module/farm/manager/equipmentproducer/service/impl/SoilService.java @@ -128,6 +128,8 @@ public class SoilService extends AbstractDeviceService { // 调用土壤设备厂商API获取历史数据 GET 请求方式 HistoryDataListPageRespVO vendorResponse = callSoilHistoryDataApi(token, soilRequest); + // 格式转换 + vendorResponse = convertDataToList(vendorResponse); // TODO: 2025/9/26 模拟保存到MySQL // saveHistoryDataToDatabase(vendorResponse, soilRequest); @@ -138,6 +140,20 @@ public class SoilService extends AbstractDeviceService { } } + public HistoryDataListPageRespVO convertDataToList(HistoryDataListPageRespVO source) { + HistoryDataListPageRespVO.HistoryDataList data = source.getData(); + + // 按 nodeId 分组 + Map> groupedByNodeId = data.getRows().stream().collect(Collectors.groupingBy(HistoryDataListPageRespVO.Row::getNodeId)); + + // 转换为 HistoryDataListPlus 列表 + List list = groupedByNodeId.entrySet().stream() + .map(entry -> new HistoryDataListPageRespVO.HistoryDataListPlus(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + + return new HistoryDataListPageRespVO(source.getCode(), source.getMessage(), null, list); + } + private UserLoginRespVO callSoilVendorApi(UserLoginReqVO request) { try { String url = deviceConf.getFourSituations().getHosts() +