From 1fc2b9a38ce7fb5f0a78361a731e98750fbd20c1 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Mon, 24 Jun 2024 10:28:09 +0800
Subject: [PATCH] 定时四个九洲巡查任务,新增媒体文件任务查询、搜索接口
---
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 52 +++++++++++++
src/main/java/com/dji/sample/media/controller/FileController.java | 15 +++
src/main/java/com/dji/sample/media/model/MediaFileEntity.java | 2
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java | 4 +
src/main/java/com/dji/sample/media/service/IFileService.java | 2
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 32 ++++++-
src/main/java/com/dji/sample/patches/utils/TimerUtil.java | 74 ++++++++++++++----
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | 2
src/main/java/com/dji/sample/patches/controller/PatchesController.java | 29 ++++--
9 files changed, 177 insertions(+), 35 deletions(-)
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 13dd656..eff6ca0 100644
--- a/src/main/java/com/dji/sample/media/controller/FileController.java
+++ b/src/main/java/com/dji/sample/media/controller/FileController.java
@@ -58,7 +58,6 @@
return ResponseResult.success(entityList);
}
-
@PutMapping("/examine")
public ResponseResult examineData(@RequestParam String fileId) {
return fileService.updateExamByFileId(fileId);
@@ -74,6 +73,20 @@
return ResponseResult.success(fileService.listMediaFileEntity(workspaceId, jobId));
}
+ @GetMapping("dataShow/{workspace_id}")
+ public ResponseResult getMeidaData(@PathVariable(name = "workspace_id") String workspaceId,
+ @RequestParam Integer page,
+ @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
+ @RequestParam(name = "photoStart", required = false) Long updateStart,
+ @RequestParam(name = "photoEnd", required = false) Long updateEnd,
+ @RequestParam(name = "updateStart", required = false) Long photoStart,
+ @RequestParam(name = "updateEnd", required = false) Long photoEnd,
+ @RequestParam(name = "jobName", required = false) String jobName) {
+
+ return ResponseResult.success(fileService.MediaQuery(page, pageSize, updateStart, updateEnd, photoStart, photoEnd, jobName,workspaceId));
+
+ }
+
@PostMapping("/{workspace_id}/updateFile")
public ResponseResult updateFile(HttpServletRequest request, @PathVariable(name = "workspace_id") String workspaceId, @RequestBody MediaFileEntity mediaFileEntity) {
CustomClaim claims = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
diff --git a/src/main/java/com/dji/sample/media/model/MediaFileEntity.java b/src/main/java/com/dji/sample/media/model/MediaFileEntity.java
index 1babeb3..2a0093b 100644
--- a/src/main/java/com/dji/sample/media/model/MediaFileEntity.java
+++ b/src/main/java/com/dji/sample/media/model/MediaFileEntity.java
@@ -78,6 +78,8 @@
@TableField("examine")
private Integer examine;
+ @TableField("job_name")
+ private String jobName;
}
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 a4fc934..5cc4242 100644
--- a/src/main/java/com/dji/sample/media/service/IFileService.java
+++ b/src/main/java/com/dji/sample/media/service/IFileService.java
@@ -1,5 +1,6 @@
package com.dji.sample.media.service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.media.model.FileUploadDTO;
@@ -62,6 +63,7 @@
*/
List<MediaFileDTO> getAllFilesByWorkspaceId(String workspaceId);
+ PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName,String worksapceId);
/**
* 获取图斑图片集合
* @param dkbh
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 7b739d0..f69292b 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
@@ -20,10 +20,12 @@
import com.dji.sample.media.util.ImgUtil;
import com.dji.sample.patches.dao.GetPatchesMapper;
import com.dji.sample.patches.model.entity.LotInfo;
+import com.dji.sample.patches.utils.DistrictCodeUtils;
import com.dji.sample.patches.utils.TimerUtil;
import com.dji.sample.territory.pojo.TerritoryConfigPojo;
import com.dji.sample.territory.service.impl.TbFjServiceImpl;
import com.dji.sample.territory.utils.WaterMarkUtil;
+import com.dji.sample.wayline.service.IWaylineJobService;
import com.drew.imaging.ImageProcessingException;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
@@ -64,6 +66,9 @@
private OssServiceContext ossService;
@Autowired
private TerritoryConfigPojo territoryConfigPojo;
+ @Autowired
+ private IWaylineJobService waylineJobService;
+
private Optional<MediaFileEntity> getMediaByFingerprint(String workspaceId, String fingerprint) {
MediaFileEntity fileEntity = mapper.selectOne(new LambdaQueryWrapper<MediaFileEntity>()
.eq(MediaFileEntity::getWorkspaceId, workspaceId)
@@ -153,6 +158,48 @@
}
@Override
+ public PaginationData<MediaFileEntity> MediaQuery(Integer page, Integer pageSize, Long updateStart, Long updateEnd, Long photoStart, Long photoEnd, String jobName, String workspaceId) {
+ // 创建分页对象
+ Page<MediaFileEntity> pageObj = new Page<>(page, pageSize);
+
+ // 创建查询条件对象
+ LambdaQueryWrapper<MediaFileEntity> queryWrapper = new LambdaQueryWrapper<>();
+
+ // 添加查询条件
+ queryWrapper.eq(MediaFileEntity::getWorkspaceId,workspaceId);
+
+ if (updateStart != null && updateEnd != null) {
+ queryWrapper.between(MediaFileEntity::getCreateTime, updateStart, updateEnd);
+ }
+
+ if (photoStart != null && photoEnd != null) {
+ queryWrapper.apply("JSON_UNQUOTE(JSON_EXTRACT(metadata, '$.createdTime')) BETWEEN {0} AND {1}", photoStart, photoEnd);
+ }
+
+ if (jobName != null && !jobName.isEmpty()) {
+ List<String> jobIds = waylineJobService.getJobId(jobName);
+ queryWrapper.in(MediaFileEntity::getJobId, jobIds);
+ }
+
+ // 执行分页查询
+ Page<MediaFileEntity> resultPage = mapper.selectPage(pageObj, queryWrapper);
+
+ // 处理查询结果
+ List<MediaFileEntity> records = resultPage.getRecords()
+ .stream()
+ .peek(mediaFile -> {
+ // 获取任务名称并设置到fileId
+ String taskNameResult = waylineJobService.getName(mediaFile.getJobId());
+ mediaFile.setJobName(taskNameResult);
+ })
+ .collect(Collectors.toList());
+
+// 返回分页数据
+ return new PaginationData<>(records, new Pagination(resultPage));
+
+ }
+
+ @Override
public List<MediaFileEntity> listMediaFileEntity(String workspaceId, String jobId) {
return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
.eq(MediaFileEntity::getWorkspaceId, workspaceId).eq(MediaFileEntity::getJobId, jobId));
@@ -201,6 +248,11 @@
List<MediaFileEntity> records = pageData.getRecords()
.stream()
+ .peek(mediaFile -> {
+ // 获取任务名称并设置到fileId
+ String taskNameResult = waylineJobService.getName(mediaFile.getJobId());
+ mediaFile.setJobName(taskNameResult);
+ })
.collect(Collectors.toList());
return new PaginationData<MediaFileEntity>(records, new Pagination(pageData));
}
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 5860f0b..1a845ad 100644
--- a/src/main/java/com/dji/sample/patches/controller/PatchesController.java
+++ b/src/main/java/com/dji/sample/patches/controller/PatchesController.java
@@ -28,6 +28,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
@@ -151,6 +153,9 @@
// timerUtil.myTask2();
// timerUtil.myTask3();
timerUtil.mytask4();
+ timerUtil.mytask5();
+ timerUtil.mytask6();
+ timerUtil.mytask7();
} catch (Exception e) {
throw new RuntimeException("db存储发送出现异常" + e);
@@ -158,16 +163,20 @@
return ResponseResult.success();
}
- // @GetMapping ("/tests")
-// public ResponseResult use() {
-// try {
-// TimerUtil.sendPostWithFileAndParameter("src/main/resources/tmp/20240613/205621_635148ea-0ddb-4b23-945c-8a67abd813c9.db",
-// "635148ea-0ddb-4b23-945c-8a67abd813c9");
-// } catch (IOException e) {
-// throw new RuntimeException(e);
-// }
-// return ResponseResult.success();
-// }
+ @GetMapping ("/tests")
+ public ResponseResult use() {
+ ExecutorService executor = Executors.newSingleThreadExecutor();
+ executor.execute(() -> {
+ try {
+ timerUtil.sendPostWithFileAndParameter("DB/result_db.db",
+ "635148ea-0ddb-4b23-945c-8a67abd813c9");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ });
+ executor.shutdown();
+ return ResponseResult.success();
+ }
@PostMapping("/way")
public void getway(@RequestParam("file") MultipartFile file,
@RequestParam String workspaceId,
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 ace82b0..4230895 100644
--- a/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/TimerUtil.java
@@ -114,7 +114,7 @@
String times = convertTimestampToFormattedString(time);
sendPostWithParameters(waylineName, waylineFile.getWaylineId(), times, lists1, listOfLists);
updatePatchesStatu(list);
- time = addOneHourToTimestamp(time);
+ time = addOneHourToTimestamp(time,1,30);
}
}
@@ -132,16 +132,16 @@
executor.shutdown();
}
- public void myTask3() throws SQLException {
- String workspaceId = "4a574db8-4ad3-48f7-9f16-3edbcd8056e1";
- String name = getNowDay();
- List<String> jobs = waylineJobService.selectJobIdByName(name);
- List<String> jobIds = jobBreakPointService.selectHaveBreak(jobs);
- for (String jobid : jobIds) {
- Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, jobid, true);
- waylineJobService.publishOneFlightTask(waylineJobDTO.get());
- }
- }
+ // public void myTask3() throws SQLException {
+// String workspaceId = "4a574db8-4ad3-48f7-9f16-3edbcd8056e1";
+// String name = getNowDay();
+// List<String> jobs = waylineJobService.selectJobIdByName(name);
+// List<String> jobIds = jobBreakPointService.selectHaveBreak(jobs);
+// for (String jobid : jobIds) {
+// Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, jobid, true);
+// waylineJobService.publishOneFlightTask(waylineJobDTO.get());
+// }
+// }
@Scheduled(cron = "0 0 0 * * ?")
public void mytask4() throws IOException {
Long time = getCurrentTimestampPlus8Hours(9);
@@ -152,7 +152,46 @@
List<Long> lists1 = new ArrayList<>();
lists1.add(time);
String times = convertTimestampToFormattedString(time);
- sendPostWithParameters("九洲巡查","73e14492-f1b2-4fc4-81c0-7ca65cd3bc56", times, lists1, listOfLists);
+ sendPostWithParameters("别墅巡查一段", "a07229af-471a-4058-9da6-5a2b84308b9e", times, lists1, listOfLists);
+ }
+
+ @Scheduled(cron = "0 0 0 * * ?")
+ public void mytask5() throws IOException {
+ Long time = getCurrentTimestampPlus8Hours(10);
+ 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("别墅巡查二段", "561ecb37-d673-40f8-a859-05dbfc7d9976", times, lists1, listOfLists);
+ }
+
+ @Scheduled(cron = "0 0 0 * * ?")
+ public void mytask6() throws IOException {
+ Long time = getCurrentTimestampPlus8Hours(11);
+ 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 0 0 * * ?")
+ public void mytask7() throws IOException {
+ Long time = getCurrentTimestampPlus8Hours(13);
+ 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);
}
/**
@@ -185,7 +224,7 @@
dbSave(territoryConfigPojo.getResult(), territoryConfigPojo.getResultsave(), taskId);
//发送请求给第三方接口
- sendPostWithFileAndParameter(territoryConfigPojo.getResult(), taskId, dkbh, workspaceId);
+ sendPostWithFileAndParameter(territoryConfigPojo.getResult(), taskId);
}
}
@@ -351,7 +390,7 @@
* @param taskId
* @throws IOException
*/
- public void sendPostWithFileAndParameter(String filePath, String taskId, String dkbh, String workspaceId) throws IOException {
+ public void sendPostWithFileAndParameter(String filePath, String taskId) throws IOException {
// 创建 RestTemplate 实例
try {
RestTemplate restTemplate = new RestTemplate();
@@ -373,12 +412,11 @@
// 发送请求
ResponseEntity<String> response = restTemplate.exchange(
- "http://39.98.48.180:8087/landCloudWork/artifact/media/upload.action",
+ "https://jxlandcloud.org.cn/landCloudWork/artifact/media/upload.action",
// "http://localhost:6789/territory/tbdkjbxx/upload",
HttpMethod.POST,
requestEntity,
String.class);
- System.out.println(response);
} catch (Exception e) {
throw new IllegalArgumentException("db推送失败" + e.getMessage());
}
@@ -548,7 +586,7 @@
return timestamp / 1000;
}
- public static Long addOneHourToTimestamp(Long timestampInSeconds) {
+ public static Long addOneHourToTimestamp(Long timestampInSeconds,long hours,long min) {
// 将输入的秒级时间戳转换为Instant对象
Instant instant = Instant.ofEpochSecond(timestampInSeconds);
@@ -556,7 +594,7 @@
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
// 加上一小时
- ZonedDateTime zonedDateTimePlusOneHour = zonedDateTime.plusHours(1).plusMinutes(30);
+ ZonedDateTime zonedDateTimePlusOneHour = zonedDateTime.plusHours(hours).plusMinutes(min);
// 将ZonedDateTime对象转换回秒级时间戳
return zonedDateTimePlusOneHour.toInstant().getEpochSecond();
diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
index b0a3ac9..5d9fdf8 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -194,6 +194,10 @@
return ResponseResult.success(waylineJobCountDTO);
}
+ @GetMapping("/idToName")
+ public ResponseResult findName(@RequestParam String jobid) {
+ return ResponseResult.success(waylineJobService.getName(jobid));
+ }
/**
* 收藏媒体库
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
index 96c9de4..cce52f0 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -170,6 +170,8 @@
* @return
*/
WaylineJobStatusEnum getWaylineState(String dockSn);
+ String getName(String jobId);
+ List<String> getJobId(String jobName);
/**
* 获取最新的航线任务
diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
index f55eefa..9e22c2e 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -15,15 +15,11 @@
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.common.util.MinioUrlUtils;
-import com.dji.sample.common.util.SpringBeanUtils;
import com.dji.sample.component.mqtt.model.*;
import com.dji.sample.component.mqtt.service.IMessageSenderService;
import com.dji.sample.component.redis.RedisConst;
import com.dji.sample.component.redis.RedisOpsUtils;
import com.dji.sample.control.model.dto.PointDTO;
-import com.dji.sample.control.model.enums.CameraModeEnum;
-import com.dji.sample.control.model.enums.DroneAuthorityEnum;
-import com.dji.sample.control.model.enums.PayloadCommandsEnum;
import com.dji.sample.control.model.param.*;
import com.dji.sample.control.service.IControlService;
import com.dji.sample.control.service.IDrcService;
@@ -66,7 +62,6 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
-import java.io.File;
import java.net.URL;
import java.sql.SQLException;
import java.time.*;
@@ -664,7 +659,6 @@
}
-
@Override
public void uploadMediaHighestPriority(String workspaceId, String jobId) {
Optional<WaylineJobDTO> jobOpt = getJobByJobId(workspaceId, jobId);
@@ -768,6 +762,32 @@
}
@Override
+ public String getName(String jobId) {
+ WaylineJobEntity entity = mapper.selectOne(
+ new LambdaQueryWrapper<WaylineJobEntity>()
+ .select(WaylineJobEntity::getName)
+ .eq(WaylineJobEntity::getJobId, jobId)
+ );
+ return entity != null ? entity.getName() : null;
+ }
+
+ @Override
+ public List<String> getJobId(String jobName) {
+ List<Object> jobIdList = mapper.selectObjs(
+ new LambdaQueryWrapper<WaylineJobEntity>()
+ .select(WaylineJobEntity::getJobId)
+ .eq(WaylineJobEntity::getName, jobName)
+ );
+
+// 将 Object 类型的 jobId 转换为 String 类型,并放入 List<String> 中
+ List<String> jobIdStringList = new ArrayList<>();
+ for (Object jobIdObj : jobIdList) {
+ jobIdStringList.add(String.valueOf(jobIdObj));
+ }
+ return jobIdStringList;
+ }
+
+ @Override
public WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
WaylineJobEntity waylineJobEntity = mapper.getLatest(workspaceId, waylineJobQueryParam);
return waylineJobEntity;
--
Gitblit v1.9.3