소스 검색

能耗分析接口代码提交

fuyuchuan 1 일 전
부모
커밋
8633fb644b

+ 9 - 12
service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsAnalysisController.java

@@ -19,14 +19,14 @@ public class EmsAnalysisController {
 
     @Autowired
     private EmsAnalysisService emsAnalysisService;
-    
+
     /**
      * 获取当前日期的默认值
      */
     private String getCurrentDefaultTimeDimension() {
         return "D"; // 按日统计
     }
-    
+
     /**
      * 获取当前日期的默认值(根据时间维度返回对应格式)
      */
@@ -80,16 +80,13 @@ public class EmsAnalysisController {
         return ApiResult.success(emsAnalysisService.getTrendCategory(projectId, timeDimension, timeValue, energyTypeId));
     }
 
-    @GetMapping("/region")
-    public ApiResult<EmsRegionAnalysisResponse> getRegionAnalysis(
-            @RequestParam(required = false) Long projectId,
-            @RequestParam(required = false) String regionIds,
-            @RequestParam(required = false) String timeDimension,
-            @RequestParam(required = false) String timeValue,
-            @RequestParam(required = false) Long energyTypeId) {
-        if (timeDimension == null) timeDimension = getCurrentDefaultTimeDimension();
-        if (timeValue == null) timeValue = getCurrentDefaultTimeValue(timeDimension);
-        return ApiResult.success(emsAnalysisService.getRegionAnalysis(projectId, regionIds, timeDimension, timeValue, energyTypeId));
+    /**
+     * 区域能耗时序分析
+     * 按分项编码与区域列表,查询各区域在时间轴上的能耗数据
+     */
+    @PostMapping("/region")
+    public ApiResult<EmsAverageResponseVO> getRegionAnalysis(@RequestBody EmsAverageRequest request) {
+        return ApiResult.success(emsAnalysisService.getRegionalAnalysis(request));
     }
 
     @PostMapping("/compare")

+ 2 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsAnalysisService.java

@@ -18,4 +18,6 @@ public interface EmsAnalysisService {
     EmsCompareResponse getCompare(EmsCompareRequest request);
 
     EmsAverageResponse getAverage(Long projectId, String timeDimension, String timeValue, Long energyTypeId);
+
+    EmsAverageResponseVO getRegionalAnalysis(EmsAverageRequest request);
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 354 - 304
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsAnalysisServiceImpl.java


+ 20 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/EmsAveragePointVO.java

@@ -0,0 +1,20 @@
+package com.usky.ems.service.vo;
+
+import lombok.Data;
+
+/**
+ * 能耗分析-单时间点数据
+ */
+@Data
+public class EmsAveragePointVO {
+
+    /**
+     * 用量值,无数据时为 "-"
+     */
+    private String value;
+
+    /**
+     * 时间点,与 timeData 一致(如 2026年6月3日0时)
+     */
+    private String time;
+}

+ 48 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/EmsAverageRequest.java

@@ -0,0 +1,48 @@
+package com.usky.ems.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 能耗分析-区域时序数据请求
+ */
+@Data
+public class EmsAverageRequest {
+
+    /**
+     * 开始时间,格式:yyyy-MM-dd HH:mm:ss
+     */
+    private String startTime;
+
+    /**
+     * 结束时间,格式:yyyy-MM-dd HH:mm:ss
+     */
+    private String endTime;
+
+    /**
+     * 时间粒度:hour、day、month、year
+     */
+    private String dateType;
+
+    /**
+     * 区域列表
+     */
+    private List<SpaceItem> spaces;
+
+    /**
+     * 查询类型:0-总量/KWh,1-单位面积用量(kWh/㎡)
+     */
+    private Integer type;
+
+    /**
+     * 能耗分项编码
+     */
+    private String code;
+
+    @Data
+    public static class SpaceItem {
+        private Long id;
+        private String name;
+    }
+}

+ 23 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/EmsAverageResponseVO.java

@@ -0,0 +1,23 @@
+package com.usky.ems.service.vo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 能耗分析-区域时序数据响应
+ */
+@Data
+public class EmsAverageResponseVO {
+
+    /**
+     * 时间轴展示标签
+     */
+    private List<String> timeData = new ArrayList<>();
+
+    /**
+     * 各区域时序数据
+     */
+    private List<EmsAverageSpaceItemVO> dataList = new ArrayList<>();
+}

+ 17 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/vo/EmsAverageSpaceItemVO.java

@@ -0,0 +1,17 @@
+package com.usky.ems.service.vo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 能耗分析-区域时序数据
+ */
+@Data
+public class EmsAverageSpaceItemVO {
+
+    private Long spaceId;
+    private String name;
+    private List<EmsAveragePointVO> list = new ArrayList<>();
+}

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.