diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java index 7e78d0b..fc7531e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/control/service/impl/ControlServiceImpl.java @@ -1,6 +1,11 @@ package org.dromara.sample.control.service.impl; +import cn.hutool.core.date.DateUtil; +import org.dromara.common.sdk.cloudapi.wayline.OutOfControlActionEnum; +import org.dromara.common.sdk.cloudapi.wayline.TaskTypeEnum; +import org.dromara.common.sdk.cloudapi.wayline.WaylineJobTypeEnum; +import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum; import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.service.IDevicePayloadService; import org.dromara.sample.manage.service.IDeviceRedisService; @@ -26,10 +31,15 @@ import org.dromara.sample.control.model.enums.DroneAuthorityEnum; import org.dromara.sample.control.model.enums.RemoteDebugMethodEnum; import org.dromara.sample.control.model.param.*; import org.dromara.sample.control.service.IControlService; +import org.dromara.sample.wayline.mapper.IWaylineJobMapper; +import org.dromara.sample.wayline.model.entity.WaylineJobEntity; +import org.dromara.sample.wayline.model.enums.WaylineJobStatusEnum; +import org.dromara.sample.wayline.service.IWaylineJobService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -69,6 +79,10 @@ public class ControlServiceImpl implements IControlService { @Qualifier("SDKWaylineService") private AbstractWaylineService abstractWaylineService; + + @Autowired + private IWaylineJobMapper waylineJobMapper; + private RemoteDebugHandler checkDebugCondition(String sn, RemoteDebugParam param, RemoteDebugMethodEnum controlMethodEnum) { RemoteDebugHandler handler = Objects.nonNull(controlMethodEnum.getClazz()) ? mapper.convertValue(Objects.nonNull(param) ? param : new Object(), controlMethodEnum.getClazz()) @@ -164,16 +178,37 @@ public class ControlServiceImpl implements IControlService { @Override public HttpResultResponse takeoffToPoint(String sn, TakeoffToPointParam param) { checkTakeoffCondition(sn); - + Optional dockOpt = deviceRedisService.getDeviceOnline(sn); param.setFlightId(UUID.randomUUID().toString()); + WaylineJobEntity waylineJobEntity = new WaylineJobEntity(); + waylineJobEntity.setJobId(param.getFlightId()); + waylineJobEntity.setName(dockOpt.get().getNickname()+ DateUtil.date(System.currentTimeMillis())); + waylineJobEntity.setWaylineName(dockOpt.get().getNickname()+ DateUtil.date(System.currentTimeMillis())); + waylineJobEntity.setDockSn(sn); + waylineJobEntity.setWorkspaceId(dockOpt.get().getWorkspaceId()); + waylineJobEntity.setTaskType(TaskTypeEnum.IMMEDIATE.getType()); + waylineJobEntity.setWaylineType(WaylineTypeEnum.WAYPOINT.getValue()); + waylineJobEntity.setUsername("admin"); + waylineJobEntity.setExecuteTime(new Date()); + waylineJobEntity.setBeginTime(new Date()); + waylineJobEntity.setStatus(WaylineJobStatusEnum.PENDING.getVal()); + waylineJobEntity.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME.getAction()); + waylineJobEntity.setRthAltitude(Integer.parseInt(param.getRthAltitude().toString())); + waylineJobEntity.setMediaCount(0); + waylineJobEntity.setJobType(WaylineJobTypeEnum.PEOPLE_TASK.getType()); TopicServicesResponse response = abstractControlService.takeoffToPoint( SDKManager.getDeviceSDK(sn), mapper.convertValue(param, TakeoffToPointRequest.class)); ServicesReplyData reply = response.getData(); + if (reply.getResult().isSuccess()) { + waylineJobEntity.setCreateTime(new Date()); + waylineJobMapper.insert(waylineJobEntity); + } return reply.getResult().isSuccess() ? HttpResultResponse.success() : HttpResultResponse.error("无人机未能起飞。" + reply.getResult()); } + @Override public HttpResultResponse seizeAuthority(String sn, DroneAuthorityEnum authority, DronePayloadParam param) { TopicServicesResponse response; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java b/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java index 64981f9..077dd49 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/rocketmq/RocketMqConsum.java @@ -57,7 +57,6 @@ public class RocketMqConsum implements RocketMQListener { @Override public void onMessage(MessageExt message) { - String tags = message.getTags(); String videoIds = new String(message.getBody()); VideoId videoId = new VideoId(videoIds); LiveTypeDTO liveTypeDTO = new LiveTypeDTO(); @@ -65,33 +64,20 @@ public class RocketMqConsum implements RocketMQListener { liveTypeDTO.setVideoType(LensChangeVideoTypeEnum.WIDE); liveTypeDTO.setVideoQuality(VideoQualityEnum.ULTRA_HD); liveTypeDTO.setVideoId(videoId); - /*DeviceEntity deviceBySn = deviceService.getDeviceByChildSn(videoId.getDroneSn()); + DeviceEntity deviceBySn = deviceService.getDeviceByChildSn(videoId.getDroneSn()); Optional> runningWaylineJob = waylineRedisService.getRunningWaylineJob(deviceBySn.getDeviceSn()); + Map reqMap = new HashMap<>(); if(runningWaylineJob.isPresent()) { String jobId = runningWaylineJob.get().getOutput().getExt().getFlightId(); Optional waylineJobDTO = waylineJobService.getJobByJobInternalId(jobId); - }*/ - - if(tags.equals("videoStart")){ - HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO); - /*if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ - Map reqMap = new HashMap<>(); - reqMap.put("deviceSn:",videoId.getDroneSn()); - reqMap.put("jobId",waylineJobDTO.get().getJobId()); - reqMap.put("jobName",waylineJobDTO.get().getJobName()); - playTextService.streamType(reqMap); - }*/ - - }else if(tags.equals("videoStopStart")){ - liveStreamService.liveStop(videoId); - HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO); - /*if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ - Map reqMap = new HashMap<>(); - reqMap.put("deviceSn:",videoId.getDroneSn()); - reqMap.put("jobId",waylineJobDTO.get().getJobId()); - reqMap.put("jobName",waylineJobDTO.get().getJobName()); - playTextService.streamType(reqMap); - }*/ + reqMap.put("jobId",waylineJobDTO.get().getJobId()); + reqMap.put("jobName",waylineJobDTO.get().getJobName()); + } + liveStreamService.liveStop(videoId); + HttpResultResponse httpResultResponse = liveStreamService.liveStart(liveTypeDTO); + if (httpResultResponse.getCode() == 0 || httpResultResponse.getCode() == 513012 || httpResultResponse.getCode() == 513003){ + reqMap.put("deviceSn:",videoId.getDroneSn()); + playTextService.streamType(reqMap); } deviceRedisService.setDeviceVideo(videoId.getDroneSn(),videoId); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java index 315eb97..2ee1053 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java @@ -90,7 +90,7 @@ public class WaylineJobEntity implements Serializable { private String parentId; @TableField("job_type") - private WaylineJobTypeEnum waylineJobTypeEnum; + private Integer jobType; @TableField(exist = false) private ProgressExtBreakPoint breakPoint; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java index 7774ea1..b50245c 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java @@ -103,6 +103,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService { .rthAltitude(param.getRthAltitude()) .mediaCount(0) .breakPoint(param.getBreakPoint()) + .jobType(param.getJobType().getType()) .build(); return insertWaylineJob(jobEntity);