From d2ab6f7153e604bac7bc4ad58f27f368b65d8a1e Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 16 六月 2026 13:54:58 +0800
Subject: [PATCH] feat: 添加能耗数据综合分析功能,支持按天和周维度的趋势分析
---
src/main/java/com/ruoyi/http/controller/TqdianbiaoEleRecordController.java | 82 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/http/controller/TqdianbiaoEleRecordController.java b/src/main/java/com/ruoyi/http/controller/TqdianbiaoEleRecordController.java
new file mode 100644
index 0000000..4870802
--- /dev/null
+++ b/src/main/java/com/ruoyi/http/controller/TqdianbiaoEleRecordController.java
@@ -0,0 +1,82 @@
+package com.ruoyi.http.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.http.pojo.TqdianbiaoEleRecord;
+import com.ruoyi.http.service.TqdianbiaoEleRecordManageService;
+import com.ruoyi.http.service.TqdianbiaoEleSyncService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@Tag(name = "鐢甸噺璁板綍绠$悊")
+@RequestMapping("/tqdianbiao/eleRecord")
+@RequiredArgsConstructor
+public class TqdianbiaoEleRecordController extends BaseController {
+
+ private static final DateTimeFormatter HOUR_FMT = DateTimeFormatter.ofPattern("yyyyMMddHH");
+
+ private final TqdianbiaoEleRecordManageService eleRecordManageService;
+ private final TqdianbiaoEleSyncService eleSyncService;
+
+ @GetMapping("/listPage")
+ @Operation(summary = "鐢甸噺璁板綍-鍒嗛〉鏌ヨ")
+ public AjaxResult listPage(Page page, TqdianbiaoEleRecord query) {
+ return AjaxResult.success(eleRecordManageService.listPage(page, query));
+ }
+
+ @PostMapping("/add")
+ @Log(title = "鐢甸噺璁板綍-鏂板", businessType = BusinessType.INSERT)
+ public AjaxResult add(@RequestBody TqdianbiaoEleRecord record) {
+ return eleRecordManageService.addRecord(record) ? AjaxResult.success() : AjaxResult.error();
+ }
+
+ @PostMapping("/update")
+ @Log(title = "鐢甸噺璁板綍-淇敼", businessType = BusinessType.UPDATE)
+ public AjaxResult update(@RequestBody TqdianbiaoEleRecord record) {
+ return eleRecordManageService.updateRecord(record) ? AjaxResult.success() : AjaxResult.error();
+ }
+
+ @DeleteMapping("/delete")
+ @Log(title = "鐢甸噺璁板綍-鍒犻櫎", businessType = BusinessType.DELETE)
+ public AjaxResult delete(@RequestBody List<Long> ids) {
+ return eleRecordManageService.deleteByIds(ids) ? AjaxResult.success() : AjaxResult.error();
+ }
+
+ @GetMapping("/prevReading")
+ @Operation(summary = "鑾峰彇涓婃鐢甸噺璇绘暟")
+ public AjaxResult prevReading(Long meterId, String timeKey) {
+ return AjaxResult.success(eleRecordManageService.getPrevReading(meterId, timeKey));
+ }
+
+ @PostMapping("/syncRecentOnce")
+ @Log(title = "鐢甸噺璁板綍-杩戜笁澶╄ˉ鏁�", businessType = BusinessType.OTHER)
+ @Operation(summary = "鍚屾鍓嶄笁澶╄嚦褰撳墠灏忔椂鐢甸噺锛堜竴娆℃�цˉ鏁帮級")
+ public AjaxResult syncRecentOnce() {
+ LocalDateTime start = LocalDate.now().minusDays(3).atStartOfDay();
+ LocalDateTime end = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0);
+ int count = eleSyncService.syncLast3DaysHourData();
+ Map<String, Object> data = new HashMap<>();
+ data.put("count", count);
+ data.put("startTime", start.format(HOUR_FMT));
+ data.put("endTime", end.format(HOUR_FMT));
+ return AjaxResult.success("鍚屾瀹屾垚锛�" + data.get("startTime") + " ~ " + data.get("endTime") + " 鍏� " + count + " 鏉�", data);
+ }
+}
--
Gitblit v1.9.3