吴远 2 months ago
parent
commit
27197f3381
  1. 5
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  2. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java
  3. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java
  4. 4
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java
  5. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileCountDTO.java
  6. 18
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java
  7. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/SDKWaylineService.java

5
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java

@ -44,8 +44,9 @@ public class DeviceController {
*/ */
@GetMapping("/{workspace_id}/devices") @GetMapping("/{workspace_id}/devices")
@Operation(summary = "获取一个工作区中所有在线设备的列表。", description = "获取一个工作区中所有在线设备的列表") @Operation(summary = "获取一个工作区中所有在线设备的列表。", description = "获取一个工作区中所有在线设备的列表")
public HttpResultResponse<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId) { public HttpResultResponse<List<DeviceDTO>> getDevices(@PathVariable("workspace_id") String workspaceId,
List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId); @RequestParam(name = "nickname",required = false) String nickname) {
List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId,nickname);
return HttpResultResponse.success(devicesList); return HttpResultResponse.success(devicesList);
} }

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceQueryParam.java

@ -18,6 +18,8 @@ public class DeviceQueryParam {
private String deviceSn; private String deviceSn;
private String nickname;
private String workspaceId; private String workspaceId;
private Integer deviceType; private Integer deviceType;

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceService.java

@ -66,7 +66,8 @@ public interface IDeviceService {
* @param workspaceId * @param workspaceId
* @return * @return
*/ */
List<DeviceDTO> getDevicesTopoForWeb(String workspaceId); List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname);
/** /**
* Set the remote controller and payloads information of the drone. * Set the remote controller and payloads information of the drone.

4
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java

@ -206,6 +206,8 @@ public class DeviceServiceImpl implements IDeviceService {
DeviceEntity::getSubType, param.getSubType()) DeviceEntity::getSubType, param.getSubType())
.eq(StringUtils.hasText(param.getChildSn()), .eq(StringUtils.hasText(param.getChildSn()),
DeviceEntity::getChildSn, param.getChildSn()) DeviceEntity::getChildSn, param.getChildSn())
.like(StringUtils.hasText(param.getNickname()),
DeviceEntity::getNickname, param.getNickname())
.and(!CollectionUtils.isEmpty(param.getDomains()), wrapper -> { .and(!CollectionUtils.isEmpty(param.getDomains()), wrapper -> {
for (Integer domain : param.getDomains()) { for (Integer domain : param.getDomains()) {
wrapper.eq(DeviceEntity::getDomain, domain).or(); wrapper.eq(DeviceEntity::getDomain, domain).or();
@ -222,7 +224,7 @@ public class DeviceServiceImpl implements IDeviceService {
} }
@Override @Override
public List<DeviceDTO> getDevicesTopoForWeb(String workspaceId) { public List<DeviceDTO> getDevicesTopoForWeb(String workspaceId,String nickname) {
List<DeviceDTO> devicesList = this.getDevicesByParams( List<DeviceDTO> devicesList = this.getDevicesByParams(
DeviceQueryParam.builder() DeviceQueryParam.builder()
.workspaceId(workspaceId) .workspaceId(workspaceId)

2
dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileCountDTO.java

@ -29,4 +29,6 @@ public class MediaFileCountDTO {
private Integer uploadedCount; private Integer uploadedCount;
private String deviceSn; private String deviceSn;
private String fileId;
} }

18
dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java

@ -1,13 +1,17 @@
package org.dromara.sample.media.service.impl; package org.dromara.sample.media.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.media.*; import org.dromara.common.sdk.cloudapi.media.*;
import org.dromara.common.sdk.cloudapi.media.api.AbstractMediaService; import org.dromara.common.sdk.cloudapi.media.api.AbstractMediaService;
import org.dromara.common.sdk.mqtt.MqttReply; import org.dromara.common.sdk.mqtt.MqttReply;
import org.dromara.common.sdk.mqtt.events.TopicEventsRequest; import org.dromara.common.sdk.mqtt.events.TopicEventsRequest;
import org.dromara.common.sdk.mqtt.events.TopicEventsResponse; import org.dromara.common.sdk.mqtt.events.TopicEventsResponse;
import org.dromara.common.websocket.dto.BizCodeEnum; import org.dromara.common.websocket.dto.BizCodeEnum;
import org.dromara.sample.manage.mapper.IDeviceQrtzFileMapper;
import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.entity.DeviceQrtzFileEntity;
import org.dromara.sample.manage.model.enums.UserTypeEnum; import org.dromara.sample.manage.model.enums.UserTypeEnum;
import org.dromara.sample.manage.service.IDeviceRedisService; import org.dromara.sample.manage.service.IDeviceRedisService;
import org.dromara.sample.manage.service.IDeviceService; import org.dromara.sample.manage.service.IDeviceService;
@ -16,6 +20,7 @@ import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.media.service.IFileService; import org.dromara.sample.media.service.IFileService;
import org.dromara.sample.media.service.IMediaRedisService; import org.dromara.sample.media.service.IMediaRedisService;
import org.dromara.sample.media.service.IMediaService; import org.dromara.sample.media.service.IMediaService;
import org.dromara.sample.wayline.mapper.IWaylineFileMapper;
import org.dromara.sample.wayline.model.entity.WaylineFileEntity; import org.dromara.sample.wayline.model.entity.WaylineFileEntity;
import org.dromara.sample.wayline.service.IAiCompareQueueService; import org.dromara.sample.wayline.service.IAiCompareQueueService;
import org.dromara.sample.wayline.service.IWaylineJobService; import org.dromara.sample.wayline.service.IWaylineJobService;
@ -25,6 +30,7 @@ import org.dromara.sample.websocket.service.IWebSocketMessageService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.MessageHeaders;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
@ -64,6 +70,9 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
@Autowired @Autowired
private IWebSocketMessageService webSocketMessageService; private IWebSocketMessageService webSocketMessageService;
@Autowired
private IDeviceQrtzFileMapper deviceQrtzFileMapper;
@Override @Override
public Boolean fastUpload(String workspaceId, String fingerprint) { public Boolean fastUpload(String workspaceId, String fingerprint) {
return fileService.checkExist(workspaceId, fingerprint); return fileService.checkExist(workspaceId, fingerprint);
@ -105,11 +114,18 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(request.getGateway()); Optional<DeviceDTO> deviceOpt = deviceRedisService.getDeviceOnline(request.getGateway());
MediaFileCountDTO mediaFileCount = mediaRedisService.getMediaCount(request.getGateway(), jobId); MediaFileCountDTO mediaFileCount = mediaRedisService.getMediaCount(request.getGateway(), jobId);
List<DeviceQrtzFileEntity> deviceQrtzFileEntities = deviceQrtzFileMapper.selectList(new LambdaQueryWrapper<DeviceQrtzFileEntity>().eq(DeviceQrtzFileEntity::getDeviceSn, request.getGateway()).eq(DeviceQrtzFileEntity::getStatus, DeviceQrtzConstants.QRTZ_FILE_STATUS_2).eq(DeviceQrtzFileEntity::getWaylineId, mediaFileCount.getFileId()));
// duplicate data // duplicate data
if (deviceOpt.isEmpty() if (deviceOpt.isEmpty()
|| (Objects.nonNull(mediaFileCount) && request.getBid().equals(mediaFileCount.getBid()) || (Objects.nonNull(mediaFileCount) && request.getBid().equals(mediaFileCount.getBid())
&& request.getTid().equals(mediaFileCount.getTid()))) { && request.getTid().equals(mediaFileCount.getTid()))) {
//WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); if(CollectionUtils.isEmpty(deviceQrtzFileEntities)){
deviceQrtzFileEntities.stream().forEach(item->{
item.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2);
});
deviceQrtzFileMapper.updateById(deviceQrtzFileEntities,100);
}
return new TopicEventsResponse<MqttReply>().setData(MqttReply.success()); return new TopicEventsResponse<MqttReply>().setData(MqttReply.success());
} }

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

@ -102,7 +102,7 @@ public class SDKWaylineService extends AbstractWaylineService {
if (Objects.nonNull(job.getMediaCount()) && job.getMediaCount() != 0) { if (Objects.nonNull(job.getMediaCount()) && job.getMediaCount() != 0) {
mediaRedisService.setMediaCount(response.getGateway(), job.getJobId(), mediaRedisService.setMediaCount(response.getGateway(), job.getJobId(),
MediaFileCountDTO.builder().deviceSn(deviceOpt.get().getChildDeviceSn()) MediaFileCountDTO.builder().deviceSn(deviceOpt.get().getChildDeviceSn())
.jobId(response.getBid()).mediaCount(job.getMediaCount()).uploadedCount(0).build()); .jobId(response.getBid()).mediaCount(job.getMediaCount()).uploadedCount(0).fileId(job.getFileId()).build());
} }
if (FlighttaskStatusEnum.OK != statusEnum) { if (FlighttaskStatusEnum.OK != statusEnum) {

Loading…
Cancel
Save