Browse Source

1

pull/1/head
吴远 3 months ago
parent
commit
e20033ff42
  1. 23
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java
  2. 9
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java
  3. 21
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java
  4. 4
      dk-common/common-core/pom.xml
  5. 2
      dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java
  6. 2
      dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DockController.java
  7. 2
      dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java
  8. 4
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  9. 4
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java
  10. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java
  11. 12
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/WorkspaceDTO.java
  12. 13
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/WorkspaceEntity.java
  13. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceHmsQueryParam.java
  14. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IWorkspaceService.java
  15. 14
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java
  16. 19
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java
  17. 32
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/WorkspaceServiceImpl.java
  18. 4
      dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java
  19. 4
      dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java
  20. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java
  21. 2
      dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java
  22. 6
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
  23. 21
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java
  24. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java
  25. 16
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java
  26. 4
      pom.xml

23
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java

@ -16,13 +16,13 @@ import java.util.List;
* @version 1.7
* @date 2023/6/8
*/
@Schema(description = "Query parameter to get list of wayline files")
@Schema(description = "查询参数以获取航路文件列表")
public class GetWaylineListRequest {
/**
* Is the wayline file favorited?
*/
@Parameter(name = "favorited", description = "Is the wayline file favorited?")
@Parameter(name = "favorited", description = "路线文件是否已加为收藏?")
private Boolean favorited;
/**
@ -31,7 +31,7 @@ public class GetWaylineListRequest {
*/
@NotNull
@JsonProperty("order_by")
@Parameter(name = "order_by", description = "sort field name", example = "update_time desc",
@Parameter(name = "order_by", description = "排序字段名称", example = "update_time desc",
schema = @Schema(allowableValues = {"name desc", "name asc", "update_time desc", "update_time asc", "create_time desc", "create_time asc"}))
@Valid
private GetWaylineListOrderBy orderBy;
@ -40,15 +40,16 @@ public class GetWaylineListRequest {
* current page
*/
@Min(1)
@Parameter(name = "page", description = "current page", schema = @Schema(defaultValue = "1", type = "int"))
@Parameter(name = "pageNum", description = "page", schema = @Schema(defaultValue = "1", type = "int"))
@JsonProperty("pageNum")
private int page = 1;
/**
* page size
*/
@Min(1)
@JsonProperty("page_size")
@Parameter(name = "page_size", description = "page size", schema = @Schema(defaultValue = "10", type = "int"))
@JsonProperty("pageSize")
@Parameter(name = "pageSize", description = "pageSize", schema = @Schema(defaultValue = "10", type = "int"))
private int pageSize = 10;
/**
@ -56,35 +57,35 @@ public class GetWaylineListRequest {
*/
@Size(min = 1)
@JsonProperty("template_type")
@Parameter(name = "template_type", description = "wayline template type collection", example = "[0]")
@Parameter(name = "template_type", description = "wayline 模板类型集合", example = "[0]")
private List<WaylineTypeEnum> templateType;
/**
* 1: Enable AI Spot-Check wayline. Without this field means all waylines.
*/
@JsonProperty("action_type")
@Parameter(name = "action_type", description = "wayline template type collection", example = "1")
@Parameter(name = "action_type", description = "启用Al Spot-Check wayline。如果没有此字段,则表示所有waylines。", example = "1")
private ActionTypeEnum actionType;
/**
* Selected aircraft models
*/
@JsonProperty("drone_model_keys")
@Schema(name = "drone_model_keys", description = "drone device product enum", example = "[\"0-67-0\"]")
@Schema(name = "drone_model_keys", description = "无人机设备产品枚举", example = "[\"0-67-0\"]")
private List<DeviceEnum> droneModelKeys;
/**
* Selected payload models
*/
@JsonProperty("payload_model_key")
@Schema(name = "payload_model_key", description = "payload device product enum", example = "[\"1-53-0\"]")
@Schema(name = "payload_model_key", description = "有效负载设备产品枚举", example = "[\"1-53-0\"]")
private List<DeviceEnum> payloadModelKey;
/**
* Filter by wayline name
*/
@JsonProperty("key")
@Schema(name = "key", description = "wayline file name", example = "waypoint")
@Schema(name = "key", description = "wayline 文件名", example = "waypoint")
private String key;
public GetWaylineListRequest() {

9
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java

@ -16,10 +16,19 @@ import java.util.Arrays;
description = "<p>0: waypoint<p/><p>1: mapping2d<p/><p>2: mapping3d<p/><p>3: mappingStrip</p>")
public enum WaylineTypeEnum {
/**
* 航点
*/
WAYPOINT(0, "waypoint"),
/**
* 二维
*/
MAPPING_2D(1, "mapping2d"),
/**
* 三维
*/
MAPPING_3D(2, "mapping3d"),
MAPPING_STRIP(3, "mappingStrip");

21
dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java

@ -25,7 +25,7 @@ import java.util.List;
* @version 0.3
* @date 2021/12/22
*/
@Tag(name = "wayline interface")
@Tag(name = "航线接口")
public interface IHttpWaylineService {
String PREFIX = "wayline/api/v1";
@ -40,8 +40,11 @@ public interface IHttpWaylineService {
* @param rsp
* @return wayline list
*/
@Operation(summary = "获取航线路线列表", description = "根据查询条件査询路线文件的基本数据。飞行员中的查询条件字段是固定的。")
@GetMapping(PREFIX + "/workspaces/waylines")
@Operation(summary = "获取航线路线列表", description = "根据查询条件査询路线文件的基本数据。飞行员中的查询条件字段是固定的。",
parameters = {
@Parameter(name = "workspace_id", description = "workspace_id", schema = @Schema(format = "uuid"))
})
@GetMapping(PREFIX + "/workspaces/{workspace_id}/waylines")
HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList(
@Valid @ParameterObject GetWaylineListRequest request,
@PathVariable(name = "workspace_id") String workspaceId,
@ -59,8 +62,8 @@ public interface IHttpWaylineService {
})
@GetMapping(PREFIX + "/workspaces/{workspace_id}/waylines/{wayline_id}/url")
void getWaylineFileDownloadAddress(
@PathVariable(name = "wayline_id") String waylineId,
@PathVariable(name = "workspace_id") String workspaceId,
@PathVariable(name = "wayline_id") String waylineId,
HttpServletRequest req, HttpServletResponse rsp);
/**
@ -91,8 +94,8 @@ public interface IHttpWaylineService {
* @param rsp
* @return success
*/
@Operation(summary = "file upload result report", description = "When the wayline file is uploaded to the " +
"storage server by pilot, the basic information of the file is reported through this interface.")
@Operation(summary = "文件上传结果", description = "将Wayline文件上传到存储服务器时,文件的基本" +
"信息将通过此接口")
@PostMapping(PREFIX + "/workspaces/{workspace_id}/upload-callback")
HttpResultResponse fileUploadResultReport(
@PathVariable(name = "workspace_id") String workspaceId,
@ -106,9 +109,9 @@ public interface IHttpWaylineService {
* @param rsp
* @return success
*/
@Operation(summary = "batch favorites wayline", description = "Favorite the wayline file according to the wayline file id.",
@Operation(summary = "批量收藏方式线", description = "根据方式线文件ID收藏方式线文件。",
parameters = {
@Parameter(name = "id", description = "wayline id", required = true)
@Parameter(name = "id", description = "wayline_id", required = true)
})
@PostMapping(PREFIX + "/workspaces/{workspace_id}/favorites")
HttpResultResponse batchFavoritesWayline(
@ -123,7 +126,7 @@ public interface IHttpWaylineService {
* @param rsp
* @return success
*/
@Operation(summary = "batch unfavorites wayline", description = "Delete the favorites of this wayline file based on the wayline file id.",
@Operation(summary = "批量取消关注方式线", description = "根据方式线文件ID删除此方式线文件的关注。",
parameters = {
@Parameter(name = "id", description = "wayline id", required = true)
})

4
dk-common/common-core/pom.xml

@ -99,6 +99,10 @@
<artifactId>ip2region</artifactId>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
</dependency>
</dependencies>
</project>

2
dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java

@ -59,7 +59,7 @@ public class GlobalScheduleService {
}
});
log.info("Subscriptions: {}", Arrays.toString(topicService.getSubscribedTopic()));
//log.info("Subscriptions: {}", Arrays.toString(topicService.getSubscribedTopic()));
}
}

2
dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DockController.java

@ -1,5 +1,6 @@
package org.dromara.sample.control.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.sdk.common.HttpResultResponse;
@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@Slf4j
@RequestMapping("${url.control.prefix}${url.control.version}/devices")
@Tag(name = "机场飞行指令模块")
public class DockController {
@Autowired

2
dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java

@ -1,5 +1,6 @@
package org.dromara.sample.control.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.sample.control.model.dto.JwtAclDTO;
import org.dromara.sample.control.model.param.DrcConnectParam;
@ -24,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
@RestController
@Slf4j
@RequestMapping("${url.control.prefix}${url.control.version}")
@Tag(name = "drc模块")
public class DrcController {
@Autowired

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

@ -89,8 +89,8 @@ public class DeviceController {
@GetMapping("/{workspace_id}/devices/bound")
public HttpResultResponse<PaginationData<DeviceDTO>> getBoundDevicesWithDomain(
@PathVariable("workspace_id") String workspaceId,Integer domain,
@RequestParam(defaultValue = "1") Long page,
@RequestParam(value = "page_size", defaultValue = "50") Long pageSize) {
@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize) {
LoginUser loginUser = LoginHelper.getLoginUser();
PaginationData<DeviceDTO> devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain);

4
dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java

@ -19,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
import java.util.UUID;
/**
@ -57,12 +58,11 @@ public class WorkspaceController extends BaseController {
* @return
*/
@PostMapping("/add")
@SaCheckPermission("work:spaces:add")
@Operation(summary = "新增工作区。", description = "新增工作区主要是组织号",
parameters = {
@Parameter(name = "workspaceDTO", description = "workspaceDTO"),
})
public HttpResultResponse addCurrentWorkspace(HttpServletRequest request, @Validated @RequestBody WorkspaceDTO workspaceDTO) {
return workspaceService.insertCurrentWorkspace(workspaceDTO) > 0 ? HttpResultResponse.success() : HttpResultResponse.error();
return workspaceService.insertCurrentWorkspace(workspaceDTO);
}
}

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

@ -99,4 +99,6 @@ public class DeviceDTO {
*/
@Schema(description = "租户ID")
private String tenantId;
private String videoId;
}

12
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/WorkspaceDTO.java

@ -2,10 +2,7 @@ package org.dromara.sample.manage.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.*;
/**
* @author sean.zhou
@ -18,10 +15,10 @@ import lombok.NoArgsConstructor;
@Builder
public class WorkspaceDTO {
@Schema(description = "(新增不需要传参)", format = "uuid")
private Integer id;
@Pattern(regexp = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$")
@Schema(description = "workspaceId,设备区域标识id", format = "uuid")
@Schema(description = "workspaceId,设备区域标识id(新增不需要传参)", format = "uuid")
private String workspaceId;
@Schema(description = "workspaceName,工作区标识id")
@ -35,4 +32,7 @@ public class WorkspaceDTO {
@Schema(description = "bindCode,设备编码")
private String bindCode;
@Schema(description = "选择租户")
private String tenantId;
}

13
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/WorkspaceEntity.java

@ -3,15 +3,22 @@ package org.dromara.sample.manage.model.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serializable;
import java.util.Date;
@TableName(value = "manage_workspace")
@Data
public class WorkspaceEntity extends TenantEntity implements Serializable {
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkspaceEntity implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@ -38,4 +45,8 @@ public class WorkspaceEntity extends TenantEntity implements Serializable {
private String bindCode;
@TableField(value = "tenant_id")
private String tenantId;
}

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceHmsQueryParam.java

@ -32,9 +32,10 @@ public class DeviceHmsQueryParam {
private String message;
@JsonProperty("pageNum")
private Long page;
@JsonProperty("page_size")
@JsonProperty("pageSize")
private Long pageSize;
private Integer level;

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

@ -1,6 +1,7 @@
package org.dromara.sample.manage.service;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.sample.manage.model.dto.WorkspaceDTO;
import java.util.Optional;
@ -24,5 +25,5 @@ public interface IWorkspaceService {
Optional<WorkspaceDTO> getWorkspaceNameByBindCode(String bindCode);
int insertCurrentWorkspace(WorkspaceDTO workspaceDTO);
HttpResultResponse insertCurrentWorkspace(WorkspaceDTO workspaceDTO);
}

14
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java

@ -40,15 +40,27 @@ public class CapacityCameraServiceImpl implements ICapacityCameraService {
@Override
public Boolean deleteCapacityCameraByDeviceSn(String deviceSn) {
return RedisOpsUtils.hashDel(RedisConst.LIVE_CAPACITY, new String[]{deviceSn});
return true;
//return RedisOpsUtils.hashDel(RedisConst.LIVE_CAPACITY, new String[]{deviceSn});
}
@Override
public void saveCapacityCameraReceiverList(List<CapacityCameraReceiver> capacityCameraReceivers, String deviceSn) {
List<CapacityCameraDTO> capacity = capacityCameraReceivers.stream()
.map(this::receiver2Dto).collect(Collectors.toList());
int i = 0;
if(capacity.size() > 0){
for (CapacityCameraDTO capacityCameraDTO : capacity){
if(capacityCameraDTO.getVideosList().size() > 0){
i++;
}
}
}
if(i > 0){
RedisOpsUtils.hashSet(RedisConst.LIVE_CAPACITY, deviceSn, capacity);
}
}
public CapacityCameraDTO receiver2Dto(CapacityCameraReceiver receiver) {
CapacityCameraDTO.CapacityCameraDTOBuilder builder = CapacityCameraDTO.builder();

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

@ -246,8 +246,16 @@ public class DeviceServiceImpl implements IDeviceService {
DeviceDTO subDevice = getDevicesByParams(DeviceQueryParam.builder().deviceSn(gateway.getChildDeviceSn()).build()).get(0);
subDevice.setStatus(deviceRedisService.checkDeviceOnline(subDevice.getDeviceSn()));
List<CapacityCameraDTO> capacityCameraByDeviceSn = capacityCameraService.getCapacityCameraByDeviceSn(gateway.getChildDeviceSn());
String videoId = "";
if(capacityCameraByDeviceSn != null && capacityCameraByDeviceSn.size() > 0 ){
if(capacityCameraByDeviceSn.get(0).getVideosList().size() > 0){
videoId = gateway.getChildDeviceSn() + "/" + capacityCameraByDeviceSn.get(0).getIndex() + "/" + capacityCameraByDeviceSn.get(0).getVideosList().get(0).getIndex();
}
}
subDevice.setVideoId(videoId);
gateway.setChildren(subDevice);
// gateway.setVideoId(DeviceEnum.videoId);
// payloads
subDevice.setPayloadsList(payloadService.getDevicePayloadEntitiesByDeviceSn(gateway.getChildDeviceSn()));
}
@ -350,6 +358,14 @@ public class DeviceServiceImpl implements IDeviceService {
return null;
}
DeviceDTO.DeviceDTOBuilder builder = DeviceDTO.builder();
List<CapacityCameraDTO> capacityCameraByDeviceSn = capacityCameraService.getCapacityCameraByDeviceSn(entity.getDeviceSn());
String dockVideoId = "";
if(capacityCameraByDeviceSn != null && capacityCameraByDeviceSn.size() > 0 ){
if(capacityCameraByDeviceSn.get(0).getVideosList().size() > 0){
dockVideoId = entity.getDeviceSn() + "/" + capacityCameraByDeviceSn.get(0).getIndex() + "/" + capacityCameraByDeviceSn.get(0).getVideosList().get(0).getIndex();
}
}
try {
builder
.deviceSn(entity.getDeviceSn())
@ -376,6 +392,7 @@ public class DeviceServiceImpl implements IDeviceService {
workspaceService.getWorkspaceByWorkspaceId(entity.getWorkspaceId())
.map(WorkspaceDTO::getWorkspaceName).orElse("") : "")
.firmwareStatus(DeviceFirmwareStatusEnum.NOT_UPGRADE)
.videoId(dockVideoId)
.thingVersion(entity.getVersion()).build();
} catch (CloudSDKException e) {
log.error(e.getLocalizedMessage() + "Entity: {}", entity);

32
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/WorkspaceServiceImpl.java

@ -2,9 +2,16 @@ package org.dromara.sample.manage.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.sdk.cloudapi.device.ControlSourceEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceSubTypeEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceTypeEnum;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.sample.manage.mapper.IWorkspaceMapper;
import org.dromara.sample.manage.model.dto.WorkspaceDTO;
import org.dromara.sample.manage.model.entity.DeviceEntity;
import org.dromara.sample.manage.model.entity.WorkspaceEntity;
import org.dromara.sample.manage.model.enums.DeviceFirmwareStatusEnum;
import org.dromara.sample.manage.service.IWorkspaceService;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
@ -12,6 +19,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Optional;
import java.util.UUID;
@Service
@Transactional
@ -46,9 +54,27 @@ public class WorkspaceServiceImpl implements IWorkspaceService {
}
@Override
public int insertCurrentWorkspace(WorkspaceDTO workspaceDTO) {
WorkspaceEntity workspaceEntity = MapstructUtils.convert(workspaceDTO, WorkspaceEntity.class);
return mapper.insert(workspaceEntity);
public HttpResultResponse insertCurrentWorkspace(WorkspaceDTO workspaceDTO) {
Optional<WorkspaceDTO> workspaceNameByBindCode = this.getWorkspaceNameByBindCode(workspaceDTO.getBindCode());
if(!workspaceNameByBindCode.isEmpty()){
return HttpResultResponse.error("bindCode,设备编码已存在");
}
WorkspaceEntity.WorkspaceEntityBuilder builder = WorkspaceEntity.builder();
builder.workspaceId(String.valueOf(UUID.randomUUID()))
.workspaceName(workspaceDTO.getWorkspaceName())
.workspaceDesc(workspaceDTO.getWorkspaceDesc())
.bindCode(workspaceDTO.getBindCode())
.tenantId(workspaceDTO.getTenantId())
.platformName(workspaceDTO.getPlatformName())
.build();
if(mapper.insert(builder.build()) > 0){
return HttpResultResponse.success();
}
return HttpResultResponse.error("新增失败");
}
public static void main(String[] args) {
System.out.println();
}
/**

4
dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java

@ -1,5 +1,7 @@
package org.dromara.sample.map.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.common.HttpResultResponse;
import org.dromara.sample.map.model.dto.DeviceDataStatusDTO;
@ -21,12 +23,14 @@ import java.util.List;
@RestController
@RequestMapping("${url.map.prefix}${url.map.version}/workspaces")
@Tag(name = "获取设备状态")
public class DeviceDataController {
@Autowired
private IDeviceDataService deviceDataService;
@GetMapping("/{workspace_id}/device-status")
@Operation(summary = "获取设备状态", description = "获取设备状态")
public HttpResultResponse<List<DeviceDataStatusDTO>> getDeviceFlightAreaStatus(@PathVariable(name = "workspace_id") String workspaceId) {
return HttpResultResponse.success(deviceDataService.getDevicesDataStatus(workspaceId));
}

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

@ -35,8 +35,8 @@ public class FileController {
*/
@GetMapping("/{workspace_id}/files")
@Operation(summary = "根据工作区id获取此工作区中所有媒体文件的信息。", description = "根据工作区id获取此工作区中所有媒体文件的信息。")
public HttpResultResponse<PaginationData<MediaFileDTO>> getFilesList(@RequestParam(defaultValue = "1") Long page,
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
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) {
PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize);
return HttpResultResponse.success(filesList);

2
dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java

@ -102,7 +102,7 @@ public class FileServiceImpl implements IFileService {
if (mediaFileOpt.isEmpty()) {
throw new IllegalArgumentException("{} 不存在。");
}
OssClient storage = OssFactory.instance("media_file");
OssClient storage = OssFactory.instance("mediafile");
return storage.getPrivateUrlURL(mediaFileOpt.get().getObjectKey(),3600);
}

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

@ -153,7 +153,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
// set path
String objectKey = file.getObjectKey();
file.setPath(objectKey.substring(Optional.of(objectKey.indexOf("media_file"))
file.setPath(objectKey.substring(Optional.of(objectKey.indexOf("mediafile"))
.filter(index -> index > 0).map(index -> index++).orElse(0),
objectKey.lastIndexOf("/")));

6
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java

@ -58,10 +58,10 @@ public class WaylineJobController {
* @param pageSize
* @return
*/
@GetMapping("/jobs")
@GetMapping("/{workspace_id}/jobs")
@Operation(summary = "查询工作区中的所有作业。。", description = "查询工作区中的所有作业。")
public HttpResultResponse<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(defaultValue = "1") Long page,
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
public HttpResultResponse<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(name = "pageNum", defaultValue = "1") Long page,
@RequestParam(name = "pageSize", defaultValue = "10") Long pageSize,
@PathVariable(name = "workspace_id") String workspaceId) {
PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize);
return HttpResultResponse.success(data);

21
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java

@ -1,12 +1,10 @@
package org.dromara.sample.wayline.model.param;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.sdk.cloudapi.wayline.OutOfControlActionEnum;
import org.dromara.common.sdk.cloudapi.wayline.ProgressExtBreakPoint;
import org.dromara.common.sdk.cloudapi.wayline.TaskTypeEnum;
import org.dromara.common.sdk.cloudapi.wayline.WaylineTypeEnum;
import org.dromara.common.sdk.cloudapi.wayline.*;
import org.hibernate.validator.constraints.Range;
import java.util.List;
@ -19,38 +17,53 @@ import java.util.List;
@Data
public class CreateJobParam {
@Schema(description = "uuid不用填写")
private String jobId;
@NotBlank
@Schema(description = "任务名称")
private String name;
@NotBlank
@Schema(description = "航线id")
private String fileId;
@NotBlank
@Schema(description = "机场sn")
private String dockSn;
@NotNull
@Schema(description = "航线类型")
private WaylineTypeEnum waylineType;
@NotNull
@Schema(description = "航线类型:IMMEDIATE 立即执行")
private TaskTypeEnum taskType;
@Range(min = 20, max = 500)
@NotNull
@Schema(description = "相对机场返回高度")
private Integer rthAltitude;
@NotNull
@Schema(description = "失控动作")
private OutOfControlActionEnum outOfControlAction;
@Range(min = 50, max = 90)
@Schema(description = "最大电量")
private Integer minBatteryCapacity;
@Schema(description = "最小存储空间")
private Integer minStorageCapacity;
@Schema(description = "定时飞行(占时不用)")
private List<Long> taskDays;
@Schema(description = "定时飞行(占时不用)")
private List<List<Long>> taskPeriods;
@Schema(description = "断电续费功能(占时不用)")
private ProgressExtBreakPoint breakPoint;
}

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

@ -237,7 +237,7 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl
continue;
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, loginUser.getTenantId(), loginUser.getUsername(), new Date(beginTime), new Date(endTime));
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime));
if (waylineJobOpt.isEmpty()) {
throw new SQLException("无法创建路线作业。");
}

16
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java

@ -9,6 +9,7 @@ import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dromara.common.oss.core.OssClient;
import org.dromara.common.oss.entity.UploadResult;
import org.dromara.common.oss.factory.OssFactory;
import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum;
import org.dromara.common.sdk.cloudapi.device.DeviceEnum;
@ -108,7 +109,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
if (waylineOpt.isEmpty()) {
throw new SQLException(waylineId + " 不存在。");
}
OssClient storage = OssFactory.instance("wayline_file");
OssClient storage = OssFactory.instance("waylinefile");
return storage.getPrivateUrlURL(waylineOpt.get().getObjectKey(), 3600);
}
@ -119,12 +120,12 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
file.setWorkspaceId(workspaceId);
if (!StringUtils.hasText(file.getSign())) {
OssClient storage = OssFactory.instance("wayline_file");
OssClient storage = OssFactory.instance("waylinefile");
String privateUrl = storage.getPrivateUrl(metadata.getObjectKey(), 3600);
try (InputStream object = storage.getObjectContent(privateUrl)) {
if (object.available() == 0) {
throw new RuntimeException("文件 " + metadata.getObjectKey() +
" 桶中不存在[ wayline_file ].");
" 桶中不存在[ waylinefile ].");
}
file.setSign(DigestUtils.md5DigestAsHex(object));
} catch (IOException e) {
@ -173,7 +174,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
if (!isDel) {
return false;
}
OssClient storage = OssFactory.instance("wayline_file");
OssClient storage = OssFactory.instance("waylinefile");
storage.delete(wayline.getObjectKey());
return true;
}
@ -187,10 +188,11 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
try {
WaylineFileDTO waylineFile = waylineFileOpt.get();
waylineFile.setUsername(creator);
OssClient storage = OssFactory.instance("wayline_file");
OssClient storage = OssFactory.instance("waylinefile");
String originalfileName = file.getOriginalFilename();
String suffix = org.apache.commons.lang3.StringUtils.substring(originalfileName, originalfileName.lastIndexOf("."), originalfileName.length());
storage.uploadSuffix( file.getBytes(),suffix,file.getContentType());
UploadResult uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
waylineFile.setObjectKey(uploadResult.getFilename());
this.saveWaylineFile(workspaceId, waylineFile);
} catch (IOException e) {
e.printStackTrace();
@ -236,7 +238,7 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
DeviceTypeEnum payloadType = DeviceTypeEnum.find(Integer.parseInt(payloadNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_PAYLOAD_ENUM_VALUE)));
DeviceSubTypeEnum payloadSubType = DeviceSubTypeEnum.find(Integer.parseInt(payloadNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_PAYLOAD_SUB_ENUM_VALUE)));
String templateType = document.valueOf("//" + KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_TEMPLATE_TYPE);
OssClient storage = OssFactory.instance("wayline_file");
OssClient storage = OssFactory.instance("waylinefile");
return Optional.of(WaylineFileDTO.builder()
.droneModelKey(DeviceEnum.find(DeviceDomainEnum.DRONE, type, subType).getDevice())
.payloadModelKeys(List.of(DeviceEnum.find(DeviceDomainEnum.PAYLOAD, payloadType, payloadSubType).getDevice()))

4
pom.xml

@ -86,12 +86,12 @@
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<nacos.server>114.235.183.147:8848</nacos.server>
<nacos.server>127.0.0.1:8848</nacos.server>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
<logstash.address>114.235.183.147:4560</logstash.address>
<logstash.address>127.0.0.1:4560</logstash.address>
</properties>
<activation>
<!-- 默认环境 -->

Loading…
Cancel
Save