zhaowenyu
2026-02-04 fc7ee73b5f804116ada59048fdf6fb9265856a3f
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,7 @@
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.route.enums.kml.DroneEnumValueEnums.M350_RTK;
import static com.ard.route.util.InitializationUtils.divided_23;
import static com.ard.route.util.ToolUtils.*;
@@ -165,6 +163,7 @@
     */
    private void checkRouteMissionStatus(ArdRouteInfo ardRouteInfo,String type){
        ArdRouteMission mission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
        if (mission != null){
        switch(type){
            case "1":
                validateForCreate(mission);
@@ -173,10 +172,11 @@
                bindRoute(mission, ardRouteInfo);
                break;
            case "3":
                executeMission(mission);
                    executeMission(mission,ardRouteInfo);
                break;
            default:
                throw new RuntimeException("不支持的操作类型!!!");
            }
        }
    }
@@ -187,17 +187,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.setExecuteBy(SecurityUtils.getUsername());
            mission.setExecuteTime(DateUtils.getNowDate());
            mission.setUpdateTime(DateUtils.getNowDate());
            ardRouteMissionMapper.updateArdRouteMission(mission);
@@ -472,9 +473,11 @@
    @Override
    public Boolean routeBegins(String id,String boxSn) {
        ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(id);
        if (null != route){
        // 判断是否循环航线
        if (null != route && "0".equals(route.getIsLoop())){
            if ("0".equals(route.getIsLoop())){
            deleteArdRouteInfoById(id);
            }
            checkRouteMissionStatus(route,"3");
        }
        WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);