Browse Source

1

pull/1/head
吴远 3 months ago
parent
commit
efb779dfb4
  1. 12
      dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/cloudapi/wayline/api/IHttpWaylineService.java
  2. 25
      dk-modules/sample/src/main/java/org/dromara/sample/component/ApplicationBootInitial.java
  3. 1
      dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceController.java
  4. 6
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/dto/DeviceDTO.java
  5. 6
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java
  6. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java
  7. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java
  8. 3
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/FirmwareModelEntity.java
  9. 5
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/LogsFileEntity.java
  10. 5
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/LogsFileIndexEntity.java
  11. 41
      dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/UserEntity.java
  12. 5
      dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/DeviceFlightAreaEntity.java
  13. 5
      dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/FlightAreaFileEntity.java
  14. 5
      dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupEntity.java
  15. 5
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java
  16. 8
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
  17. 5
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java
  18. 13
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java
  19. 4
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
  20. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java
  21. 23
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
  22. 2
      dk-modules/sample/src/main/resources/application.yml

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

@ -40,8 +40,7 @@ public interface IHttpWaylineService {
* @param rsp * @param rsp
* @return wayline list * @return wayline list
*/ */
@Operation(summary = "get wayline list", description = "Query the basic data of the wayline file according to " + @Operation(summary = "获取航线路线列表", description = "根据查询条件査询路线文件的基本数据。飞行员中的查询条件字段是固定的。")
"the query conditions. The query condition field in pilot is fixed.")
@GetMapping(PREFIX + "/workspaces/waylines") @GetMapping(PREFIX + "/workspaces/waylines")
HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList( HttpResultResponse<PaginationData<GetWaylineListResponse>> getWaylineList(
@Valid @ParameterObject GetWaylineListRequest request, @Valid @ParameterObject GetWaylineListRequest request,
@ -54,8 +53,7 @@ public interface IHttpWaylineService {
* @param req * @param req
* @param rsp * @param rsp
*/ */
@Operation(summary = "get wayline file download address", description = "Query the download address of the file " + @Operation(summary = "获取航线路线文件下载地址", description = "根据路线文件ID查询文件的下载地址,并直接重定向到此地址进行下载。",
"according to the wayline file id, and redirect to this address directly for download.",
parameters = { parameters = {
@Parameter(name = "wayline_id", description = "wayline id", schema = @Schema(format = "uuid")) @Parameter(name = "wayline_id", description = "wayline id", schema = @Schema(format = "uuid"))
}) })
@ -73,9 +71,9 @@ public interface IHttpWaylineService {
* @param rsp * @param rsp
* @return already existing wayline name * @return already existing wayline name
*/ */
@Operation(summary = "get duplicated wayline name", description = "Checking whether the name already exists " + @Operation(summary = "获取重复的wavLine名称", description = "检查名称是否已存在 " +
"according to the wayline name must ensure the uniqueness of the wayline name. " + "根据wayLine名称必须确保wayLine名称的唯一性。 " +
"This interface will be called when uploading waylines and must be available.", "此接口将在上传wayLines时被调用,并且必须可用。",
parameters = { parameters = {
@Parameter(name = "name", description = "wayline file name", required = true) @Parameter(name = "name", description = "wayline file name", required = true)
}) })

25
dk-modules/sample/src/main/java/org/dromara/sample/component/ApplicationBootInitial.java

@ -4,6 +4,7 @@ package org.dromara.sample.component;
import org.dromara.common.redis.config.RedisConst; import org.dromara.common.redis.config.RedisConst;
import org.dromara.common.redis.utils.RedisOpsUtils; import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.sample.manage.model.dto.DeviceDTO; import org.dromara.sample.manage.model.dto.DeviceDTO;
import org.dromara.sample.manage.model.param.DeviceQueryParam;
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;
import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum; import org.dromara.common.sdk.cloudapi.device.DeviceDomainEnum;
@ -13,6 +14,7 @@ import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
/** /**
* @author sean.zhou * @author sean.zhou
@ -39,17 +41,26 @@ public class ApplicationBootInitial implements CommandLineRunner {
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
int start = RedisConst.DEVICE_ONLINE_PREFIX.length(); int start = RedisConst.DEVICE_ONLINE_PREFIX.length();
Set<String> allKeys = redisOpsUtils.getAllKeys(RedisConst.DEVICE_ONLINE_PREFIX + "*");
redisOpsUtils.getAllKeys(RedisConst.DEVICE_ONLINE_PREFIX + "*") if(allKeys.size() == 0){
.stream() deviceService.getDevicesByParams(DeviceQueryParam.builder().build()).stream()
.filter(device -> DeviceDomainEnum.DRONE != device.getDomain())
.forEach(device->{ deviceService.subDeviceOnlineSubscribeTopic(
SDKManager.registerDevice(device.getDeviceSn(), device.getChildDeviceSn(), device.getDomain(),
device.getType(), device.getSubType(), device.getThingVersion(),
deviceRedisService.getDeviceOnline(device.getChildDeviceSn()).map(DeviceDTO::getThingVersion).orElse(null)));
}
);
}else {
allKeys.stream()
.map(key -> key.substring(start)) .map(key -> key.substring(start))
.map(deviceRedisService::getDeviceOnline) .map(deviceRedisService::getDeviceOnline)
.map(Optional::get) .map(Optional::get)
.filter(device -> DeviceDomainEnum.DRONE != device.getDomain()) .filter(device -> DeviceDomainEnum.DRONE != device.getDomain())
.forEach(device -> deviceService.subDeviceOnlineSubscribeTopic( .forEach(device -> deviceService.subDeviceOnlineSubscribeTopic(
SDKManager.registerDevice(device.getDeviceSn(), device.getChildDeviceSn(), device.getDomain(), SDKManager.registerDevice(device.getDeviceSn(), device.getChildDeviceSn(), device.getDomain(),
device.getType(), device.getSubType(), device.getThingVersion(), device.getType(), device.getSubType(), device.getThingVersion(),
deviceRedisService.getDeviceOnline(device.getChildDeviceSn()).map(DeviceDTO::getThingVersion).orElse(null)))); deviceRedisService.getDeviceOnline(device.getChildDeviceSn()).map(DeviceDTO::getThingVersion).orElse(null))));
}
} }
} }

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

@ -43,7 +43,6 @@ public class DeviceController {
* @return * @return
*/ */
@GetMapping("/{workspace_id}/devices") @GetMapping("/{workspace_id}/devices")
@SaCheckPermission("work:spaces:list")
@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); List<DeviceDTO> devicesList = deviceService.getDevicesTopoForWeb(workspaceId);

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

@ -93,4 +93,10 @@ public class DeviceDTO {
@Schema(description = "设备枚举") @Schema(description = "设备枚举")
private String thingVersion; private String thingVersion;
/**
* 租户ID
*/
@Schema(description = "租户ID")
private String tenantId;
} }

6
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceEntity.java

@ -89,4 +89,10 @@ public class DeviceEntity implements Serializable {
@TableField(value = "login_time") @TableField(value = "login_time")
private LocalDateTime loginTime; private LocalDateTime loginTime;
/**
* 租户ID
*/
@TableField(value = "tenant_id")
private String tenantId;
} }

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFirmwareEntity.java

@ -68,4 +68,7 @@ public class DeviceFirmwareEntity implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private Date updateTime;
@TableField(value = "tenant_id")
private String tenantId;
} }

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DevicePayloadEntity.java

@ -56,4 +56,6 @@ public class DevicePayloadEntity implements Serializable {
@TableField(value = "control_source") @TableField(value = "control_source")
private String controlSource; private String controlSource;
@TableField(value = "tenant_id")
private String tenantId;
} }

3
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/FirmwareModelEntity.java

@ -34,4 +34,7 @@ public class FirmwareModelEntity implements Serializable {
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Long updateTime;
@TableField(value = "tenant_id", fill = FieldFill.INSERT_UPDATE)
private String tenantId;
} }

5
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/LogsFileEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -50,9 +51,9 @@ public class LogsFileEntity implements Serializable {
private Boolean status; private Boolean status;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

5
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/LogsFileIndexEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -47,8 +48,8 @@ public class LogsFileIndexEntity implements Serializable {
private Integer domain; private Integer domain;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

41
dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/UserEntity.java

@ -1,41 +0,0 @@
package org.dromara.sample.manage.model.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
@TableName(value = "manage_user")
@Data
public class UserEntity implements Serializable {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField(value = "user_id")
private String userId;
@TableField(value = "username")
private String username;
@TableField(value = "password")
private String password;
@TableField(value = "workspace_id")
private String workspaceId;
@TableField(value = "user_type")
private Integer userType;
@TableField(value = "mqtt_username")
private String mqttUsername;
@TableField(value = "mqtt_password")
private String mqttPassword;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime;
}

5
dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/DeviceFlightAreaEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -39,8 +40,8 @@ public class DeviceFlightAreaEntity implements Serializable {
private Integer syncCode; private Integer syncCode;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

5
dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/FlightAreaFileEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -45,8 +46,8 @@ public class FlightAreaFileEntity implements Serializable {
private Boolean latest; private Boolean latest;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

5
dk-modules/sample/src/main/java/org/dromara/sample/map/model/entity/GroupEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -42,8 +43,8 @@ public class GroupEntity implements Serializable {
private Boolean isLock; private Boolean isLock;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

5
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineFileController.java

@ -1,6 +1,7 @@
package org.dromara.sample.wayline.controller; package org.dromara.sample.wayline.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@ -37,7 +38,7 @@ import java.util.stream.Collectors;
* @date 2021/12/22 * @date 2021/12/22
*/ */
@RestController @RestController
@Tag(name="凭证信息") @Tag(name="航线模块")
public class WaylineFileController implements IHttpWaylineService { public class WaylineFileController implements IHttpWaylineService {
@Autowired @Autowired
@ -49,6 +50,7 @@ public class WaylineFileController implements IHttpWaylineService {
* @param waylineId * @param waylineId
* @return * @return
*/ */
@Operation(summary = "根据waylineID删除工作区中的wayline文件。", description = "根据waylineID删除工作区中的wayline文件。")
@DeleteMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/{wayline_id}") @DeleteMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/{wayline_id}")
public HttpResultResponse deleteWayline(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "wayline_id") String waylineId) { public HttpResultResponse deleteWayline(@PathVariable(name = "workspace_id") String workspaceId,@PathVariable(name = "wayline_id") String waylineId) {
boolean isDel = waylineFileService.deleteByWaylineId(workspaceId, waylineId); boolean isDel = waylineFileService.deleteByWaylineId(workspaceId, waylineId);
@ -62,6 +64,7 @@ public class WaylineFileController implements IHttpWaylineService {
* @return * @return
*/ */
@PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/upload") @PostMapping("${url.wayline.prefix}${url.wayline.version}/workspaces/{workspace_id}/waylines/file/upload")
@Operation(summary = "导入kmz航路文件。", description = "导入kmz航路文件。")
public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file) { public HttpResultResponse importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,HttpServletRequest request, MultipartFile file) {
if (Objects.isNull(file)) { if (Objects.isNull(file)) {
return HttpResultResponse.error("未收到文件。"); return HttpResultResponse.error("未收到文件。");

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

@ -1,5 +1,7 @@
package org.dromara.sample.wayline.controller; package org.dromara.sample.wayline.controller;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
@ -25,6 +27,7 @@ import java.util.Set;
*/ */
@RequestMapping("${url.wayline.prefix}${url.wayline.version}/workspaces") @RequestMapping("${url.wayline.prefix}${url.wayline.version}/workspaces")
@RestController @RestController
@Tag(name = "飞行任务模块")
public class WaylineJobController { public class WaylineJobController {
@Autowired @Autowired
@ -42,6 +45,7 @@ public class WaylineJobController {
* @throws SQLException * @throws SQLException
*/ */
@PostMapping("/{workspace_id}/flight-tasks") @PostMapping("/{workspace_id}/flight-tasks")
@Operation(summary = "创建一个航路任务。", description = "创建一个航路任务")
public HttpResultResponse createJob(HttpServletRequest request, @Valid @RequestBody CreateJobParam param public HttpResultResponse createJob(HttpServletRequest request, @Valid @RequestBody CreateJobParam param
,@PathVariable(name = "workspace_id") String workspaceId) throws SQLException { ,@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
@ -55,6 +59,7 @@ public class WaylineJobController {
* @return * @return
*/ */
@GetMapping("/jobs") @GetMapping("/jobs")
@Operation(summary = "查询工作区中的所有作业。。", description = "查询工作区中的所有作业。")
public HttpResultResponse<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(defaultValue = "1") Long page, public HttpResultResponse<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(defaultValue = "1") Long page,
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize, @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
@PathVariable(name = "workspace_id") String workspaceId) { @PathVariable(name = "workspace_id") String workspaceId) {
@ -69,6 +74,7 @@ public class WaylineJobController {
* @throws SQLException * @throws SQLException
*/ */
@DeleteMapping("/{workspace_id}/jobs") @DeleteMapping("/{workspace_id}/jobs")
@Operation(summary = "发送命令取消作业。", description = "发送命令取消作业。")
public HttpResultResponse publishCancelJob(@RequestParam(name = "job_id") Set<String> jobIds,@PathVariable(name = "workspace_id") String workspaceId) throws SQLException { public HttpResultResponse publishCancelJob(@RequestParam(name = "job_id") Set<String> jobIds,@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
flighttaskService.cancelFlightTask(workspaceId, jobIds); flighttaskService.cancelFlightTask(workspaceId, jobIds);
return HttpResultResponse.success(); return HttpResultResponse.success();
@ -80,6 +86,7 @@ public class WaylineJobController {
* @return * @return
*/ */
@PostMapping("/{workspace_id}/jobs/{job_id}/media-highest") @PostMapping("/{workspace_id}/jobs/{job_id}/media-highest")
@Operation(summary = "将此作业的媒体文件设置为立即上传。", description = "将此作业的媒体文件设置为立即上传。")
public HttpResultResponse uploadMediaHighestPriority(@PathVariable(name = "workspace_id") String workspaceId, public HttpResultResponse uploadMediaHighestPriority(@PathVariable(name = "workspace_id") String workspaceId,
@PathVariable(name = "job_id") String jobId) { @PathVariable(name = "job_id") String jobId) {
flighttaskService.uploadMediaHighestPriority(workspaceId, jobId); flighttaskService.uploadMediaHighestPriority(workspaceId, jobId);
@ -87,6 +94,7 @@ public class WaylineJobController {
} }
@PutMapping("/{workspace_id}/jobs/{job_id}") @PutMapping("/{workspace_id}/jobs/{job_id}")
@Operation(summary = "更新任务状态。", description = "更新任务状态。")
public HttpResultResponse updateJobStatus(@PathVariable(name = "workspace_id") String workspaceId, public HttpResultResponse updateJobStatus(@PathVariable(name = "workspace_id") String workspaceId,
@PathVariable(name = "job_id") String jobId, @PathVariable(name = "job_id") String jobId,
@Valid @RequestBody UpdateJobParam param) { @Valid @RequestBody UpdateJobParam param) {

5
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineFileEntity.java

@ -7,6 +7,7 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -54,9 +55,9 @@ public class WaylineFileEntity implements Serializable {
private String username; private String username;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
} }

13
dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/entity/WaylineJobEntity.java

@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
import org.dromara.common.sdk.cloudapi.wayline.ProgressExtBreakPoint; import org.dromara.common.sdk.cloudapi.wayline.ProgressExtBreakPoint;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author sean * @author sean
@ -49,10 +50,10 @@ public class WaylineJobEntity implements Serializable {
private String username; private String username;
@TableField("execute_time") @TableField("execute_time")
private Long executeTime; private Date executeTime;
@TableField("end_time") @TableField("end_time")
private Long endTime; private Date endTime;
@TableField("error_code") @TableField("error_code")
private Integer errorCode; private Integer errorCode;
@ -70,16 +71,16 @@ public class WaylineJobEntity implements Serializable {
private Integer mediaCount; private Integer mediaCount;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime; private Date createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Long updateTime; private Date updateTime;
@TableField("begin_time") @TableField("begin_time")
private Long beginTime; private Date beginTime;
@TableField("completed_time") @TableField("completed_time")
private Long completedTime; private Date completedTime;
@TableField("parent_id") @TableField("parent_id")
private String parentId; private String parentId;

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

@ -5,7 +5,9 @@ import org.dromara.sample.wayline.model.dto.WaylineJobDTO;
import org.dromara.sample.wayline.model.enums.WaylineJobStatusEnum; import org.dromara.sample.wayline.model.enums.WaylineJobStatusEnum;
import org.dromara.sample.wayline.model.param.CreateJobParam; import org.dromara.sample.wayline.model.param.CreateJobParam;
import javax.xml.crypto.Data;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -25,7 +27,7 @@ public interface IWaylineJobService {
* @param endTime The time the job ended. * @param endTime The time the job ended.
* @return * @return
*/ */
Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Long beginTime, Long endTime); Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime);
/** /**
* Create a sub-task based on the information of the parent task. * Create a sub-task based on the information of the parent task.

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; continue;
} }
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, loginUser.getTenantId(), loginUser.getUsername(), beginTime, endTime); Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, loginUser.getTenantId(), loginUser.getUsername(), new Date(beginTime), new Date(endTime));
if (waylineJobOpt.isEmpty()) { if (waylineJobOpt.isEmpty()) {
throw new SQLException("无法创建路线作业。"); throw new SQLException("无法创建路线作业。");
} }

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

@ -80,7 +80,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
} }
@Override @Override
public Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Long beginTime, Long endTime) { public Optional<WaylineJobDTO> createWaylineJob(CreateJobParam param, String workspaceId, String username, Date beginTime, Date endTime) {
if (Objects.isNull(param)) { if (Objects.isNull(param)) {
return Optional.empty(); return Optional.empty();
} }
@ -92,7 +92,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.username(username) .username(username)
.workspaceId(workspaceId) .workspaceId(workspaceId)
.jobId(StringUtils.hasText(param.getJobId())?param.getJobId():UUID.randomUUID().toString()) .jobId(StringUtils.hasText(param.getJobId())?param.getJobId():UUID.randomUUID().toString())
.beginTime(beginTime) .beginTime( beginTime)
.endTime(endTime) .endTime(endTime)
.status(WaylineJobStatusEnum.PENDING.getVal()) .status(WaylineJobStatusEnum.PENDING.getVal())
.taskType(param.getTaskType().getType()) .taskType(param.getTaskType().getType())
@ -172,16 +172,16 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
return builder.build(); return builder.build();
} }
if (Objects.nonNull(dto.getBeginTime())) { if (Objects.nonNull(dto.getBeginTime())) {
builder.beginTime(dto.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); builder.beginTime(new Date(dto.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
} }
if (Objects.nonNull(dto.getEndTime())) { if (Objects.nonNull(dto.getEndTime())) {
builder.endTime(dto.getEndTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); builder.endTime(new Date(dto.getEndTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
} }
if (Objects.nonNull(dto.getExecuteTime())) { if (Objects.nonNull(dto.getExecuteTime())) {
builder.executeTime(dto.getExecuteTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); builder.executeTime(new Date(dto.getExecuteTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
} }
if (Objects.nonNull(dto.getCompletedTime())) { if (Objects.nonNull(dto.getCompletedTime())) {
builder.completedTime(dto.getCompletedTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()); builder.completedTime(new Date(dto.getCompletedTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()));
} }
return builder.status(dto.getStatus()) return builder.status(dto.getStatus())
.mediaCount(dto.getMediaCount()) .mediaCount(dto.getMediaCount())
@ -246,13 +246,13 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
entity.getJobId().equals(waylineRedisService.getPausedWaylineJobId(entity.getDockSn())) ? entity.getJobId().equals(waylineRedisService.getPausedWaylineJobId(entity.getDockSn())) ?
WaylineJobStatusEnum.PAUSED.getVal() : entity.getStatus()) WaylineJobStatusEnum.PAUSED.getVal() : entity.getStatus())
.code(entity.getErrorCode()) .code(entity.getErrorCode())
.beginTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getBeginTime()), ZoneId.systemDefault())) .beginTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getBeginTime().getTime()), ZoneId.systemDefault()))
.endTime(Objects.nonNull(entity.getEndTime()) ? .endTime(Objects.nonNull(entity.getEndTime()) ?
LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getEndTime()), ZoneId.systemDefault()) : null) LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getEndTime().getTime()), ZoneId.systemDefault()) : null)
.executeTime(Objects.nonNull(entity.getExecuteTime()) ? .executeTime(Objects.nonNull(entity.getExecuteTime()) ?
LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getExecuteTime()), ZoneId.systemDefault()) : null) LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getExecuteTime().getTime()), ZoneId.systemDefault()) : null)
.completedTime(WaylineJobStatusEnum.find(entity.getStatus()).getEnd() ? .completedTime(WaylineJobStatusEnum.find(entity.getStatus()).getEnd() ?
LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getUpdateTime()), ZoneId.systemDefault()) : null) LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getUpdateTime().getTime()), ZoneId.systemDefault()) : null)
.taskType(TaskTypeEnum.find(entity.getTaskType())) .taskType(TaskTypeEnum.find(entity.getTaskType()))
.waylineType(WaylineTypeEnum.find(entity.getWaylineType())) .waylineType(WaylineTypeEnum.find(entity.getWaylineType()))
.rthAltitude(entity.getRthAltitude()) .rthAltitude(entity.getRthAltitude())
@ -262,7 +262,7 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
if (Objects.nonNull(entity.getEndTime())) { if (Objects.nonNull(entity.getEndTime())) {
builder.endTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getEndTime()), ZoneId.systemDefault())); builder.endTime(LocalDateTime.ofInstant(Instant.ofEpochMilli(entity.getEndTime().getTime()), ZoneId.systemDefault()));
} }
if (WaylineJobStatusEnum.IN_PROGRESS.getVal() == entity.getStatus()) { if (WaylineJobStatusEnum.IN_PROGRESS.getVal() == entity.getStatus()) {
builder.progress(waylineRedisService.getRunningWaylineJob(entity.getDockSn()) builder.progress(waylineRedisService.getRunningWaylineJob(entity.getDockSn())
@ -298,4 +298,5 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
.uploadedCount(uploadedSize).build()); .uploadedCount(uploadedSize).build());
return builder.build(); return builder.build();
} }
} }

2
dk-modules/sample/src/main/resources/application.yml

@ -1,5 +1,5 @@
server: server:
port: 6789 port: 6788
# Spring # Spring
spring: spring:
main: main:

Loading…
Cancel
Save