| | |
| | | */ |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void syncAllFlightHistory() { |
| | | List<String> serverIds = ardServerInfoService.getServerIdsList(); |
| | | for (String serverId : serverIds) { |
| | | // 获取上次同步的时间(即数据库中最大 startTime) |
| | | Date lastSyncTime = getLastSyncTimeForServer(serverId); |
| | | // 根据上次同步时间同步飞行历史 |
| | | syncFlightHistory(serverId, lastSyncTime); |
| | | try { |
| | | List<String> serverIds = ardServerInfoService.getServerIdsList(); |
| | | for (String serverId : serverIds) { |
| | | // 获取上次同步的时间(即数据库中最大 startTime) |
| | | Date lastSyncTime = getLastSyncTimeForServer(serverId); |
| | | // 根据上次同步时间同步飞行历史 |
| | | syncFlightHistory(serverId, lastSyncTime); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("同步飞行历史失败", e); |
| | | } |
| | | } |
| | | |
| | |
| | | // 创建查询条件 BoxHistoryDTO,并设置 startTime 作为过滤条件 |
| | | BoxHistoryDTO boxHistoryDTO = BoxHistoryDTO.builder() |
| | | .pageIndex(1) |
| | | .pageSize(100) |
| | | .pageSize(20) |
| | | .startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTime)) |
| | | .build(); |
| | | |
| | |
| | | ArdFlightTask ardFlightTask = ardFlightTaskMapper.getArdFlightTaskById(boxHistoryReceiver.getTaskId()); |
| | | if (ardFlightTask == null) { |
| | | // 如果不存在,则插入新记录 |
| | | log.debug("insert task {}", boxHistoryReceiver.getTaskId()); |
| | | log.info("insert task {}", boxHistoryReceiver.getTaskId()); |
| | | Date endTime = null; |
| | | if (boxHistoryReceiver.getEndTime() != null) { |
| | | endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, boxHistoryReceiver.getEndTime()); |
| | |
| | | |
| | | Long flyUserId = uavControlService.getCurrentController(flightTask.getBoxSn(), "fly"); |
| | | if (flyUserId != null) { |
| | | SysUser flyUser = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + flyUserId); |
| | | SysUser flyUser = redisCache.getCacheMapValue(CacheConstants.SYS_USER, flyUserId.toString()); |
| | | if (flyUser != null && flyUser.getNickName() != null) { |
| | | flightTask.setCreateBy(flyUser.getNickName()); |
| | | } |
| | |
| | | } |
| | | } else { |
| | | // 如果存在,则更新记录 |
| | | log.debug("Updating task {}", boxHistoryReceiver.getTaskId()); |
| | | log.debug("sync task {}", boxHistoryReceiver.getTaskId()); |
| | | updateFlightTask(ardFlightTask, boxHistoryReceiver); |
| | | // 增量更新视频 |
| | | ardMediaService.updateVideoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn()); |
| | | // 增量更新图片 |
| | | ardMediaService.updatePhotoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn()); |
| | | |
| | | // 同步任务图片 |
| | | ardMediaService.syncPicToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn()); |
| | | // 同步任务视频 |
| | | ardMediaService.syncVideoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn()); |
| | | } |
| | | } |
| | | |
| | |
| | | Date newEnd = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, remote.getEndTime()); |
| | | if (local.getEndTime() == null || !local.getEndTime().equals(newEnd)) { |
| | | local.setEndTime(newEnd); |
| | | local.setAveSpeed(remote.getAveSpeed()); |
| | | local.setMaxSpeed(remote.getMaxSpeed()); |
| | | local.setFlightDuration(remote.getFlightDuration()); |
| | | local.setFlightMileage(remote.getFlightMileage()); |
| | | needUpdate = true; |
| | | } |
| | | } |