From d779caf4b08cf06945fc74495c75d42a6466b20b Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Thu, 13 Nov 2025 13:05:21 +0800
Subject: [PATCH] 1.修改表名。
---
ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java | 116 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 87 insertions(+), 29 deletions(-)
diff --git a/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
index fa62ebc..af5185c 100644
--- a/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -1,5 +1,8 @@
package com.ard.sample.wayline.service.impl;
+import com.ard.oss.service.impl.OssServiceContext;
+import com.ard.route.domain.route.ArdRouteInfo;
+import com.ard.route.service.IArdRouteInfoService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,11 +27,11 @@
import com.ard.sample.wayline.model.enums.WaylineMethodEnum;
import com.ard.sample.wayline.model.enums.WaylineTaskTypeEnum;
import com.ard.sample.wayline.model.param.CreateJobParam;
-import com.ard.sample.wayline.service.IWaylineFileService;
import com.ard.sample.wayline.service.IWaylineJobService;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.integration.mqtt.support.MqttHeaders;
@@ -37,6 +40,10 @@
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import java.sql.SQLException;
import java.time.Instant;
@@ -44,6 +51,9 @@
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
+
+import static com.ard.route.util.ToolUtils.kmzPath;
+import static com.ard.route.util.ToolUtils.subStringMinioUrlName;
/**
* @author sean
@@ -58,8 +68,14 @@
@Autowired
private IWaylineJobMapper mapper;
+// @Autowired
+// private IWaylineFileService waylineFileService;
+
@Autowired
- private IWaylineFileService waylineFileService;
+ private IArdRouteInfoService _ardRouteInfoService;
+
+ @Resource
+ private OssServiceContext _ossService;
@Autowired
private IDeviceService deviceService;
@@ -170,13 +186,29 @@
}
// get wayline file
- Optional<WaylineFileDTO> waylineFile = waylineFileService.getWaylineByWaylineId(waylineJob.getFileId());
- if (waylineFile.isEmpty()) {
+// Optional<WaylineFileDTO> waylineFile = waylineFileService.getWaylineByWaylineId(waylineJob.getFileId());
+// if (waylineFile.isEmpty()) {
+// return ResponseResult.error("机场任务航线不存在!");
+// }
+ // 换航线表
+ ArdRouteInfo ardRouteOpt = _ardRouteInfoService.selectArdRouteInfoById(waylineJob.getFileId());
+ if (ardRouteOpt == null) {
return ResponseResult.error("机场任务航线不存在!");
}
// get file url
- URL url = waylineFileService.getObjectUrl(waylineFile.get().getWaylineId());
+// URL url = waylineFileService.getObjectUrl(waylineFile.get().getWaylineId());
+ URL url= null;
+ String minioUrl = subStringMinioUrlName(ardRouteOpt.getUpPath());
+ String md5 = "";
+ try (InputStream inputStream = _ossService.getObject(kmzPath,minioUrl))
+ {
+ md5 = DigestUtils.md5Hex(inputStream);
+ url = new URL(ardRouteOpt.getUpPath());
+ }
+ catch (Exception e) {
+ return ResponseResult.error("机场任务航线文件地址错误!" + e.getMessage());
+ }
WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
.flightId(waylineJob.getJobId())
@@ -187,7 +219,13 @@
.outOfControlAction(waylineJob.getOutOfControlAction())
.file(WaylineTaskFileDTO.builder()
.url(url.toString())
- .fingerprint(waylineFile.get().getSign())
+// .fingerprint(waylineFile.get().getSign())
+ .fingerprint(md5)
+ .build())
+ .simulateMission(WaylineSimulateMissionDTO.builder()
+ .isEnable(param.getSimulateMission().getIsEnable())
+ .latitude(param.getSimulateMission().getLatitude())
+ .longitude(param.getSimulateMission().getLongitude())
.build())
.build();
@@ -213,21 +251,22 @@
return ResponseResult.error("Prepare task ====> Error code: " + serviceReply.getResult());
}
+ // 飞行命令先注释掉
// Issue an immediate task execution command.
- if (WaylineTaskTypeEnum.IMMEDIATE.getVal() == waylineJob.getTaskType()) {
- if (!executeFlightTask(waylineJob.getJobId())) {
- return ResponseResult.error("Failed to execute job.");
- }
- }
-
- if (WaylineTaskTypeEnum.TIMED.getVal() == waylineJob.getTaskType()) {
- boolean isAdd = RedisOpsUtils.zAdd(RedisConst.WAYLINE_JOB_TIMED_EXECUTE,
- waylineJob.getDockSn() + RedisConst.DELIMITER + waylineJob.getJobId(),
- waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
- if (!isAdd) {
- return ResponseResult.error("Failed to create scheduled job.");
- }
- }
+// if (WaylineTaskTypeEnum.IMMEDIATE.getVal() == waylineJob.getTaskType()) {
+// if (!executeFlightTask(waylineJob.getJobId())) {
+// return ResponseResult.error("Failed to execute job.");
+// }
+// }
+//
+// if (WaylineTaskTypeEnum.TIMED.getVal() == waylineJob.getTaskType()) {
+// boolean isAdd = RedisOpsUtils.zAdd(RedisConst.WAYLINE_JOB_TIMED_EXECUTE,
+// waylineJob.getDockSn() + RedisConst.DELIMITER + waylineJob.getJobId(),
+// waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
+// if (!isAdd) {
+// return ResponseResult.error("Failed to create scheduled job.");
+// }
+// }
return ResponseResult.success();
}
@@ -461,8 +500,16 @@
WaylineJobDTO waylineJob = waylineJobOpt.get();
// get wayline file
- Optional<WaylineFileDTO> waylineFile = waylineFileService.getWaylineByWaylineId(waylineJob.getFileId());
- if (waylineFile.isEmpty()) {
+// Optional<WaylineFileDTO> waylineFile = waylineFileService.getWaylineByWaylineId(waylineJob.getFileId());
+// if (waylineFile.isEmpty()) {
+// builder.data(RequestsReply.error(CommonErrorEnum.ILLEGAL_ARGUMENT));
+// messageSender.publish(topic, builder.build());
+// return;
+// }
+ // 修改航线文件名称,从ard_route_info航线表中取;
+ // 换航线表
+ ArdRouteInfo ardRouteOpt = _ardRouteInfoService.selectArdRouteInfoById(waylineJob.getFileId());
+ if (ardRouteOpt == null) {
builder.data(RequestsReply.error(CommonErrorEnum.ILLEGAL_ARGUMENT));
messageSender.publish(topic, builder.build());
return;
@@ -470,16 +517,25 @@
// get file url
URL url = null;
- try {
- url = waylineFileService.getObjectUrl(waylineFile.get().getWaylineId());
+ String minioUrl = subStringMinioUrlName(ardRouteOpt.getUpPath());
+ String md5 = "";
+ try (InputStream inputStream = _ossService.getObject(kmzPath,minioUrl))
+ {
+ md5 = DigestUtils.md5Hex(inputStream);
+ url = new URL(ardRouteOpt.getUpPath());
+// }
+// try {
+// url = waylineFileService.getObjectUrl(waylineFile.get().getWaylineId());
+// url = new URL(ardRouteOpt.getUpPath());
builder.data(RequestsReply.success(WaylineTaskCreateDTO.builder()
.file(WaylineTaskFileDTO.builder()
.url(url.toString())
- .fingerprint(waylineFile.get().getSign())
+// .fingerprint(waylineFile.get().getSign())
+ .fingerprint(md5)
.build())
.build()));
- } catch (SQLException | NullPointerException e) {
+ } catch (NullPointerException | IOException e) {
e.printStackTrace();
builder.data(RequestsReply.error(CommonErrorEnum.ILLEGAL_ARGUMENT));
messageSender.publish(topic, builder.build());
@@ -572,13 +628,15 @@
if (entity == null) {
return null;
}
-
+ // 修改航线文件名称,从ard_route_info航线表中取;
WaylineJobDTO.WaylineJobDTOBuilder builder = WaylineJobDTO.builder()
.jobId(entity.getJobId())
.jobName(entity.getName())
.fileId(entity.getFileId())
- .fileName(waylineFileService.getWaylineByWaylineId(entity.getFileId())
- .orElse(WaylineFileDTO.builder().build()).getName())
+// .fileName(waylineFileService.getWaylineByWaylineId(entity.getFileId())
+// .orElse(WaylineFileDTO.builder().build()).getName())
+ .fileName(_ardRouteInfoService.selectArdRouteInfoById(entity.getFileId())
+ .getName())
.dockSn(entity.getDockSn())
.dockName(deviceService.getDeviceBySn(entity.getDockSn())
.orElse(DeviceDTO.builder().build()).getNickname())
--
Gitblit v1.9.3