diff --git a/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java b/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java index de503cf..40a17cb 100644 --- a/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java +++ b/src/main/java/com/ruoyi/device/controller/AircraftFlyController.java @@ -1,5 +1,6 @@ package com.ruoyi.device.controller; +import com.alibaba.fastjson.JSON; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.device.api.domain.*; @@ -248,7 +249,7 @@ public class AircraftFlyController extends BaseController { // Long taskId = flightService.createClickTakeOffTask(request.getSn(),airlineFileUrl); - log.info("一键起飞,生成一键起飞任务 sn={} ", request.getSn()); + log.info("一键起飞,生成一键起飞任务 {} ", JSON.toJSONString(request)); try { java.util.Map params = new java.util.HashMap<>(); params.put("airlineFileUrl", airlineFileUrl); @@ -258,18 +259,18 @@ public class AircraftFlyController extends BaseController CommandResult result = future.get(); if (result.isSuccess()) { - log.info("无人机起飞成功: sn={}", request.getSn()); + log.info("无人机起飞命令发送成功: sn={}", request.getSn()); flightService.updateFlightStatus(request.getTaskId(), StatusEnum.CHECKING); - return R.ok("起飞命令执行成功"); + return R.ok("无人机起飞命令发送成功"); } else { - log.error("无人机起飞失败: sn={}, reason={}", request.getSn(), result.getErrorMessage()); + log.error("无人机起飞命令发送失败: sn={}, reason={}", request.getSn(), result.getErrorMessage()); flightService.updateFlightStatus(request.getTaskId(), StatusEnum.FAILED); - return R.fail("起飞命令执行失败: " + result.getErrorMessage()); + return R.fail("无人机起飞命令发送失败: " + result.getErrorMessage()); } } catch (Exception e) { - log.error("无人机起飞异常: sn={}", request.getSn(), e); + log.error("无人机起飞命令发送失败: sn={}", request.getSn(), e); flightService.updateFlightStatus(request.getTaskId(), StatusEnum.FAILED); - return R.fail("起飞命令执行异常: " + e.getMessage()); + return R.fail("无人机起飞命令发送失败: " + e.getMessage()); } } diff --git a/src/main/java/com/ruoyi/device/service/impl/FlightServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/FlightServiceImpl.java index c18b03b..031cf69 100644 --- a/src/main/java/com/ruoyi/device/service/impl/FlightServiceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/FlightServiceImpl.java @@ -116,38 +116,38 @@ public class FlightServiceImpl implements FlightService public void updateFlightStatus(Long flightId,StatusEnum status) { remoteTaskService.updateTaskStatus(flightId,status,SecurityConstants.INNER); -// flightMapper.updateFlightStatus(flightId, status); -// log.info("更新飞行状态: flightId={}, status={}", flightId, status); -// -// if ("HOME".equals(status) ||"ERROR".equals(status)) { -// flightMapper.updateReturnTime(flightId); -// log.info("更新返航时间: flightId={}", flightId); -// } + } -// @Override -// public void updateReturnTime(Long flightId) { -// flightMapper.updateReturnTime(flightId); -// } + @Override public Map getLatestFlightWithLogs(String deviceSn) { - FlightEntity flight = flightMapper.selectLatestFlightByDeviceSn(deviceSn); - if (flight == null) { - return null; - } + + R taskVo = remoteTaskService.getCurrentTaskByUavId(deviceSn,SecurityConstants.INNER); Map result = new HashMap<>(); - result.put("flightId", flight.getFlightId()); - result.put("deviceSn", flight.getDeviceSn()); - result.put("flightIdExternal", flight.getFlightIdExternal()); - result.put("status", flight.getStatus()); - result.put("returnTime", flight.getReturnTime()); - result.put("createTime", flight.getCreateTime()); + if(taskVo.getData()!=null){ + TaskVO task = taskVo.getData(); - List preCheckLogs = preCheckLogMapper.selectPreCheckLogListByFlightId(flight.getFlightId()); + + result.put("flightId", task.getId()); + result.put("deviceSn", deviceSn); + result.put("status", task.getStatus()); + result.put("returnTime", task.getActualEndTime()); + result.put("createTime", task.getActualStartTime()); + + List preCheckLogs = preCheckLogMapper.selectPreCheckLogListByFlightId(task.getId()); List> preCheckLogsWithExecTime = new ArrayList<>(); - Date prevTime = flight.getCreateTime(); + + Long execTime = null; + if (!preCheckLogs.isEmpty() && preCheckLogs.size() > 1) { + Date firstTime = preCheckLogs.get(0).getCreateTime(); + Date lastTime = preCheckLogs.get(preCheckLogs.size() - 1).getCreateTime(); + if (firstTime != null && lastTime != null) { + execTime = lastTime.getTime() - firstTime.getTime(); + } + } for (PreCheckLogEntity log : preCheckLogs) { Map logMap = new HashMap<>(); @@ -157,19 +157,16 @@ public class FlightServiceImpl implements FlightService logMap.put("success", log.getSuccess()); logMap.put("createTime", log.getCreateTime()); logMap.put("updateTime", log.getUpdateTime()); - - if (log.getCreateTime() != null && prevTime != null) { - logMap.put("execTime", log.getCreateTime().getTime() - prevTime.getTime()); - prevTime = log.getCreateTime(); - } - preCheckLogsWithExecTime.add(logMap); } + result.put("execTime", execTime); result.put("preCheckLogs", preCheckLogsWithExecTime); - List flightLogs = flightLogMapper.selectFlightLogListByFlightId(flight.getFlightId()); + List flightLogs = flightLogMapper.selectFlightLogListByFlightId(task.getId()); result.put("flightLogs", flightLogs); + } + return result; }