| | |
| | | |
| | | UavFlightStateDTO dto = new UavFlightStateDTO( |
| | | uavState, |
| | | telemetryData |
| | | telemetryData, |
| | | System.currentTimeMillis() |
| | | ); |
| | | |
| | | addTelemetryData(dto); |
| | | }); |
| | | } |
| | |
| | | .count(dataList.size()) |
| | | .dataPart(blobData) |
| | | .build(); |
| | | part.setCreateTime(new Date()); |
| | | // 使用 list 中第一条数据的时间作为 createTime |
| | | long firstTimeMillis = dataList.get(0).getTimestamp(); |
| | | Date createTime = new Date(firstTimeMillis); |
| | | part.setCreateTime(createTime); |
| | | ardflightTaskPartMapper.insert(part); |
| | | |
| | | log.info("设备 {} 分片保存 {} 条飞行数据到数据库成功", boxSn, dataList.size()); |
| | |
| | | * 获取完整航线轨迹(合并所有分片) |
| | | */ |
| | | @Override |
| | | public List<TelemetryData> getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart) { |
| | | List<TelemetryData> allData = new ArrayList<>(); |
| | | public List<UavFlightStateDTO> getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart) { |
| | | List<UavFlightStateDTO> allData = new ArrayList<>(); |
| | | String boxSn = ardFlightTaskPart.getBoxSn(); |
| | | List<ArdFlightTaskPart> parts = ardflightTaskPartMapper.selectByTaskStartTime(ardFlightTaskPart); |
| | | for (ArdFlightTaskPart part : parts) { |
| | | try { |
| | | List<TelemetryData> partData = SerializeUtil.deserialize(part.getDataPart()); |
| | | List<UavFlightStateDTO> partData = SerializeUtil.deserialize(part.getDataPart()); |
| | | allData.addAll(partData); |
| | | } catch (Exception e) { |
| | | log.error("反序列化 boxSn={} 分片数据失败", boxSn, e); |