From 894d18bb13dae351028e584f9b73a8d6964a0a50 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 19 Nov 2025 13:51:17 +0800
Subject: [PATCH] 2025-11-15 zwy 航线信息被删掉后,航线任务列表在读取航线时会报错;处理错误,航线不存在时航线文件名称显示空。正常逻辑应该是航线文件有任务在用,就不能随意删除;

---
 ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 5 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java b/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
index 0f2312d..18420ce 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/sample/DeviceController.java
@@ -1,5 +1,8 @@
 package com.ard.web.controller.sample;
 
+import com.ard.common.core.controller.BaseController;
+import com.ard.common.core.page.TableDataInfo;
+import com.ard.device.camera.domain.ArdCamera;
 import com.ard.sample.common.error.CommonErrorEnum;
 import com.ard.sample.common.model.PaginationData;
 import com.ard.sample.common.model.ResponseResult;
@@ -8,19 +11,27 @@
 import com.ard.sample.component.mqtt.model.CommonTopicResponse;
 import com.ard.sample.manage.model.dto.DeviceDTO;
 import com.ard.sample.manage.model.dto.DeviceFirmwareUpgradeDTO;
+import com.ard.sample.manage.model.entity.DeviceEntity;
+import com.ard.sample.manage.model.enums.DeviceFirmwareStatusEnum;
 import com.ard.sample.manage.model.enums.DeviceSetPropertyEnum;
 import com.ard.sample.manage.model.receiver.StatusGatewayReceiver;
 import com.ard.sample.manage.service.IDeviceService;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.databind.JsonNode;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.integration.annotation.ServiceActivator;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.ZoneId;
 import java.util.List;
 import java.util.Optional;
+
+import static com.ard.common.utils.PageUtils.startPage;
 
 /**
  * @author sean.zhou
@@ -31,7 +42,7 @@
 @RestController
 @Slf4j
 @RequestMapping("/dock/device")
-public class DeviceController {
+public class DeviceController extends BaseController {
 
     @Autowired
     private IDeviceService deviceService;
@@ -84,9 +95,11 @@
      * @return
      */
     @ApiOperation("设备列表")
+    @PreAuthorize("@ss.hasPermi('device:dock:list')")
     @GetMapping("/list")
     public ResponseResult<List<DeviceDTO>> getDevices() {
-        List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb();
+//        List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb();
+        List<DeviceDTO> devicesList = deviceService.getDockList();
         return ResponseResult.success(devicesList);
     }
 
@@ -121,6 +134,7 @@
 
     /**
      * Get the binding devices list
+     * 获取绑定设备列表
      *
      * @param page
      * @param pageSize
@@ -128,11 +142,13 @@
      */
     @ApiOperation("绑定设备列表")
     @GetMapping("/list/bound")
+    @PreAuthorize("@ss.hasPermi('device:dock:list')")
     public ResponseResult<PaginationData<DeviceDTO>> getBoundDevicesWithDomain(Integer domain,
                                                                                @RequestParam(defaultValue = "1") Long page,
                                                                                @RequestParam(value = "page_size",
-                                                                                       defaultValue = "50") Long pageSize) {
-        PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(page, pageSize, domain);
+                                                                                       defaultValue = "50") Long pageSize,
+                                                                               @RequestParam(required = false) Long deptId) {
+        PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(page, pageSize, domain, deptId);
 
         return ResponseResult.success(devices);
     }
@@ -197,7 +213,46 @@
         if (propertyEnumOpt.isEmpty()) {
             return ResponseResult.error(CommonErrorEnum.ILLEGAL_ARGUMENT);
         }
-        deviceService.devicePropertySet(dockSn, propertyEnumOpt.get(), param.get(property));
+        deviceService.devicePropertySet(dockSn, propertyEnumOpt.get(), param);
         return ResponseResult.success();
     }
+
+    //.get(property)
+
+//    /**
+//     * 查询机场设备列表
+//     */
+//    @PreAuthorize("@ss.hasPermi('device:camera:list')")
+//    @GetMapping("/test/list")
+//    @ApiOperation("查询机场设备列表")
+//    public TableDataInfo list(DeviceDTO device) {
+//        startPage();
+//        DeviceEntity deviceEntity = deviceDTO2Entity(device);
+//        QueryWrapper<DeviceEntity> queryWrapper=new QueryWrapper<>(deviceEntity);
+//        List<DeviceEntity> list = deviceService.selectList(queryWrapper);
+//        return getDataTable(list);
+//    }
+
+    private DeviceEntity deviceDTO2Entity(DeviceDTO dto) {
+        DeviceEntity.DeviceEntityBuilder builder = DeviceEntity.builder();
+        if (dto == null) {
+            return builder.build();
+        }
+
+        return builder.deviceSn(dto.getDeviceSn())
+                .userId(dto.getUserId())
+                .nickname(dto.getNickname())
+                .boundStatus(dto.getBoundStatus())
+                .loginTime(dto.getLoginTime() != null ?
+                        dto.getLoginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : null)
+                .boundTime(dto.getBoundTime() != null ?
+                        dto.getBoundTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : null)
+                .childSn(dto.getChildDeviceSn())
+                .domain(dto.getDomain())
+                .firmwareVersion(dto.getFirmwareVersion())
+                .workType(dto.getWorkType())
+                .compatibleStatus(dto.getFirmwareStatus() == null ? null :
+                        DeviceFirmwareStatusEnum.CONSISTENT_UPGRADE != DeviceFirmwareStatusEnum.find(dto.getFirmwareStatus()))
+                .build();
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3