zhaowenyu
2026-02-10 8fe9faddf234f7087a516d7e1e068b558289e605
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -5,6 +5,7 @@
import com.ard.common.exception.ControlException;
import com.ard.common.utils.DateUtils;
import com.ard.common.utils.SecurityUtils;
import com.ard.common.utils.file.FileUtils;
import com.ard.common.utils.uuid.IdUtils;
import com.ard.data.noflyzone.domain.ArdNoFlyZone;
@@ -36,10 +37,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import static com.ard.common.utils.SecurityUtils.getUsername;
import static com.ard.common.utils.SecurityUtils.getUserId;
import static com.ard.route.enums.kml.DroneEnumValueEnums.M350_RTK;
import static com.ard.route.util.InitializationUtils.divided_23;
import static com.ard.route.util.ToolUtils.*;
@@ -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,17 +189,18 @@
    }
    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.setExecuteName(SecurityUtils.getUsername());
            mission.setExecuteTime(DateUtils.getNowDate());
            mission.setUpdateTime(DateUtils.getNowDate());
            ardRouteMissionMapper.updateArdRouteMission(mission);
@@ -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);