From e20033ff42f2343d5ca7c45a43a313630ade9bcf Mon Sep 17 00:00:00 2001 From: wuyuan <15505152113@163.com> Date: Tue, 18 Mar 2025 10:09:22 +0800 Subject: [PATCH] 1 --- .../wayline/GetWaylineListRequest.java | 23 ++++++------- .../sdk/cloudapi/wayline/WaylineTypeEnum.java | 9 ++++++ .../wayline/api/IHttpWaylineService.java | 21 ++++++------ dk-common/common-core/pom.xml | 4 +++ .../component/GlobalScheduleService.java | 2 +- .../control/controller/DockController.java | 2 ++ .../control/controller/DrcController.java | 2 ++ .../manage/controller/DeviceController.java | 4 +-- .../controller/WorkspaceController.java | 4 +-- .../sample/manage/model/dto/DeviceDTO.java | 2 ++ .../sample/manage/model/dto/WorkspaceDTO.java | 12 +++---- .../manage/model/entity/WorkspaceEntity.java | 13 +++++++- .../model/param/DeviceHmsQueryParam.java | 3 +- .../manage/service/IWorkspaceService.java | 3 +- .../impl/CapacityCameraServiceImpl.java | 16 ++++++++-- .../service/impl/DeviceServiceImpl.java | 19 ++++++++++- .../service/impl/WorkspaceServiceImpl.java | 32 +++++++++++++++++-- .../map/controller/DeviceDataController.java | 4 +++ .../media/controller/FileController.java | 4 +-- .../media/service/impl/FileServiceImpl.java | 2 +- .../media/service/impl/MediaServiceImpl.java | 2 +- .../controller/WaylineJobController.java | 6 ++-- .../wayline/model/param/CreateJobParam.java | 21 +++++++++--- .../service/impl/FlightTaskServiceImpl.java | 2 +- .../service/impl/WaylineFileServiceImpl.java | 16 ++++++---- pom.xml | 4 +-- 26 files changed, 171 insertions(+), 61 deletions(-) diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java index 4624ebd..1d6301c 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/GetWaylineListRequest.java +++ b/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 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 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 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() { diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java index 7e753d8..768d16c 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java +++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/WaylineTypeEnum.java @@ -16,10 +16,19 @@ import java.util.Arrays; description = "

0: waypoint

1: mapping2d

2: mapping3d

3: mappingStrip

") public enum WaylineTypeEnum { + /** + * 航点 + */ WAYPOINT(0, "waypoint"), + /** + * 二维 + */ MAPPING_2D(1, "mapping2d"), + /** + * 三维 + */ MAPPING_3D(2, "mapping3d"), MAPPING_STRIP(3, "mappingStrip"); diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java index bc82682..98195e1 100644 --- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java +++ b/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> 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) }) diff --git a/dk-common/common-core/pom.xml b/dk-common/common-core/pom.xml index 0e5910d..026af58 100644 --- a/dk-common/common-core/pom.xml +++ b/dk-common/common-core/pom.xml @@ -99,6 +99,10 @@ ip2region + + jaxen + jaxen + diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java b/dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java index 1a07f5e..bb00778 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/component/GlobalScheduleService.java +++ b/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())); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DockController.java b/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DockController.java index 283fbed..4e7e0ef 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DockController.java +++ b/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 diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java b/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java index a8a85ad..e4d0934 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/control/controller/DrcController.java +++ b/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 diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java index 57b085c..4ca130d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java +++ b/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> 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 devices = deviceService.getBoundDevicesWithDomain(workspaceId, page, pageSize, domain); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java index 052e0b4..d52f04f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/WorkspaceController.java +++ b/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); } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java index 164f452..e1cc582 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java +++ b/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; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/WorkspaceDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/WorkspaceDTO.java index f8b35bf..f775779 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/WorkspaceDTO.java +++ b/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; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/WorkspaceEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/WorkspaceEntity.java index 8b1b624..2680c67 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/WorkspaceEntity.java +++ b/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; + + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceHmsQueryParam.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceHmsQueryParam.java index fec1930..3bbd8dd 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/param/DeviceHmsQueryParam.java +++ b/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; diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IWorkspaceService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IWorkspaceService.java index 124803f..5ea9bfd 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IWorkspaceService.java +++ b/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 getWorkspaceNameByBindCode(String bindCode); - int insertCurrentWorkspace(WorkspaceDTO workspaceDTO); + HttpResultResponse insertCurrentWorkspace(WorkspaceDTO workspaceDTO); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java index 71ef36c..d1e64dc 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/CapacityCameraServiceImpl.java @@ -40,14 +40,26 @@ 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 capacityCameraReceivers, String deviceSn) { List capacity = capacityCameraReceivers.stream() .map(this::receiver2Dto).collect(Collectors.toList()); - RedisOpsUtils.hashSet(RedisConst.LIVE_CAPACITY, deviceSn, capacity); + 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) { diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java index 4f5bc3f..67ad805 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceServiceImpl.java +++ b/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 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 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); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/WorkspaceServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/WorkspaceServiceImpl.java index 8605e59..40fe17e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/WorkspaceServiceImpl.java +++ b/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 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(); } /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java b/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java index 15bbaf8..49571ba 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/map/controller/DeviceDataController.java +++ b/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> getDeviceFlightAreaStatus(@PathVariable(name = "workspace_id") String workspaceId) { return HttpResultResponse.success(deviceDataService.getDevicesDataStatus(workspaceId)); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java index f0c332c..70b1d8f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java +++ b/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> getFilesList(@RequestParam(defaultValue = "1") Long page, - @RequestParam(name = "page_size", defaultValue = "10") Long pageSize, + public HttpResultResponse> getFilesList(@RequestParam(name = "pageNum", defaultValue = "1") Long page, + @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, @PathVariable(name = "workspace_id") String workspaceId) { PaginationData filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize); return HttpResultResponse.success(filesList); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java index 0479393..b288c68 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java +++ b/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); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java index b7d5d54..d95693a 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java +++ b/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("/"))); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java index f1ab0f0..dd21073 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java +++ b/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> getJobs(@RequestParam(defaultValue = "1") Long page, - @RequestParam(name = "page_size", defaultValue = "10") Long pageSize, + public HttpResultResponse> getJobs(@RequestParam(name = "pageNum", defaultValue = "1") Long page, + @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, @PathVariable(name = "workspace_id") String workspaceId) { PaginationData data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize); return HttpResultResponse.success(data); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java index a5cbad7..cb0e60d 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/param/CreateJobParam.java +++ b/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 taskDays; + @Schema(description = "定时飞行(占时不用)") private List> taskPeriods; + @Schema(description = "断电续费功能(占时不用)") private ProgressExtBreakPoint breakPoint; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java index 240c0ab..c0a7dd9 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java +++ b/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 waylineJobOpt = waylineJobService.createWaylineJob(param, loginUser.getTenantId(), loginUser.getUsername(), new Date(beginTime), new Date(endTime)); + Optional waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, loginUser.getUsername(), new Date(beginTime), new Date(endTime)); if (waylineJobOpt.isEmpty()) { throw new SQLException("无法创建路线作业。"); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java index 128f72c..b73bc27 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineFileServiceImpl.java +++ b/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())) diff --git a/pom.xml b/pom.xml index 23aa72a..63a9d40 100644 --- a/pom.xml +++ b/pom.xml @@ -86,12 +86,12 @@ dev - 114.235.183.147:8848 + 127.0.0.1:8848 DEFAULT_GROUP DEFAULT_GROUP nacos nacos - 114.235.183.147:4560 + 127.0.0.1:4560