Xiajijian
2026-02-03 6ffcb1a19bd759b664e565349a7132a2b17fbf72
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.*;
@@ -140,10 +138,8 @@
     */
    @Override
    public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
        if ("3".equals(ardRouteInfo.getType())) {
            checkRouteMissionStatus(ardRouteInfo,"1");
            checkRouteMissionStatus(ardRouteInfo,"2");
        }
        checkRouteMissionStatus(ardRouteInfo,"1");
        checkRouteMissionStatus(ardRouteInfo,"2");
        ardRouteInfo.setId(IdUtils.simpleUUID());
        ardRouteInfo.setCreateTime(DateUtils.getNowDate());
        ardRouteInfo.setUpdateTime(DateUtils.getNowDate()); // 修改时间,用于排序
@@ -173,16 +169,14 @@
                    validateForCreate(mission);
                    break;
                case "2":
                    bindRoute(mission, ardRouteInfo);
                    bindRoute(mission,ardRouteInfo);
                    break;
                case "3":
                    executeMission(mission);
                    executeMission(mission,ardRouteInfo);
                    break;
                default:
                    throw new RuntimeException("不支持的操作类型!!!");
            }
        }else {
            throw new RuntimeException("航线任务不存在!!!");
        }
    }
@@ -193,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);
@@ -478,12 +473,12 @@
    @Override
    public Boolean routeBegins(String id,String boxSn) {
        ArdRouteInfo route = ardRouteInfoMapper.selectArdRouteInfoById(id);
        // 判断是否循环航线
        if (null != route && "0".equals(route.getIsLoop())){
            deleteArdRouteInfoById(id);
            if ("3".equals(route.getType())) {
                checkRouteMissionStatus(route,"3");
        if (null != route){
            // 判断是否循环航线
            if ("0".equals(route.getIsLoop())){
                deleteArdRouteInfoById(id);
            }
            checkRouteMissionStatus(route,"3");
        }
        WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);
        tyService.wayLineBegin(wayLineBeginDTO);