diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java
index 4278a9b..fc20294 100644
--- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java
+++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock2ThingVersionEnum.java
@@ -27,6 +27,8 @@ public enum Dock2ThingVersionEnum implements IThingVersion {
V1_2_4("1.2.4", CloudSDKVersionEnum.V1_0_3),
+ V1_2_5("1.2.5", CloudSDKVersionEnum.V1_0_3),
+
V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3),
diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java
index 9fde53c..8d2daad 100644
--- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java
+++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/Dock3ThingVersionEnum.java
@@ -26,6 +26,8 @@ public enum Dock3ThingVersionEnum implements IThingVersion {
V1_2_4("1.2.4", CloudSDKVersionEnum.V1_0_3),
+ V1_2_5("1.2.5", CloudSDKVersionEnum.V1_0_3),
+
V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3),
V1_3_1("1.3.1", CloudSDKVersionEnum.V1_0_3),
diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java
index 7876fb1..518bd4c 100644
--- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java
+++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DockThingVersionEnum.java
@@ -26,6 +26,8 @@ public enum DockThingVersionEnum implements IThingVersion {
V1_2_4("1.2.4", CloudSDKVersionEnum.V1_0_3),
+ V1_2_5("1.2.5", CloudSDKVersionEnum.V1_0_3),
+
V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3),
V1_3_1("1.3.1", CloudSDKVersionEnum.V1_0_3),
diff --git a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java
index bbdef82..f187d9c 100644
--- a/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java
+++ b/dk-common/common-cloudsdk/src/main/java/org/dromara/common/sdk/config/version/DroneThingVersionEnum.java
@@ -29,6 +29,8 @@ public enum DroneThingVersionEnum implements IThingVersion {
V1_2_4("1.2.4", CloudSDKVersionEnum.V1_0_3),
+ V1_2_5("1.2.5", CloudSDKVersionEnum.V1_0_3),
+
V1_3_0("1.3.0", CloudSDKVersionEnum.V1_0_3),
V1_3_1("1.3.1", CloudSDKVersionEnum.V1_3_1),
diff --git a/dk-modules/sample/pom.xml b/dk-modules/sample/pom.xml
index 1a4c98a..5f62f2b 100644
--- a/dk-modules/sample/pom.xml
+++ b/dk-modules/sample/pom.xml
@@ -148,6 +148,10 @@
org.springframework.boot
spring-boot-starter
+
+ org.dromara
+ common-job
+
${project.artifactId}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobBo.java b/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobBo.java
new file mode 100644
index 0000000..8ca29b6
--- /dev/null
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobBo.java
@@ -0,0 +1,31 @@
+package org.dromara.sample.job;
+
+import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
+import com.aizuda.snailjob.client.job.core.dto.JobArgs;
+import com.aizuda.snailjob.client.job.core.executor.AbstractJobExecutor;
+import com.aizuda.snailjob.client.model.ExecuteResult;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.dromara.common.json.utils.JsonUtils;
+import org.dromara.sample.wayline.service.IWaylineFileService;
+import org.joda.time.DateTime;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @auther wuyuan
+ * @data 2025/7/16
+ */
+@Data
+public class WaylineDeviceJobBo {
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date startDate;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date endDate;
+
+}
+
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobExecutor.java b/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobExecutor.java
new file mode 100644
index 0000000..6dbc9e0
--- /dev/null
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/job/WaylineDeviceJobExecutor.java
@@ -0,0 +1,75 @@
+package org.dromara.sample.job;
+
+import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
+import com.aizuda.snailjob.client.job.core.dto.JobArgs;
+import com.aizuda.snailjob.client.job.core.executor.AbstractJobExecutor;
+import com.aizuda.snailjob.client.model.ExecuteResult;
+import org.dromara.common.core.utils.file.MimeTypeUtils;
+import org.dromara.common.json.utils.JsonUtils;
+import org.dromara.common.oss.core.OssClient;
+import org.dromara.common.oss.factory.OssFactory;
+import org.dromara.sample.media.model.MediaFileEntity;
+import org.dromara.sample.media.service.IFileService;
+import org.dromara.sample.wayline.mapper.IWaylineFileMapper;
+import org.dromara.sample.wayline.model.entity.WaylineFileEntity;
+import org.dromara.sample.wayline.model.entity.WaylineJobEntity;
+import org.dromara.sample.wayline.service.IWaylineFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @auther wuyuan
+ * @data 2025/7/16
+ */
+@Component
+public class WaylineDeviceJobExecutor {
+
+ @Autowired
+ private IFileService fileService;
+
+ @Autowired
+ private IWaylineFileService waylineFileService;
+ @JobExecutor(name = "mediaFileJob")
+ protected ExecuteResult doMediaFileJobJobExecute(JobArgs jobArgs) {
+ WaylineDeviceJobBo waylineDeviceJobBo = JsonUtils.parseObject(jobArgs.getJobParams().toString(), WaylineDeviceJobBo.class);
+ List mediaFileEntitys = fileService.getListBywaylineDeviceJobBo(waylineDeviceJobBo);
+ OssClient mediafile = OssFactory.instance("mediafile");
+ OssClient mediafileNW = OssFactory.instance("mediafileNW");
+ for (MediaFileEntity mediaFileEntity:mediaFileEntitys){
+ String privateUrl = mediafile.getPrivateUrl(mediaFileEntity.getObjectKey(), 3600);
+ try {
+ InputStream inputStream = mediafile.getObjectContent(privateUrl);
+ mediafileNW.uploadSuffix(inputStream,mediaFileEntity.getObjectKey(), Long.getLong(String.valueOf(inputStream.available())), mediaFileEntity.getFileType());
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ return ExecuteResult.success("TestJobExecutor测试成功");
+ }
+
+ @JobExecutor(name = "waylineFileJob")
+ protected ExecuteResult doWaylineFileJobExecute(JobArgs jobArgs) {
+ System.out.println("狗从-------------------------》");
+ WaylineDeviceJobBo waylineDeviceJobBo = JsonUtils.parseObject(jobArgs.getJobParams().toString(), WaylineDeviceJobBo.class);
+ List waylineFileEntities = waylineFileService.getListBywaylineDeviceJobBo(waylineDeviceJobBo);
+ OssClient waylinefile = OssFactory.instance("waylinefile");
+ OssClient waylinefileNW = OssFactory.instance("waylinefileNW");
+ for (WaylineFileEntity waylineFileEntity:waylineFileEntities){
+ String privateUrl = waylinefile.getPrivateUrl(waylineFileEntity.getObjectKey(), 3600);
+ try {
+ InputStream inputStream = waylinefile.getObjectContent(privateUrl);
+ waylinefileNW.uploadSuffix(inputStream,waylineFileEntity.getObjectKey(), Long.getLong(String.valueOf(inputStream.available())), "kmz");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ System.out.println("狗从============》");
+ return ExecuteResult.success("TestJobExecutor测试成功");
+ }
+}
+
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
index 5fb02f1..39f86d3 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
@@ -186,7 +186,7 @@ public class SDKDeviceService extends AbstractDeviceService {
&& request.getData().getDroneChargeState().getCapacityPercent() >= 80 && (remainUpload != null && remainUpload == 0)){
deviceQrtzService.getDeviceQrtzFileEntity(device);
}
- if(!request.getData().getSubDevice().getDeviceOnlineStatus() && request.getData().getModeCode() == DockModeCodeEnum.IDLE){
+ if(request.getData().getSubDevice() != null && request.getData().getSubDevice().getDeviceOnlineStatus() != null && !request.getData().getSubDevice().getDeviceOnlineStatus() && request.getData().getModeCode() == DockModeCodeEnum.IDLE){
mediaService.delMediaCount(from);
}
deviceRedisService.setDeviceOnline(device);
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/mapper/IFileMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/mapper/IFileMapper.java
index f1767d9..72f17d0 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/media/mapper/IFileMapper.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/mapper/IFileMapper.java
@@ -3,8 +3,12 @@ package org.dromara.sample.media.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.sample.job.WaylineDeviceJobBo;
import org.dromara.sample.media.model.MediaFileEntity;
+import java.util.Date;
+import java.util.List;
+
/**
* @author sean
* @version 0.2
@@ -12,4 +16,6 @@ import org.dromara.sample.media.model.MediaFileEntity;
*/
public interface IFileMapper extends BaseMapper {
Integer mediaFileCount(@Param("jobId") String jobId);
+
+ List getListBywaylineDeviceJobBo(@Param("waylineDeviceJobBo") WaylineDeviceJobBo waylineDeviceJobBo);
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
index 5647319..4f3a256 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java
@@ -1,8 +1,10 @@
package org.dromara.sample.media.service;
+import org.apache.ibatis.annotations.Param;
import org.dromara.common.sdk.cloudapi.media.FlightTask;
import org.dromara.common.sdk.cloudapi.media.MediaUploadCallbackRequest;
import org.dromara.common.sdk.common.PaginationData;
+import org.dromara.sample.job.WaylineDeviceJobBo;
import org.dromara.sample.media.model.MediaFileDTO;
import org.dromara.sample.media.model.MediaFileEntity;
@@ -99,4 +101,6 @@ public interface IFileService {
String copyFileHttp(String fileUrl, String originFileUrl, String bucketDkcy);
Double getGimbalYawDegree(String fileId);
+
+ List getListBywaylineDeviceJobBo(WaylineDeviceJobBo waylineDeviceJobBo);
}
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 4c08441..74554ef 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
@@ -18,6 +18,7 @@ import org.dromara.common.sdk.cloudapi.media.MediaSubFileTypeEnum;
import org.dromara.common.sdk.cloudapi.media.MediaUploadCallbackRequest;
import org.dromara.common.sdk.common.Pagination;
import org.dromara.common.sdk.common.PaginationData;
+import org.dromara.sample.job.WaylineDeviceJobBo;
import org.dromara.sample.manage.model.dto.DeviceDictionaryDTO;
import org.dromara.sample.manage.service.IDeviceDictionaryService;
import org.dromara.sample.manage.service.IDeviceProService;
@@ -269,6 +270,11 @@ public class FileServiceImpl implements IFileService {
return -1.0;
}
+ @Override
+ public List getListBywaylineDeviceJobBo(WaylineDeviceJobBo waylineDeviceJobBo) {
+ return mapper.getListBywaylineDeviceJobBo(waylineDeviceJobBo);
+ }
+
/**
* Convert the received file object into a database entity object.
* @param file
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 f6f3f1e..4a7b620 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
@@ -95,6 +95,10 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ
objects.forEach(jobKey->{
MediaFileCountDTO mediaFileCountDTO = (MediaFileCountDTO) RedisOpsUtils.hashGet(RedisConst.MEDIA_FILE_PREFIX+sn, jobKey.toString());
Integer filesByJobIdCount = fileService.getFilesByJobIdCount(mediaFileCountDTO.getJobId());
+ if(mediaFileCountDTO.getMediaCount() == null){
+ RedisOpsUtils.hashDel(RedisConst.MEDIA_FILE_PREFIX+sn, new String[]{jobKey.toString()});;
+ return;
+ }
if(filesByJobIdCount >= mediaFileCountDTO.getMediaCount()){
aiCompareQueueService.addWaylineJobToQueue(mediaFileCountDTO.getJobId());
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java
index a35ada5..b04d5d0 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/mapper/IWaylineFileMapper.java
@@ -5,10 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest;
+import org.dromara.sample.job.WaylineDeviceJobBo;
+import org.dromara.sample.media.model.MediaFileEntity;
import org.dromara.sample.wayline.model.dto.AiCompareQueueDTO;
import org.dromara.sample.wayline.model.entity.AiCompareQueueEntity;
import org.dromara.sample.wayline.model.entity.WaylineFileEntity;
+import java.util.List;
+
/**
* @author sean
* @version 0.3
@@ -17,4 +21,6 @@ import org.dromara.sample.wayline.model.entity.WaylineFileEntity;
public interface IWaylineFileMapper extends BaseMapper {
Page getPage(@Param("param") GetWaylineListRequest param, @Param("page") Page> page);
+
+ List getListBywaylineDeviceJobBo(@Param("waylineDeviceJobBo") WaylineDeviceJobBo waylineDeviceJobBo);
}
diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java
index 03f6381..ad635cf 100644
--- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java
+++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineFileService.java
@@ -3,6 +3,8 @@ package org.dromara.sample.wayline.service;
import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListRequest;
import org.dromara.common.sdk.cloudapi.wayline.GetWaylineListResponse;
import org.dromara.common.sdk.common.PaginationData;
+import org.dromara.sample.job.WaylineDeviceJobBo;
+import org.dromara.sample.media.model.MediaFileEntity;
import org.dromara.sample.wayline.model.dto.WaylineFileDTO;
import org.dromara.sample.wayline.model.entity.AudioFileEntity;
import org.dromara.sample.wayline.model.entity.WaylineFileEntity;
@@ -107,4 +109,6 @@ public interface IWaylineFileService {
PaginationData getAudioPage(String workspaceId, int pageNum, int pageSize);
+ List getListBywaylineDeviceJobBo(WaylineDeviceJobBo waylineDeviceJobBo);
+
}
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 2136ead..5ca91a6 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
@@ -30,6 +30,7 @@ import org.dromara.common.sdk.common.Pagination;
import org.dromara.common.sdk.common.PaginationData;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.resource.api.domain.RemoteFile;
+import org.dromara.sample.job.WaylineDeviceJobBo;
import org.dromara.sample.manage.service.IDeviceProService;
import org.dromara.sample.manage.service.IDeviceRedisService;
import org.dromara.sample.wayline.mapper.IAudioFileMapper;
@@ -430,6 +431,11 @@ public class WaylineFileServiceImpl implements IWaylineFileService {
}
+ @Override
+ public List getListBywaylineDeviceJobBo(WaylineDeviceJobBo waylineDeviceJobBo) {
+ return mapper.getListBywaylineDeviceJobBo(waylineDeviceJobBo);
+ }
+
private Optional validKmzFile(MultipartFile file) {
String filename = file.getOriginalFilename();
if (Objects.nonNull(filename) && !filename.endsWith(WAYLINE_FILE_SUFFIX)) {
diff --git a/dk-modules/sample/src/main/resources/mapper/FileMapper.xml b/dk-modules/sample/src/main/resources/mapper/FileMapper.xml
index 4bf1063..d5de27e 100644
--- a/dk-modules/sample/src/main/resources/mapper/FileMapper.xml
+++ b/dk-modules/sample/src/main/resources/mapper/FileMapper.xml
@@ -11,4 +11,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM media_file mf
where mf.job_id = #{jobId}
+
+
diff --git a/dk-modules/sample/src/main/resources/mapper/WaylineDeviceMapper.xml b/dk-modules/sample/src/main/resources/mapper/WaylineDeviceMapper.xml
index e133548..cd24479 100644
--- a/dk-modules/sample/src/main/resources/mapper/WaylineDeviceMapper.xml
+++ b/dk-modules/sample/src/main/resources/mapper/WaylineDeviceMapper.xml
@@ -20,4 +20,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY wf.wayline_id
+