From 71f1ecb26bc9f8f92be176bb03052212beff221a Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Wed, 28 Jan 2026 15:09:44 +0800
Subject: [PATCH] 1. 航线任务测试时所需优化项,增加业务逻辑判断。

---
 ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java |   39 ++++++++++++++++++++++-----------------
 1 files changed, 22 insertions(+), 17 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..6fb58d9 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
@@ -165,18 +165,20 @@
      */
     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,ardRouteInfo);
+                    break;
+                default:
+                    throw new RuntimeException("不支持的操作类型!!!");
+            }
         }
     }
 
@@ -187,15 +189,16 @@
     }
 
     private void bindRoute(ArdRouteMission mission, ArdRouteInfo routeInfo) {
-        if (!"0".equals(mission.getRouteId())) {
+        if (mission.getRouteId() != null) {
             throw new RuntimeException("航线任务下已绑定航线,不可创建新航线信息!!!");
         }
         mission.setRouteId(routeInfo.getId());
         ardRouteMissionMapper.updateArdRouteMission(mission);
     }
 
-    private void executeMission(ArdRouteMission mission) {
+    private void executeMission(ArdRouteMission mission,ArdRouteInfo ardRouteInfo) {
         if ("0".equals(mission.getExecuteStatus())) {
+            mission.setRouteId(ardRouteInfo.getId());
             mission.setExecuteStatus("1");
             mission.setExecuteBy(getUsername());
             mission.setExecuteTime(DateUtils.getNowDate());
@@ -472,9 +475,11 @@
     @Override
     public Boolean routeBegins(String id,String boxSn) {
         ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(id);
-        // 判断是否循环航线
-        if (null != route && "0".equals(route.getIsLoop())){
-            deleteArdRouteInfoById(id);
+        if (null != route){
+            // 判断是否循环航线
+            if ("0".equals(route.getIsLoop())){
+                deleteArdRouteInfoById(id);
+            }
             checkRouteMissionStatus(route,"3");
         }
         WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);

--
Gitblit v1.9.3