| | |
| | | package com.dji.sample.manage.model.dto; |
| | | |
| | | import com.dji.sample.wayline.model.entity.WaylineJobEntity; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Builder; |
| | | import lombok.Data; |
| | |
| | | private Integer firmwareProgress; |
| | | |
| | | private String parentSn; |
| | | |
| | | private WaylineJobEntity latestWaylineJob; |
| | | |
| | | } |
| | |
| | | import com.dji.sample.manage.model.param.DeviceQueryParam; |
| | | import com.dji.sample.manage.model.receiver.*; |
| | | import com.dji.sample.manage.service.*; |
| | | import com.dji.sample.wayline.model.entity.WaylineJobEntity; |
| | | import com.dji.sample.wayline.model.param.WaylineJobQueryParam; |
| | | import com.dji.sample.wayline.service.IWaylineJobService; |
| | | import com.fasterxml.jackson.core.type.TypeReference; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | |
| | | |
| | | @Autowired |
| | | private IDeviceRedisService deviceRedisService; |
| | | |
| | | @Autowired |
| | | private IWaylineJobService waylineJobService; |
| | | |
| | | @Autowired |
| | | @Qualifier("gatewayOSDServiceImpl") |
| | |
| | | deviceRedisService.checkDeviceOnline(gateway.getDeviceSn())) |
| | | .forEach(this::spliceDeviceTopo); |
| | | |
| | | devicesList.forEach(deviceDTO -> { |
| | | WaylineJobQueryParam waylineJobQueryParam = new WaylineJobQueryParam(); |
| | | waylineJobQueryParam.setDockSn(deviceDTO.getDeviceSn()); |
| | | WaylineJobEntity latestJob = waylineJobService.getLatestJob(workspaceId, waylineJobQueryParam); |
| | | deviceDTO.setLatestWaylineJob(latestJob); |
| | | }); |
| | | |
| | | return devicesList; |
| | | } |
| | | |
| | |
| | | import com.dji.sample.common.model.ResponseResult; |
| | | import com.dji.sample.log.aspect.SysLogAnnotation; |
| | | import com.dji.sample.wayline.model.dto.WaylineJobDTO; |
| | | import com.dji.sample.wayline.model.entity.WaylineJobEntity; |
| | | import com.dji.sample.wayline.model.param.CreateJobParam; |
| | | import com.dji.sample.wayline.model.param.UpdateJobParam; |
| | | import com.dji.sample.wayline.model.param.WaylineJobQueryParam; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询最新的记录 |
| | | * @return |
| | | */ |
| | | @GetMapping("/{workspace_id}/latestJob") |
| | | public ResponseResult<WaylineJobEntity> getLatestJobs(@PathVariable(name = "workspace_id") String workspaceId,WaylineJobQueryParam waylineJobQueryParam){ |
| | | |
| | | WaylineJobEntity waylineJobEntity = waylineJobService.getLatestJob(workspaceId,waylineJobQueryParam); |
| | | |
| | | return ResponseResult.success(waylineJobEntity); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 发送命令取消作业。 |
| | | * @param jobIds |
| | | * @param workspaceId |
| | |
| | | public interface IWaylineJobMapper extends BaseMapper<WaylineJobEntity> { |
| | | |
| | | Page<WaylineJobEntity> getPage(Page<WaylineJobEntity> waylineJobEntityPage, @Param("queryParam") WaylineJobQueryParam param, @Param("workspaceId") String workspaceId); |
| | | |
| | | WaylineJobEntity getLatest(@Param("workspaceId")String workspaceId,@Param("queryParam") WaylineJobQueryParam waylineJobQueryParam); |
| | | } |
| | |
| | | ORDER BY job.create_time DESC |
| | | |
| | | </select> |
| | | <select id="getLatest" resultType="com.dji.sample.wayline.model.entity.WaylineJobEntity"> |
| | | SELECT job.* FROM wayline_job job |
| | | WHERE job.workspace_id = #{workspaceId} |
| | | <if test="queryParam.dockSn != null and queryParam.dockSn != '' "> |
| | | AND job.dock_sn = #{queryParam.dockSn} |
| | | </if> |
| | | AND job.status = 1 |
| | | AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d') >= DATE(NOW()) |
| | | AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d') <= DATE(NOW()) + INTERVAL 2 DAY |
| | | ORDER BY job.begin_time - NOW() ASC |
| | | LIMIT 1 |
| | | |
| | | |
| | | </select> |
| | | </mapper> |
| | |
| | | * @return |
| | | */ |
| | | WaylineJobStatusEnum getWaylineState(String dockSn); |
| | | |
| | | /** |
| | | * 获取最新的航线任务 |
| | | * @param workspaceId |
| | | * @param waylineJobQueryParam |
| | | * @return |
| | | */ |
| | | WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam); |
| | | } |
| | |
| | | return WaylineJobStatusEnum.UNKNOWN; |
| | | } |
| | | |
| | | @Override |
| | | public WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) { |
| | | // List<WaylineJobEntity> waylineJobEntities = mapper.selectList(new LambdaQueryWrapper<>(WaylineJobEntity.class) |
| | | // .eq(WaylineJobEntity::getWorkspaceId, workspaceId) |
| | | // .eq(WaylineJobEntity::getDockSn, waylineJobQueryParam.getDockSn()) |
| | | // //获取状态为待执行 |
| | | // .eq(WaylineJobEntity::getStatus,1) |
| | | // .orderByDesc(WaylineJobEntity::getBeginTime) |
| | | // ); |
| | | |
| | | WaylineJobEntity waylineJobEntity = mapper.getLatest(workspaceId,waylineJobQueryParam); |
| | | |
| | | |
| | | return waylineJobEntity; |
| | | } |
| | | |
| | | private void pauseJob(String workspaceId, String dockSn, String jobId, WaylineJobStatusEnum statusEnum) { |
| | | if (WaylineJobStatusEnum.PAUSED == statusEnum && jobId.equals(waylineRedisService.getPausedWaylineJobId(dockSn))) { |
| | | waylineRedisService.setPausedWaylineJob(dockSn, jobId); |