From f4d592f3626f94117d8a4eb22176a28290931980 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 26 五月 2026 18:51:54 +0800
Subject: [PATCH] 新增智能电表、空调管理

---
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwConditionerCloudController.java |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwConditionerCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwConditionerCloudController.java
index 56fc4e7..9f79a7a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwConditionerCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwConditionerCloudController.java
@@ -7,7 +7,10 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.dto.YwConditionerLockDTO;
+import com.doumee.dao.business.dto.YwConditionerOperateDTO;
 import com.doumee.dao.business.model.YwConditioner;
+import com.doumee.dao.business.model.YwConditionerActions;
 import com.doumee.service.business.YwConditionerService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -18,6 +21,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 绌鸿皟璁惧淇℃伅
@@ -93,4 +97,65 @@
         pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
         ExcelExporter.build(YwConditioner.class).export(ywConditionerService.findPage(pageWrap).getRecords(), "绌鸿皟璁惧淇℃伅", response);
     }
+
+    @ApiOperation("鍗$墖鍒嗛〉")
+    @PostMapping("/cardPage")
+    @CloudRequiredPermission("business:ywconditioner:query")
+    public ApiResponse<PageData<YwConditioner>> findCardPage(@RequestBody PageWrap<YwConditioner> pageWrap,
+                                                             @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        if (pageWrap.getModel() != null) {
+            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        }
+        return ApiResponse.success(ywConditionerService.findCardPage(pageWrap));
+    }
+
+    @PreventRepeat
+    @ApiOperation("鍏ㄩ噺鍚屾")
+    @PostMapping("/syncAll")
+    @CloudRequiredPermission("business:ywconditioner:sync")
+    public ApiResponse<String> syncAll(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywConditionerService.syncAll());
+    }
+
+    @PreventRepeat
+    @ApiOperation("鍚屾璁惧涓庣姸鎬�")
+    @PostMapping("/syncDevicesAndStatus")
+    @CloudRequiredPermission("business:ywconditioner:sync")
+    public ApiResponse<String> syncDevicesAndStatus(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywConditionerService.syncDevicesAndStatus());
+    }
+
+    @ApiOperation("璁惧鎺у埗")
+    @PostMapping("/operate")
+    @CloudRequiredPermission("business:ywconditioner:operate")
+    public ApiResponse<String> operate(@RequestBody YwConditionerOperateDTO dto,
+                                       @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywConditionerService.operate(dto, this.getLoginUser(token)));
+    }
+
+    @ApiOperation("璁惧閿佸畾")
+    @PostMapping("/lock")
+    @CloudRequiredPermission("business:ywconditioner:operate")
+    public ApiResponse<String> lock(@RequestBody YwConditionerLockDTO dto,
+                                  @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywConditionerService.lock(dto, this.getLoginUser(token)));
+    }
+
+    @ApiOperation("鍗曡澶囨帶鍒跺巻鍙�")
+    @PostMapping("/historyPage")
+    @CloudRequiredPermission("business:ywconditioner:query")
+    public ApiResponse<PageData<YwConditionerActions>> historyPage(@RequestBody PageWrap<YwConditionerActions> pageWrap,
+                                                                   @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        if (pageWrap.getModel() != null) {
+            pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
+        }
+        return ApiResponse.success(ywConditionerService.historyPage(pageWrap));
+    }
+
+    @ApiOperation("缃戝叧涓嬫媺")
+    @GetMapping("/gatewayOptions")
+    @CloudRequiredPermission("business:ywconditioner:query")
+    public ApiResponse<List<Map<String, Object>>> gatewayOptions(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywConditionerService.gatewayOptions());
+    }
 }

--
Gitblit v1.9.3