From 163b908ddaacab8f54549e24dfb2d2b60b6c5385 Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Mon, 26 Jan 2026 14:48:21 +0800
Subject: [PATCH] 1. 创建航线时,修改任务航线相关业务逻辑引用报错问题。

---
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java |   38 +++++++++++++++++++++++---------------
 1 files changed, 23 insertions(+), 15 deletions(-)

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 a8b9e9f..f5f878d 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,8 +140,10 @@
      */
     @Override
     public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
-        checkRouteMissionStatus(ardRouteInfo,"1");
-        checkRouteMissionStatus(ardRouteInfo,"2");
+        if ("3".equals(ardRouteInfo.getType())) {
+            checkRouteMissionStatus(ardRouteInfo,"1");
+            checkRouteMissionStatus(ardRouteInfo,"2");
+        }
         ardRouteInfo.setId(IdUtils.simpleUUID());
         ardRouteInfo.setCreateTime(DateUtils.getNowDate());
         ardRouteInfo.setUpdateTime(DateUtils.getNowDate()); // 修改时间,用于排序
@@ -165,18 +167,22 @@
      */
     private void checkRouteMissionStatus(ArdRouteInfo ardRouteInfo,String type){
         ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
-        switch(type){
-            case "1":
-                validateForCreate(mission);
-                break;
-            case "2":
-                bindRoute(mission, ardRouteInfo);
-                break;
-            case "3":
-                executeMission(mission);
-                break;
-            default:
-                throw new RuntimeException("不支持的操作类型!!!");
+        if (mission != null){
+            switch(type){
+                case "1":
+                    validateForCreate(mission);
+                    break;
+                case "2":
+                    bindRoute(mission, ardRouteInfo);
+                    break;
+                case "3":
+                    executeMission(mission);
+                    break;
+                default:
+                    throw new RuntimeException("不支持的操作类型!!!");
+            }
+        }else {
+            throw new RuntimeException("航线任务不存在!!!");
         }
     }
 
@@ -475,7 +481,9 @@
         // 判断是否循环航线
         if (null != route && "0".equals(route.getIsLoop())){
             deleteArdRouteInfoById(id);
-            checkRouteMissionStatus(route,"3");
+            if ("3".equals(route.getType())) {
+                checkRouteMissionStatus(route,"3");
+            }
         }
         WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);
         tyService.wayLineBegin(wayLineBeginDTO);

--
Gitblit v1.9.3