Xiajijian
2026-01-22 4b232345e0686343508dc49760c20c03310a4f26
ard-route/src/main/java/com/ard/route/service/impl/ArdRouteInfoServiceImpl.java
@@ -21,8 +21,10 @@
import com.ard.route.domain.djuav.UavRouteReq;
import com.ard.route.domain.dto.ArdNoflyDto;
import com.ard.route.domain.route.ArdRouteInfo;
import com.ard.route.domain.route.ArdRouteMission;
import com.ard.route.domain.vo.KmzResultVo;
import com.ard.route.mapper.ArdRouteInfoMapper;
import com.ard.route.mapper.ArdRouteMissionMapper;
import com.ard.route.service.IArdRouteInfoService;
import com.ard.route.service.UavRouteService;
import com.ard.work.domain.cache.UavTelemetryDataCache;
@@ -39,6 +41,7 @@
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.*;
@@ -61,9 +64,11 @@
    @Autowired
    private OssServiceContext ossService;
    @Autowired
    private UavRouteService routeService;
    @Autowired
    private ArdRouteMissionMapper ardRouteMissionMapper;
    @Resource
    private IArdNoFlyZoneService ardNoFlyZoneService;
@@ -138,6 +143,7 @@
     */
    @Override
    public String insertArdRouteInfo(ArdRouteInfo ardRouteInfo) {
        processRouteMission(ardRouteInfo);
        ardRouteInfo.setId(IdUtils.simpleUUID());
        ardRouteInfo.setCreateTime(DateUtils.getNowDate());
        ardRouteInfo.setUpdateTime(DateUtils.getNowDate()); // 修改时间,用于排序
@@ -151,6 +157,19 @@
        ardRouteInfo.setReadOnly("0");
        ardRouteInfoMapper.insertArdRouteInfo(dataProcessing(ardRouteInfo));
        return kmzResult.getPath();
    }
    // 航线任务数据加工校验
    private void processRouteMission(ArdRouteInfo ardRouteInfo){
        if ("3".equals(ardRouteInfo.getType())) {
            ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(ardRouteInfo.getMissionId());
            if ("0".equals(ardRouteMission.getRouteId())) {
                ardRouteMission.setRouteId(ardRouteInfo.getId());
                ardRouteMissionMapper.updateArdRouteMission(ardRouteMission);
            }else {
                throw new RuntimeException("航线任务下已绑定航线,不可创建新航线信息!!!");
            }
        }
    }
    /**
@@ -424,12 +443,27 @@
        // 判断是否循环航线
        if (null != route && "0".equals(route.getIsLoop())){
            deleteArdRouteInfoById(id);
            updateMissionStatus(route);
        }
        WayLineBeginDTO wayLineBeginDTO = new WayLineBeginDTO(boxSn);
        tyService.wayLineBegin(wayLineBeginDTO);
        return true;
    }
    // 执行航线的时候修改航线任务表执行状态
    private void updateMissionStatus(ArdRouteInfo route){
        if ("3".equals(route.getType())) {
            ArdRouteMission ardRouteMission = ardRouteMissionMapper.selectArdRouteMissionById(route.getMissionId());
            if ("0".equals(ardRouteMission.getExecuteStatus())) {
                ardRouteMission.setExecuteStatus("1");
                ardRouteMission.setExecuteBy(getUsername());
                ardRouteMission.setExecuteTime(DateUtils.getNowDate());
                ardRouteMission.setUpdateTime(DateUtils.getNowDate());
                ardRouteMissionMapper.updateArdRouteMission(ardRouteMission);
            }
        }
    }
    /**
     * 暂停航线
     *