From 725abac64efc098b9ecb7827429f3c47924a00b9 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Fri, 19 Jul 2024 17:42:20 +0800
Subject: [PATCH] 修改航线录像问题,新增图片压缩下载,修改航线
---
src/main/java/com/dji/sample/media/util/ImageDownloaderAndCompressor.java | 103 ++++++++++++
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java | 4
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 47 ++++-
src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java | 2
src/main/java/com/dji/sample/control/model/enums/RemoteDebugMethodEnum.java | 2
src/main/java/com/dji/sample/media/controller/FileController.java | 33 +++
src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java | 6
src/main/java/com/dji/sample/media/util/UnZipPhotoUtil.java | 80 ++++++++++
src/main/java/com/dji/sample/media/service/IFileService.java | 1
src/main/resources/application-dev.yml | 10
src/main/java/com/dji/sample/patches/utils/TimerUtil.java | 188 +++++++++++-----------
src/main/java/com/dji/sample/patches/controller/PatchesController.java | 4
12 files changed, 359 insertions(+), 121 deletions(-)
diff --git a/src/main/java/com/dji/sample/control/model/enums/RemoteDebugMethodEnum.java b/src/main/java/com/dji/sample/control/model/enums/RemoteDebugMethodEnum.java
index 0797662..9df3b33 100644
--- a/src/main/java/com/dji/sample/control/model/enums/RemoteDebugMethodEnum.java
+++ b/src/main/java/com/dji/sample/control/model/enums/RemoteDebugMethodEnum.java
@@ -51,7 +51,7 @@
CHARGE_CLOSE("charge_close", true, null),
BATTERY_MAINTENANCE_SWITCH("battery_maintenance_switch", true, AlarmState.class),
-
+
ALARM_STATE_SWITCH("alarm_state_switch", true, AlarmState.class),
BATTERY_STORE_MODE_SWITCH("battery_store_mode_switch", true, BatteryStoreMode.class),
diff --git a/src/main/java/com/dji/sample/media/controller/FileController.java b/src/main/java/com/dji/sample/media/controller/FileController.java
index 785b2d0..5200eea 100644
--- a/src/main/java/com/dji/sample/media/controller/FileController.java
+++ b/src/main/java/com/dji/sample/media/controller/FileController.java
@@ -8,6 +8,7 @@
import com.dji.sample.media.model.MediaFileEntity;
import com.dji.sample.media.model.MediaFileQueryParam;
import com.dji.sample.media.service.IFileService;
+import com.dji.sample.media.util.ImageDownloaderAndCompressor;
import com.drew.imaging.ImageProcessingException;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,14 +16,18 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletResponseWrapper;
import java.awt.*;
+import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
+import static com.dji.sample.media.util.ImageDownloaderAndCompressor.*;
/**
* @author sean
@@ -65,15 +70,15 @@
@RequestParam(name = "page_size", defaultValue = "10") int pageSize,
@PathVariable(name = "workspace_id") String workspaceId
) {
- return ResponseResult.success(fileService.getPhotoByJobId(page,pageSize,workspaceId, jobId));
+ return ResponseResult.success(fileService.getPhotoByJobId(page, pageSize, workspaceId, jobId));
}
@GetMapping("/{workspace_id}/getJobIds")
public ResponseResult getJobIds(@PathVariable(name = "workspace_id") String workspaceId,
@RequestParam(defaultValue = "1") int page,
@RequestParam(name = "page_size", defaultValue = "10") int pageSize
- ) {
- return ResponseResult.success(fileService.getJobId(page,pageSize,workspaceId));
+ ) {
+ return ResponseResult.success(fileService.getJobId(page, pageSize, workspaceId));
}
@PutMapping("/examine")
@@ -165,4 +170,24 @@
e.printStackTrace();
}
}
-}
+
+
+ private static final String BASE_URL = "http://dev.jxpskj.com:9000/cloud-bucket";
+
+ @GetMapping("/download-images")
+ public void downloadImages(@RequestParam String jobId, HttpServletResponse response) {
+ List<MediaFileEntity> entities = fileService.getMedia(jobId);
+ List<String> urls = entities.stream()
+ .map(MediaFileEntity::getObjectKey)
+ .map(objectKey -> BASE_URL + objectKey)
+ .collect(Collectors.toList());
+
+ String outputFolder = "images"; // 存放图片的文件夹
+ new File(outputFolder).mkdirs(); // 创建文件夹
+
+ downloadAndSaveImages(urls, outputFolder);
+ zipAndSendFolder(outputFolder, response);
+ cleanUp(outputFolder);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/dji/sample/media/service/IFileService.java b/src/main/java/com/dji/sample/media/service/IFileService.java
index 4b1a7d4..5e0389f 100644
--- a/src/main/java/com/dji/sample/media/service/IFileService.java
+++ b/src/main/java/com/dji/sample/media/service/IFileService.java
@@ -55,6 +55,7 @@
* @return
*/
Object mediaInfo(String fileId);
+ List<MediaFileEntity> getMedia(String jobId);
/**
* Query information about all files in this workspace based on the workspace id.
*
diff --git a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
index f0809a9..6b52db1 100644
--- a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
@@ -112,10 +112,12 @@
MediaFileEntity fileEntity = this.fileUploadConvertToEntity(file);
fileEntity.setWorkspaceId(workspaceId);
fileEntity.setFileId(UUID.randomUUID().toString());
+ if (!file.getObjectKey().endsWith(".mp4")){
String url = pojo.getEndpoint() + "/" + pojo.getBucket() + file.getObjectKey();
File file1 = TbFjServiceImpl.downloadFile(url);
Object data = ImgUtil.getInfo(file1);
fileEntity.setDroneData(data);
+ }
return mapper.insert(fileEntity);
}
@@ -787,8 +789,8 @@
e.printStackTrace();
}
}
-
- public PaginationData<MediaFileEntity> getJobId( int pageNum, int pageSize,String workspaceId) {
+ @Override
+ public PaginationData<MediaFileEntity> getJobId(int pageNum, int pageSize, String workspaceId) {
// 分页查询
Page<MediaFileEntity> page = new Page<>(pageNum, pageSize);
Page<MediaFileEntity> resultPage = mapper.selectPage(page, new LambdaQueryWrapper<MediaFileEntity>()
@@ -810,14 +812,26 @@
List<MediaFileEntity> uniqueFiles = new ArrayList<>(uniqueFilesMap.values());
- // 使用分页对象构造 Pagination
- Pagination pagination = new Pagination(resultPage);
- return new PaginationData<>(uniqueFiles, pagination);
+ // 使用去重后的列表重新计算总数
+ int uniqueTotal = uniqueFiles.size();
+
+ // 创建新的分页对象,使用去重后的总数
+ Page<MediaFileEntity> uniquePage = new Page<>(pageNum, pageSize, uniqueTotal);
+
+ // 截取当前页的数据
+ int fromIndex = Math.min((pageNum - 1) * pageSize, uniqueTotal);
+ int toIndex = Math.min(fromIndex + pageSize, uniqueTotal);
+ List<MediaFileEntity> pagedUniqueFiles = uniqueFiles.subList(fromIndex, toIndex);
+
+ // 使用新的分页对象构造 Pagination
+ Pagination pagination = new Pagination(uniquePage);
+
+ return new PaginationData<>(pagedUniqueFiles, pagination);
}
@Override
- public PaginationData<MediaFileEntity> getPhotoByJobId(int pageNum,int pageSize,String workspaceId, String jobId) {
+ public PaginationData<MediaFileEntity> getPhotoByJobId(int pageNum, int pageSize, String workspaceId, String jobId) {
// 分页查询
Page<MediaFileEntity> page = new Page<>(pageNum, pageSize);
@@ -837,13 +851,28 @@
List<MediaFileEntity> uniqueFiles = new ArrayList<>(uniqueFilesMap.values());
- // 使用分页对象构造 Pagination
- Pagination pagination = new Pagination(resultPage);
- return new PaginationData<>(uniqueFiles, pagination);
+ // 使用去重后的列表重新计算总数
+ int uniqueTotal = uniqueFiles.size();
+ // 创建新的分页对象,使用去重后的总数
+ Page<MediaFileEntity> uniquePage = new Page<>(pageNum, pageSize, uniqueTotal);
+
+ // 截取当前页的数据
+ int fromIndex = Math.min((pageNum - 1) * pageSize, uniqueTotal);
+ int toIndex = Math.min(fromIndex + pageSize, uniqueTotal);
+ List<MediaFileEntity> pagedUniqueFiles = uniqueFiles.subList(fromIndex, toIndex);
+
+ // 使用新的分页对象构造 Pagination
+ Pagination pagination = new Pagination(uniquePage);
+
+ return new PaginationData<>(pagedUniqueFiles, pagination);
}
+
+ public List<MediaFileEntity> getMedia(String jobId){
+ return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>().eq(MediaFileEntity::getJobId,jobId));
+ }
public void updateById(Integer id, MediaFileMarkEntity entity) {
entity.setIsadd(1);
UpdateWrapper<MediaFileMarkEntity> updateWrapper = new UpdateWrapper<>();
diff --git a/src/main/java/com/dji/sample/media/util/ImageDownloaderAndCompressor.java b/src/main/java/com/dji/sample/media/util/ImageDownloaderAndCompressor.java
new file mode 100644
index 0000000..d5f98b8
--- /dev/null
+++ b/src/main/java/com/dji/sample/media/util/ImageDownloaderAndCompressor.java
@@ -0,0 +1,103 @@
+package com.dji.sample.media.util;
+
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.URL;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+
+public class ImageDownloaderAndCompressor {
+
+
+ public static void downloadAndSaveImages(List<String> urls, String outputFolder) {
+ int count = 0;
+ for (String imageUrl : urls) {
+ try {
+ // 下载图片
+ URL url = new URL(imageUrl);
+ BufferedImage image = ImageIO.read(url);
+ // 保存图片
+ File outputfile = new File(outputFolder, "image_" + (count++) + ".jpg");
+ ImageIO.write(image, "jpg", outputfile);
+ System.out.println("Saved: " + outputfile.getAbsolutePath());
+ } catch (IOException e) {
+ System.err.println("Failed to download image: " + imageUrl);
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public static void zipAndSendFolder(String folderName, HttpServletResponse response) {
+ try {
+ File zipFile = new File(folderName + ".zip");
+ zipFolder(folderName, zipFile.getPath());
+
+ // 设置响应头
+ response.setContentType("application/zip");
+ response.setHeader("Content-Disposition", "attachment; filename=" + zipFile.getName());
+ response.setContentLength((int) zipFile.length());
+
+ // 将压缩文件写入响应
+ try (InputStream is = new FileInputStream(zipFile);
+ OutputStream os = response.getOutputStream()) {
+ byte[] buffer = new byte[1024];
+ int length;
+ while ((length = is.read(buffer)) > 0) {
+ os.write(buffer, 0, length);
+ }
+ }
+
+ // 删除临时压缩文件
+ zipFile.delete();
+
+ } catch (IOException e) {
+ System.err.println("Failed to compress or send folder: " + folderName);
+ e.printStackTrace();
+ }
+ }
+
+ public static void zipFolder(String srcFolder, String destZipFile) throws IOException {
+ try (FileOutputStream fos = new FileOutputStream(destZipFile);
+ ZipOutputStream zos = new ZipOutputStream(fos)) {
+
+ File srcFile = new File(srcFolder);
+ for (File file : srcFile.listFiles()) {
+ try (FileInputStream fis = new FileInputStream(file)) {
+ ZipEntry zipEntry = new ZipEntry(file.getName());
+ zos.putNextEntry(zipEntry);
+
+ byte[] bytes = new byte[1024];
+ int length;
+ while ((length = fis.read(bytes)) >= 0) {
+ zos.write(bytes, 0, length);
+ }
+ zos.closeEntry();
+ }
+ }
+ }
+ }
+
+ public static void cleanUp(String folderName) {
+ File folder = new File(folderName);
+ deleteFolder(folder);
+ }
+
+ public static void deleteFolder(File folder) {
+ File[] files = folder.listFiles();
+ if (files != null) {
+ for (File f : files) {
+ if (f.isDirectory()) {
+ deleteFolder(f);
+ } else {
+ f.delete();
+ }
+ }
+ }
+ folder.delete();
+ }
+
+}
+
diff --git a/src/main/java/com/dji/sample/media/util/UnZipPhotoUtil.java b/src/main/java/com/dji/sample/media/util/UnZipPhotoUtil.java
new file mode 100644
index 0000000..45789c9
--- /dev/null
+++ b/src/main/java/com/dji/sample/media/util/UnZipPhotoUtil.java
@@ -0,0 +1,80 @@
+package com.dji.sample.media.util;
+
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+import java.util.Objects;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class UnZipPhotoUtil {
+
+ public static void downloadAndSaveImages(List<String> urls, String outputFolder) throws IOException {
+ int count = 0;
+ for (String imageUrl : urls) {
+ try {
+ // 下载图片
+ URL url = new URL(imageUrl);
+ BufferedImage image = ImageIO.read(url);
+
+ // 保存图片
+ File outputfile = new File(outputFolder, "image_" + (count++) + ".jpg");
+ ImageIO.write(image, "jpg", outputfile);
+ System.out.println("Saved: " + outputfile.getAbsolutePath());
+ } catch (IOException e) {
+ System.err.println("Failed to download image: " + imageUrl);
+ e.printStackTrace();
+ throw e;
+ }
+ }
+ }
+
+ public static void zipFolder(String srcFolder, String destZipFile) throws IOException {
+ try (FileOutputStream fos = new FileOutputStream(destZipFile);
+ ZipOutputStream zos = new ZipOutputStream(fos)) {
+
+ File srcFile = new File(srcFolder);
+ for (File file : Objects.requireNonNull(srcFile.listFiles())) {
+ try (FileInputStream fis = new FileInputStream(file)) {
+ ZipEntry zipEntry = new ZipEntry(file.getName());
+ zos.putNextEntry(zipEntry);
+
+ byte[] bytes = new byte[1024];
+ int length;
+ while ((length = fis.read(bytes)) >= 0) {
+ zos.write(bytes, 0, length);
+ }
+ zos.closeEntry();
+ } catch (IOException e) {
+ System.err.println("Failed to zip file: " + file.getPath());
+ e.printStackTrace();
+ throw e;
+ }
+ }
+ }
+ }
+
+ public static void cleanUp(String folderName) {
+ File folder = new File(folderName);
+ deleteFolder(folder);
+ }
+
+ public static void deleteFolder(File folder) {
+ File[] files = folder.listFiles();
+ if (files != null) {
+ for (File f : files) {
+ if (f.isDirectory()) {
+ deleteFolder(f);
+ } else {
+ f.delete();
+ }
+ }
+ }
+ folder.delete();
+ }
+}
diff --git a/src/main/java/com/dji/sample/patches/controller/PatchesController.java b/src/main/java/com/dji/sample/patches/controller/PatchesController.java
index dcac859..4482c90 100644
--- a/src/main/java/com/dji/sample/patches/controller/PatchesController.java
+++ b/src/main/java/com/dji/sample/patches/controller/PatchesController.java
@@ -143,7 +143,7 @@
@RequestParam String patchesId,
@RequestParam double lat,
@RequestParam double lon,
- @RequestParam String isTemp,
+ @RequestParam(defaultValue = "1",required = false) String isTemp,
HttpServletRequest request) throws IOException {
CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
String creator = customClaim.getUsername();
@@ -165,7 +165,7 @@
@GetMapping("/useMyTask")
public ResponseResult useMyTask() throws Exception {
try {
- TimerUtil.mytask10();
+// TimerUtil.mytask10();
// timerUtil.myTask2();
// timerUtil.myTask3();
// timerUtil.mytask4();
diff --git a/src/main/java/com/dji/sample/patches/utils/TimerUtil.java b/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
index 3ba0976..ea616f4 100644
--- a/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
@@ -142,100 +142,100 @@
// waylineJobService.publishOneFlightTask(waylineJobDTO.get());
// }
// }
- @Scheduled(cron = "0 0 1 * * ?")
- public void mytask4() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(8);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("别墅巡查一段", "2a44748a-1500-406f-80cf-ad92186fe8d2", times, lists1, listOfLists);
- }
-
- @Scheduled(cron = "0 50 0 * * ?")
- public void mytask5() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(9);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("别墅巡查二段", "a07229af-471a-4058-9da6-5a2b84308b9e", times, lists1, listOfLists);
- }
-
- @Scheduled(cron = "0 40 1 * * ?")
- public void mytask6() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(9);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("九洲巡河一段", "9f471686-a73a-4e90-8f37-92eed8ed5929", times, lists1, listOfLists);
- }
-
- @Scheduled(cron = "0 40 2 * * ?")
- public void mytask7() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(9);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("九洲巡河二段", "58cd4261-02d7-4c4e-b876-25a4a2630c18", times, lists1, listOfLists);
- }
-
- @Scheduled(cron = "0 30 2 * * ?")
- public void mytask8() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(12);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("定时任务2:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists);
- }
- @Scheduled(cron = "0 30 2 * * ?")
- public void mytask9() throws IOException {
- Long time = getCurrentTimestampPlus8Hours(14);
- List<List<Long>> listOfLists = new ArrayList<>();
- List<Long> sublist = new ArrayList<>();
- sublist.add(time); // 添加整数值
- listOfLists.add(sublist);
- List<Long> lists1 = new ArrayList<>();
- lists1.add(time);
- String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("定时任务4:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists);
- }
- @Scheduled(cron = "0 0 6 * * ?")
- public static void mytask10() {
- File directory = new File("/tmp");
- String[] partialFileNames = {"temp", "mark"}; // 要匹配的部分文件名
- if (directory.isDirectory()) {
- File[] files = directory.listFiles();
- if (files != null) {
- for (File file : files) {
- for (String partialFileName : partialFileNames) {
- if (file.isFile() && file.getName().contains(partialFileName)) {
- file.delete();
- break; // 跳出内层循环,以免重复删除同一个文件
- }
- }
- }
- }
- }
- }
+// @Scheduled(cron = "0 0 1 * * ?")
+// public void mytask4() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(8);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("别墅巡查一段", "2a44748a-1500-406f-80cf-ad92186fe8d2", times, lists1, listOfLists);
+// }
+//
+// @Scheduled(cron = "0 50 0 * * ?")
+// public void mytask5() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(9);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("别墅巡查二段", "a07229af-471a-4058-9da6-5a2b84308b9e", times, lists1, listOfLists);
+// }
+//
+// @Scheduled(cron = "0 40 1 * * ?")
+// public void mytask6() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(9);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("九洲巡河一段", "9f471686-a73a-4e90-8f37-92eed8ed5929", times, lists1, listOfLists);
+// }
+//
+// @Scheduled(cron = "0 40 2 * * ?")
+// public void mytask7() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(9);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("九洲巡河二段", "58cd4261-02d7-4c4e-b876-25a4a2630c18", times, lists1, listOfLists);
+// }
+//
+// @Scheduled(cron = "0 30 2 * * ?")
+// public void mytask8() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(12);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("定时任务2:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists);
+// }
+// @Scheduled(cron = "0 30 2 * * ?")
+// public void mytask9() throws IOException {
+// Long time = getCurrentTimestampPlus8Hours(14);
+// List<List<Long>> listOfLists = new ArrayList<>();
+// List<Long> sublist = new ArrayList<>();
+// sublist.add(time); // 添加整数值
+// listOfLists.add(sublist);
+// List<Long> lists1 = new ArrayList<>();
+// lists1.add(time);
+// String times = convertTimestampToFormattedString(time);
+// sendPostWithParameters("定时任务4:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists);
+// }
+// @Scheduled(cron = "0 0 6 * * ?")
+// public static void mytask10() {
+// File directory = new File("/tmp");
+// String[] partialFileNames = {"temp", "mark"}; // 要匹配的部分文件名
+// if (directory.isDirectory()) {
+// File[] files = directory.listFiles();
+// if (files != null) {
+// for (File file : files) {
+// for (String partialFileName : partialFileNames) {
+// if (file.isFile() && file.getName().contains(partialFileName)) {
+// file.delete();
+// break; // 跳出内层循环,以免重复删除同一个文件
+// }
+// }
+// }
+// }
+// }
+// }
/**
* 完成对未推送的图斑数据进行整合发送
*
diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
index 61f86c0..6351f52 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -230,14 +230,14 @@
public ResponseResult importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,
HttpServletRequest request, MultipartFile file,
@RequestParam(required = false) String patchesId,
- @RequestParam(defaultValue = "1") String isTemp
+ @RequestParam(defaultValue = "1",required = false) String isTemp
) {
if (Objects.isNull(file)) {
return ResponseResult.error("未上传文件");
}
CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
String creator = customClaim.getUsername();
- String back = waylineFileService.importKmzFile(file, workspaceId, creator, patchesId, isTemp);
+ String back = waylineFileService.importKmzFile(file, workspaceId, creator, patchesId,isTemp);
if (back != null) {
return ResponseResult.error(back);
}
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
index f27f3a2..ab4c9fd 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java
@@ -78,7 +78,7 @@
@ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FLIGHT_TASK_PROGRESS, outputChannel = ChannelName.OUTBOUND_EVENTS)
public CommonTopicReceiver handleProgress(CommonTopicReceiver receiver, MessageHeaders headers) {
log.info("上报航线任务进度: {}", receiver.toString());
- EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
+ EventsReceiver<WaylineTaskProgressReceiver> eventsReceiver = mapper.convertValue(receiver.getData(),
new TypeReference<EventsReceiver<WaylineTaskProgressReceiver>>(){});
eventsReceiver.setBid(receiver.getBid());
eventsReceiver.setSn(receiver.getGateway());
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
index 29a93f8..96f433a 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
@@ -155,7 +155,7 @@
}
@Override
- public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId, String isTemp) {
+ public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId,String isTemp) {
metadata.setPatchesId(patchesId);
WaylineFileEntity file = this.dtoConvertToEntity(metadata);
file.setWaylineId(UUID.randomUUID().toString());
@@ -219,7 +219,7 @@
}
@Override
- public String importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId, String isTemp) {
+ public String importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId,String isTemp) {
Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
if (waylineFileOpt.isEmpty()) {
throw new RuntimeException("文件格式错误");
@@ -232,7 +232,7 @@
waylineFile.setIsTemp(isTemp);
back = ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
if (back == null) {
- this.saveWaylineFiles(workspaceId, waylineFile, patchesId, isTemp);
+ this.saveWaylineFiles(workspaceId, waylineFile, patchesId,isTemp);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 594ce31..764dc55 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -85,15 +85,15 @@
oss:
enable: true
provider: minio
- endpoint: http://139.196.74.78:9000
- external-endpoint: http://139.196.74.78:9000
- access-key: sxkj
- secret-key: sxkj2024
+ endpoint: http://dev.jxpskj.com:9000
+ external-endpoint: http://dev.jxpskj.com:9000
+ access-key: pskj
+ secret-key: pskj@2021
bucket: cloud-bucket
expire: 3600
region: us-east-1
object-dir-prefix:
- out-net-file-address: https://wrj.shuixiongit.com/minio
+ out-net-file-address: https://dev.jxpskj.com:8026
#图斑的解压地址和图斑文件转航线文件的地址
patches:
--
Gitblit v1.9.3