From 9cb8d7e0f4ffca386b14a15f8a0aca4d1db23252 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 30 十月 2025 15:58:45 +0800
Subject: [PATCH] 2025.10.30 新增单场景纵向统计接口

---
 src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
index c20ade5..cc32658 100644
--- a/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
+++ b/src/main/kotlin/cn/flightfeather/supervision/lightshare/web/DeviceController.kt
@@ -3,6 +3,7 @@
 import cn.flightfeather.supervision.common.utils.Constant
 import cn.flightfeather.supervision.domain.ds1.entity.MonitorDeviceInfo
 import cn.flightfeather.supervision.lightshare.service.DeviceService
+import cn.flightfeather.supervision.lightshare.vo.AreaVo
 import io.swagger.annotations.Api
 import io.swagger.annotations.ApiOperation
 import io.swagger.annotations.ApiParam
@@ -18,22 +19,22 @@
     @GetMapping
     fun fetchDevice(
         @ApiParam("鍦烘櫙id") @RequestParam sceneId: String,
-        @ApiParam("璁惧绫诲瀷id", allowableValues = "0,1,2") @RequestParam deviceTypeId: Byte,
-    ) = resPack { deviceService.findDevices(sceneId, Constant.DeviceType.fromValue(deviceTypeId)) }
+        @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
+    ) = deviceService.findDevices(sceneId, Constant.DeviceType.fromValue(deviceTypeId))
 
     @ApiOperation("鏂板鍦烘櫙璁惧淇℃伅")
     @PutMapping("/upload")
     fun uploadDevice(
         @ApiParam("璁惧淇℃伅") @RequestBody deviceInfo: String,
         @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
-    ) = resPack { deviceService.insertDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId)) }
+    ) = deviceService.insertDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId))
 
     @ApiOperation("鏇存柊鍦烘櫙璁惧淇℃伅")
     @PostMapping("/update")
     fun updateDevice(
         @ApiParam("璁惧淇℃伅") @RequestBody deviceInfo: String,
         @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
-    ) = resPack { deviceService.updateDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId)) }
+    ) = deviceService.updateDevice(deviceInfo, Constant.DeviceType.fromValue(deviceTypeId))
 
     @ApiOperation("鑾峰彇鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
     @GetMapping("/status")
@@ -41,14 +42,14 @@
         @ApiParam("鍦烘櫙id") @RequestParam(required = false) sceneId: String?,
         @ApiParam("璁惧id") @RequestParam deviceId: Int,
         @ApiParam("璁惧绫诲瀷id") @RequestParam deviceTypeId: Byte,
-    ) = resPack { deviceService.findDeviceLocations(sceneId, deviceId, Constant.DeviceType.fromValue(deviceTypeId)) }
+    ) = deviceService.findDeviceLocations(sceneId, deviceId, Constant.DeviceType.fromValue(deviceTypeId))
 
     @ApiOperation("鏂板鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
     @PostMapping("/status/upload")
     fun uploadDeviceLocation(
         @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("status") status: String,
         @ApiParam("璁惧鍥剧墖") @RequestPart("images") images: Array<MultipartFile>,
-    ) = resPack { deviceService.insertDeviceLocation(status, images) }
+    ) = deviceService.insertDeviceLocation(status, images)
 
     @ApiOperation("鏇存柊鍦烘櫙璁惧浣嶇疆鍙樻洿淇℃伅")
     @PostMapping("/status/update")
@@ -56,5 +57,18 @@
         @ApiParam("璁惧浣嶇疆淇℃伅json") @RequestParam("status") status: String,
         @ApiParam("鍒犻櫎鐨勮澶囧浘鐗囪矾寰�") @RequestParam("deleteImg") deleteImg: List<String>,
         @ApiParam("璁惧鍥剧墖") @RequestPart("images") images: Array<MultipartFile>,
-    ) = resPack { deviceService.updateDeviceLocation(status, deleteImg, images) }
+    ) = deviceService.updateDeviceLocation(status, deleteImg, images)
+
+    @ApiOperation("鏌ヨ浠庡閮ㄨ幏鍙栫殑璁惧淇℃伅")
+    @PostMapping("/external/search")
+    fun searchExternalDevice(
+        @ApiParam("鍖哄煙鏉′欢淇℃伅") @RequestBody
+        areaVo: AreaVo,
+        @ApiParam("鎼滅储鍏抽敭瀛楋紝鍖归厤璁惧缂栧彿鍜岀偣浣嶅悕绉�") @RequestParam
+        keyword: String,
+        @ApiParam("鏌ヨ椤电爜", defaultValue = "1", required = false) @RequestParam("page", required = false)
+        page: Int?,
+        @ApiParam("鍗曢〉鏁版嵁閲�", defaultValue = "30", required = false) @RequestParam("per_page", required = false)
+        perPage: Int?,
+    ) = deviceService.searchExternalDevice(areaVo, keyword, page, perPage)
 }
\ No newline at end of file

--
Gitblit v1.9.3