From 14a155d1da646b080ce0f30db0e38ba17b7dd95a Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Mon, 13 Oct 2025 17:15:53 +0800
Subject: [PATCH] 1.增加根据[服务器id]获取六合盒子列表接口。 2.服务器管增加服务器状态。 3.服务器管理增加根据部门权限筛选。

---
 ard-common/src/main/java/com/ard/common/utils/file/MimeTypeUtils.java      |    5 ++
 ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java        |   17 ++++++--
 ard-work/src/main/resources/mapper/ArdServerInfoMapper.xml                 |   49 ++++++++++++++++--------
 ard-work/src/main/java/com/ard/work/domain/entity/ArdServerInfo.java       |    3 +
 ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java |   17 +++++---
 ard-work/src/main/java/com/ard/work/service/ITyService.java                |    2 
 6 files changed, 63 insertions(+), 30 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java b/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
index 06cc14a..4373dd7 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
@@ -1,6 +1,8 @@
 package com.ard.web.controller.work;
 
+import com.ard.common.core.controller.BaseController;
 import com.ard.common.core.domain.AjaxResult;
+import com.ard.common.core.page.TableDataInfo;
 import com.ard.work.domain.dto.BoxHistoryDTO;
 import com.ard.work.domain.dto.BoxPhotosDTO;
 import com.ard.work.domain.dto.BoxSettingsDTO;
@@ -17,6 +19,8 @@
 import javax.annotation.Resource;
 import java.util.List;
 
+import static com.ard.common.utils.PageUtils.startPage;
+
 /**
  * UavBaseController
  *
@@ -27,7 +31,7 @@
 @ApiSort(value = 2)
 @RequestMapping("/uav/base")
 @RestController
-public class UavBaseController {
+public class UavBaseController extends BaseController {
 
     @Resource
     private ITyService tyService;
@@ -79,12 +83,13 @@
         return AjaxResult.success(state);
     }
 
-    @ApiOperation("根据boxSn获取六合盒子列表")
+    @ApiOperation("根据[服务器id]获取六合盒子列表")
     @ApiOperationSupport(order = 7)
-    @GetMapping("/getBoxSnToList")
-    public AjaxResult getBoxSnToList(String boxSn) {
-        List<BoxInfoReceiver> boxList = tyService.getBoxSnToList(boxSn);
-        return AjaxResult.success(boxList);
+    @GetMapping("/getBoxSnToList/{id}")
+    public TableDataInfo getBoxSnToList(@PathVariable("id") String id) {
+        startPage();
+        List<BoxInfoReceiver> boxList = tyService.getBoxSnToList(id);
+        return getDataTable(boxList);
     }
 
 }
\ No newline at end of file
diff --git a/ard-common/src/main/java/com/ard/common/utils/file/MimeTypeUtils.java b/ard-common/src/main/java/com/ard/common/utils/file/MimeTypeUtils.java
index 7445f51..6897856 100644
--- a/ard-common/src/main/java/com/ard/common/utils/file/MimeTypeUtils.java
+++ b/ard-common/src/main/java/com/ard/common/utils/file/MimeTypeUtils.java
@@ -38,7 +38,10 @@
             // pdf
             "pdf",
             // kmz
-            "kmz"};
+            "kmz",
+            // glb
+            "glb"
+    };
 
     public static String getExtension(String prefix)
     {
diff --git a/ard-work/src/main/java/com/ard/work/domain/entity/ArdServerInfo.java b/ard-work/src/main/java/com/ard/work/domain/entity/ArdServerInfo.java
index 8c276ac..e46879f 100644
--- a/ard-work/src/main/java/com/ard/work/domain/entity/ArdServerInfo.java
+++ b/ard-work/src/main/java/com/ard/work/domain/entity/ArdServerInfo.java
@@ -52,6 +52,9 @@
     /** 部门ID */
     private Long deptId;
 
+    /** 服务器状态 */
+    private Long serverStatus;
+
     private List<ArdDroneInfo> ardDroneInfoList;
 
 }
diff --git a/ard-work/src/main/java/com/ard/work/service/ITyService.java b/ard-work/src/main/java/com/ard/work/service/ITyService.java
index 55bccab..e085666 100644
--- a/ard-work/src/main/java/com/ard/work/service/ITyService.java
+++ b/ard-work/src/main/java/com/ard/work/service/ITyService.java
@@ -284,6 +284,6 @@
      * 根据boxSn获取六合盒子列表
      * @return List<BoxInfoReceiver>
      */
-    List<BoxInfoReceiver> getBoxSnToList(String boxSn);
+    List<BoxInfoReceiver> getBoxSnToList(String id);
 
 }
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
index a9dbaf2..e54d009 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -59,6 +59,7 @@
 
 import javax.annotation.Resource;
 import java.net.InetSocketAddress;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
@@ -843,11 +844,17 @@
      * @return List<BoxInfoReceiver>
      */
     @Override
-    public List<BoxInfoReceiver> getBoxSnToList(String boxSn) {
-        ArdServerInfo serverInfo = new ArdServerInfo();
-        serverInfo.setHost(boxSn);
-        List<ArdServerInfo> ardServerInfos = ardServerService.selectArdServerManagementList(serverInfo);
-        return getBoxList(ardServerInfos);
+    public List<BoxInfoReceiver> getBoxSnToList(String id) {
+        ArdServerInfo ardServerInfos = ardServerService.selectArdServerManagementById(id);
+        String baseUrl = "http://" + ardServerInfos.getHost() + ":" + ardServerInfos.getHttpPort();
+        List<BoxInfoReceiver> lisbox = new ArrayList<>();
+        try {
+            lisbox = tyClient.getBoxList(baseUrl).getContent();
+            return lisbox;
+        } catch (Exception e) {
+            log.error("获取云盒列表失败: {}", baseUrl, e);
+            return lisbox;
+        }
     }
 
     private List<BoxInfoReceiver> getBoxList(List<ArdServerInfo> ls) {
diff --git a/ard-work/src/main/resources/mapper/ArdServerInfoMapper.xml b/ard-work/src/main/resources/mapper/ArdServerInfoMapper.xml
index b5ea34b..4bd8f5e 100644
--- a/ard-work/src/main/resources/mapper/ArdServerInfoMapper.xml
+++ b/ard-work/src/main/resources/mapper/ArdServerInfoMapper.xml
@@ -17,35 +17,47 @@
         <result property="altitude"    column="altitude"    />
         <result property="userId"    column="user_id"    />
         <result property="deptId"    column="dept_id"    />
+        <result property="serverStatus"    column="server_status"    />
     </resultMap>
 
     <sql id="selectArdServerManagementVo">
-        select id,
-               server_name,
-               host,
-               tcp_port,
-               http_port,
-               access_key_id,
-               access_key_secret,
-               longitude,
-               latitude,
-               altitude,
-               user_id,
-               dept_id
-        from ard_server_info
+        select c.id,
+               c.server_name,
+               c.host,
+               c.tcp_port,
+               c.http_port,
+               c.access_key_id,
+               c.access_key_secret,
+               c.longitude,
+               c.latitude,
+               c.altitude,
+               c.user_id,
+               c.dept_id,
+               c.server_status
+        from ard_server_info c
+                 left join sys_dept d on d.dept_id = c.dept_id
+                 left join sys_user u on u.user_id = c.user_id
     </sql>
 
     <select id="selectArdServerManagementList" parameterType="ArdServerInfo" resultMap="ArdServerManagementResult">
         <include refid="selectArdServerManagementVo"/>
-        <where>  
-            <if test="serverName != null  and serverName != ''"> and server_name like concat('%', #{serverName}, '%')</if>
-            <if test="host != null  and host != ''"> and host = #{host}</if>
+        <where>
+            <if test="id != null and id != ''"> and c.id = #{id}</if>
+            <if test="serverName != null and serverName != ''"> and server_name like c.concat('%', #{serverName}, '%')</if>
+            <if test="accessKeyId != null and accessKeyId != ''"> and c.access_key_id = #{accessKeyId}</if>
+            <if test="accessKeySecret != null and accessKeySecret != ''"> and c.access_key_secret = #{accessKeySecret}</if>
+            <if test="serverStatus != null and serverStatus != ''"> and c.server_status = #{serverStatus}</if>
+            <if test="deptId != null and deptId != 0">
+                AND (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
+            </if>
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
         </where>
     </select>
     
     <select id="selectArdServerManagementById" parameterType="String" resultMap="ArdServerManagementResult">
         <include refid="selectArdServerManagementVo"/>
-        where id = #{id}
+        where c.id = #{id}
     </select>
 
     <insert id="insertArdServerManagement" parameterType="ArdServerInfo">
@@ -63,6 +75,7 @@
             <if test="altitude != null">altitude,</if>
             <if test="userId != null">user_id,</if>
             <if test="deptId != null">dept_id,</if>
+            <if test="serverStatus != null">server_status,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -77,6 +90,7 @@
             <if test="altitude != null">#{altitude},</if>
             <if test="userId != null">#{userId},</if>
             <if test="deptId != null">#{deptId},</if>
+            <if test="serverStatus != null">#{serverStatus},</if>
          </trim>
     </insert>
 
@@ -94,6 +108,7 @@
             <if test="altitude != null">altitude = #{altitude},</if>
             <if test="userId != null">user_id = #{userId},</if>
             <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="serverStatus != null">server_status = #{serverStatus},</if>
         </trim>
         where id = #{id}
     </update>

--
Gitblit v1.9.3