Browse Source

改动

wuyuan
吴远 2 months ago
parent
commit
ec7d7da18f
  1. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java
  2. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java
  3. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
  4. 20
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java
  5. 15
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java
  6. 5
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
  7. 6
      dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceQrtzDTO.java

@ -96,4 +96,6 @@ public class DeviceQrtzDTO {
private String deptName;
private List<Long>deptIds;
private List<Integer> proIds;
}

2
dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java

@ -39,7 +39,7 @@ public class FileController {
public HttpResultResponse<PaginationData<MediaFileDTO>> getFilesList(@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize,
@PathVariable(name = "workspace_id") String workspaceId,
@RequestParam(name = "deviceSns",required = false) List<Integer> proIds) {
@RequestParam(name = "pro_ids",required = false) List<Integer> proIds) {
PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize,proIds);
return HttpResultResponse.success(filesList);
}

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java

@ -28,7 +28,7 @@ public interface IWaylineJobService {
* @param endTime The time the job ended.
* @return
*/
Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime);
Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime, Integer proId);
/**
* Create a sub-task based on the information of the parent task.

20
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java

@ -241,8 +241,14 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl
if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) {
continue;
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime));
Optional<DeviceDTO> deviceOnline = deviceRedisService.getDeviceOnline(param.getDockSn());
if(deviceOnline.isEmpty()){
throw new SQLException("机场信息不存在");
}
if(deviceOnline.get().getProId() == null){
throw new SQLException("项目组不存在");
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime),deviceOnline.get().getProId());
if (waylineJobOpt.isEmpty()) {
throw new SQLException("无法创建路线作业。");
}
@ -273,8 +279,14 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl
if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) {
continue;
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime));
Optional<DeviceDTO> deviceOnline = deviceRedisService.getDeviceOnline(param.getDockSn());
if(deviceOnline.isEmpty()){
throw new SQLException("机场信息不存在");
}
if(deviceOnline.get().getProId() == null){
throw new SQLException("项目组不存在");
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime),deviceOnline.get().getProId());
if (waylineJobOpt.isEmpty()) {
throw new SQLException("无法创建路线作业。");
}

15
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java

@ -3,6 +3,7 @@ package org.dromara.sample.wayline.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.dromara.common.core.constant.DeviceQrtzConstants;
import org.dromara.common.sdk.cloudapi.device.OsdDockDrone;
import org.dromara.common.sdk.cloudapi.wayline.*;
import org.dromara.common.sdk.cloudapi.wayline.api.AbstractWaylineService;
import org.dromara.common.sdk.mqtt.MqttReply;
@ -16,8 +17,10 @@ import org.dromara.sample.common.error.CommonErrorEnum;
import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper;
import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity;
import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity;
import org.dromara.sample.manage.model.enums.UserTypeEnum;
import org.dromara.sample.manage.service.IDeviceFlightRecordsService;
import org.dromara.sample.manage.service.IDeviceRedisService;
import org.dromara.sample.media.model.MediaFileCountDTO;
import org.dromara.sample.media.service.IMediaRedisService;
@ -71,6 +74,9 @@ public class SDKWaylineService extends AbstractWaylineService {
@Autowired
private IWebSocketMessageService webSocketMessageService;
@Autowired
private IDeviceFlightRecordsService deviceFlightRecordsService;
@Override
public TopicEventsResponse<MqttReply> deviceExitHomingNotify(TopicEventsRequest<DeviceExitHomingNotify> request, MessageHeaders headers) {
return super.deviceExitHomingNotify(request, headers);
@ -105,7 +111,14 @@ public class SDKWaylineService extends AbstractWaylineService {
.completedTime(LocalDateTime.now())
.mediaCount(output.getExt().getMediaCount())
.build();
Optional<OsdDockDrone> deviceOsd = deviceRedisService.getDeviceOsd(deviceOpt.get().getChildDeviceSn(), OsdDockDrone.class);
Integer totalFlightSorties = deviceOsd.get().getTotalFlightSorties();
Float totalFlightTime = deviceOsd.get().getTotalFlightTime();
DeviceFlightRecordsEntity deviceFlightRecords = new DeviceFlightRecordsEntity();
deviceFlightRecords.setDeviceSn(response.getGateway());
deviceFlightRecords.setFlyCount(totalFlightSorties);
deviceFlightRecords.setFlyAccTime(totalFlightTime.intValue());
deviceFlightRecordsService.saveDeviceFlight(deviceFlightRecords);
// record the update of the media count.
if (Objects.nonNull(job.getMediaCount()) && job.getMediaCount() != 0) {
mediaRedisService.setMediaCount(response.getGateway(), job.getJobId(),

5
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

@ -13,6 +13,7 @@ import org.dromara.common.sdk.cloudapi.device.OsdDockDrone;
import org.dromara.common.sdk.cloudapi.wayline.*;
import org.dromara.common.sdk.common.Pagination;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.common.sdk.exception.CloudSDKException;
import org.dromara.sample.component.mqtt.model.EventsReceiver;
import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.service.IDeviceRedisService;
@ -36,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.sql.SQLException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
@ -82,7 +84,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
}
@Override
public Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime) {
public Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime,Integer proId) {
if (Objects.isNull(param)) {
return Optional.empty();
}
@ -104,6 +106,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.rthAltitude(param.getRthAltitude())
.mediaCount(0)
.breakPoint(param.getBreakPoint())
.proId(proId)
.build();
return insertWaylineJob(jobEntity);

6
dk-modules/sample/src/main/resources/mapper/DeviceQrtzMapper.xml

@ -43,6 +43,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</if>
<if test="condition.proIds.size > 0">
AND wd.pro_id in
<foreach item="proId" collection="condition.proIds" open="(" separator="," close=")">
#{proId}
</foreach>
</if>
order by wdq.status asc, wdq.create_time desc
</select>
<select id="calendarList" resultType="java.util.Map"></select>

Loading…
Cancel
Save