From 35c8a9c2babfd373313892af16a031d4c1c21689 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Tue, 10 Feb 2026 13:44:30 +0800
Subject: [PATCH] 1. 修改校验航线任务是否可以创建航线接口。 2. 增加返回实体类。

---
 ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java          |    5 +-
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java     |   12 ------
 ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java |    7 +--
 ard-route/src/main/java/com/ard/route/domain/route/MissionNot.java                  |   18 +++++++++
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java  |   31 ++++++++++++---
 5 files changed, 49 insertions(+), 24 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java b/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
index b71e9a2..eaf0c9b 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/route/ArdRouteMissionController.java
@@ -120,10 +120,9 @@
      * 校验航线任务是否可以创建航线
      */
     @ApiOperation("校验航线任务是否可以创建航线")
-    //@PreAuthorize("@ss.hasPermi('route:mission:query')")
-    @GetMapping(value = "/{missionId}")
-    public Boolean routeMissionNot(@PathVariable("missionId") String missionId) {
-        return ardRouteMissionService.selectRouteMissionNot(missionId);
+    @GetMapping("routeMissionNot/{id}")
+    public AjaxResult routeMissionNot(@PathVariable("id") String id) {
+        return success(ardRouteMissionService.selectRouteMissionNot(id));
     }
 
 }
diff --git a/ard-route/src/main/java/com/ard/route/domain/route/MissionNot.java b/ard-route/src/main/java/com/ard/route/domain/route/MissionNot.java
new file mode 100644
index 0000000..c7eeaac
--- /dev/null
+++ b/ard-route/src/main/java/com/ard/route/domain/route/MissionNot.java
@@ -0,0 +1,18 @@
+package com.ard.route.domain.route;
+
+import lombok.Data;
+
+@Data
+public class MissionNot {
+
+    /**
+     * 是否类型
+     */
+    private Boolean isNot;
+
+    /**
+     * 消息
+     */
+    private String information;
+
+}
diff --git a/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java b/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
index df6181c..7fbc762 100644
--- a/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
+++ b/ard-route/src/main/java/com/ard/route/service/IArdRouteMissionService.java
@@ -1,6 +1,7 @@
 package com.ard.route.service;
 
 import com.ard.route.domain.route.ArdRouteMission;
+import com.ard.route.domain.route.MissionNot;
 import com.ard.route.domain.route.UpdateMission;
 
 import java.util.List;
@@ -81,9 +82,9 @@
     /**
      * 校验航线任务是否可以创建航线
      *
-     * @param missionId 航线任务ID
+     * @param id ID
      * @return 结果
      */
-    public Boolean selectRouteMissionNot(String missionId);
+    public MissionNot selectRouteMissionNot(String id);
 
 }
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
index 5ecf63c..0dd708b 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -140,7 +140,6 @@
      */
     @Override
     public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
-        validateForCreate(ardRouteInfo);
         checkRouteMissionStatus(ardRouteInfo,"1");
         checkRouteMissionStatus(ardRouteInfo,"2");
         ardRouteInfo.setId(IdUtils.simpleUUID());
@@ -179,17 +178,6 @@
                     break;
                 default:
                     throw new RuntimeException("不支持的操作类型!!!");
-            }
-        }
-    }
-
-    // 验证,只有当前用户是下发人才能创建航线
-    private void validateForCreate(ArdRouteInfo ardRouteInfo) {
-        ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
-        if (mission != null){
-            if (!mission.getIssuerId().equals(getUserId())){
-                throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
-                //return "创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!";
             }
         }
     }
diff --git a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
index 2afdbb7..cc01107 100644
--- a/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
+++ b/ard-route/src/main/java/com/ard/route/service/impl/ArdRouteMissionServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ard.common.utils.uuid.IdUtils;
 import com.ard.route.domain.route.ArdRouteMission;
 import com.ard.route.domain.route.ArdRoutePoint;
+import com.ard.route.domain.route.MissionNot;
 import com.ard.route.domain.route.UpdateMission;
 import com.ard.route.mapper.ArdRoutePointMapper;
 import com.ard.route.websocket.utils.MiWebSocketUtils;
@@ -213,16 +214,34 @@
     /**
      * 校验航线任务是否可以创建航线
      *
-     * @param missionId 航线任务ID
+     * @param id ID
      * @return 结果
      */
     @Override
-    public Boolean selectRouteMissionNot(String missionId) {
-        ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(missionId);
-        if (mission != null){
-            throw new RuntimeException("创建航线,只能创建下发自己的航线任务信息【" + mission.getMissionName() + "】,无法执行操作!");
+    public MissionNot selectRouteMissionNot(String id) {
+        // 1. 初始化返回对象,默认允许操作
+        MissionNot missionNot = new MissionNot();
+        missionNot.setIsNot(true);
+
+        // 2. 根据ID查询航线任务
+        ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(id);
+
+        // 3. 空值快速返回(任务不存在则无需校验,直接允许操作)
+        if (mission == null) {
+            return missionNot;
         }
-        return true;
+
+        // 4. 校验任务创建者是否为当前用户
+        // 增加空指针防护:避免issuerId为null导致空指针异常
+        if (mission.getIssuerId() == null || !mission.getIssuerId().equals(getUserId())) {
+            String errorMsg = String.format("创建航线,只能创建下发自己的航线任务信息【%s】,无法执行操作!",
+                    mission.getMissionName());
+            missionNot.setInformation(errorMsg);
+            missionNot.setIsNot(false);
+        }
+
+        // 5. 统一返回结果
+        return missionNot;
     }
 
 }

--
Gitblit v1.9.3