From bee596030bf9f9d395d65fbe17be57c52fa0af04 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Tue, 21 Nov 2023 22:06:00 +0800
Subject: [PATCH] 无人机 -统计飞行、航线列表新增查询条件
---
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java | 4 ++--
src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java | 12 ++++++++----
src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java | 4 ++--
src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.java | 2 +-
src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.xml | 3 +++
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 8 ++++----
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | 2 +-
src/main/java/com/dji/sample/component/rabbitmq/config/MqttMsgProxyProducer.java | 2 +-
src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java | 2 +-
9 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/dji/sample/component/rabbitmq/config/MqttMsgProxyProducer.java b/src/main/java/com/dji/sample/component/rabbitmq/config/MqttMsgProxyProducer.java
index 2530072..8646c61 100644
--- a/src/main/java/com/dji/sample/component/rabbitmq/config/MqttMsgProxyProducer.java
+++ b/src/main/java/com/dji/sample/component/rabbitmq/config/MqttMsgProxyProducer.java
@@ -46,7 +46,7 @@
}
*/
-/**
+ /**
* 使用json序列化机制,进行消息转换
* @return -
*//*
diff --git a/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.java b/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.java
index 175fab9..4f1c26f 100644
--- a/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.java
+++ b/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.java
@@ -16,5 +16,5 @@
*/
public interface IDroneFlightLogMapper extends BaseMapper<DroneFlightLogEntity> {
- List<DroneFlightLogEntity> patrolStatistics(@Param("workspaceId") String workspaceId, @Param("queryTime") String queryTime);
+ List<DroneFlightLogEntity> patrolStatistics(@Param("workspaceId") String workspaceId, @Param("queryTime") String queryTime, @Param("deviceSn") String deviceSn);
}
diff --git a/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.xml b/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.xml
index 5017573..caa2bc8 100644
--- a/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.xml
+++ b/src/main/java/com/dji/sample/log/dao/IDroneFlightLogMapper.xml
@@ -11,6 +11,9 @@
<if test="workspaceId != null and workspaceId != ''">
and fl.workspace_id = #{workspaceId}
</if>
+ <if test="deviceSn !=null and deviceSn != ''" >
+ and fl.device_sn = #{deviceSn}
+ </if>
ORDER BY fl.end_time DESC
</select>
</mapper>
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 0544e71..32f53ef 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -204,7 +204,7 @@
@GetMapping("/{workspace_id}/waylines_list")
@SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "查询当前工作区航线库列表")
- public ResponseResult<List<WaylineListDTO>> waylineList(@PathVariable(name = "workspace_id") String workspaceId) {
- return ResponseResult.success(waylineFileService.waylineList(workspaceId)) ;
+ public ResponseResult<List<WaylineListDTO>> waylineList(@PathVariable(name = "workspace_id") String workspaceId,String droneName) {
+ return ResponseResult.success(waylineFileService.waylineList(workspaceId,droneName)) ;
}
}
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 58e73d7..9c3ea8f 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -165,9 +165,9 @@
* 统计飞行次数
*/
@PostMapping("/{workspace_id}/patrol_statistics")
- public ResponseResult<WaylineJobCountDTO> patrolStatistics(@PathVariable(name = "workspace_id") String workspaceId,String queryTime) {
+ public ResponseResult<WaylineJobCountDTO> patrolStatistics(@PathVariable(name = "workspace_id") String workspaceId,String queryTime,String deviceSn) {
- WaylineJobCountDTO waylineJobCountDTO = waylineJobService.patrolStatistics(workspaceId,queryTime);
+ WaylineJobCountDTO waylineJobCountDTO = waylineJobService.patrolStatistics(workspaceId,queryTime,deviceSn);
return ResponseResult.success(waylineJobCountDTO);
}
diff --git a/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java b/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
index 8a8715c..6a37797 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineFileService.java
@@ -83,5 +83,5 @@
*/
void importKmzFile(MultipartFile file, String workspaceId, String creator);
- List<WaylineListDTO> waylineList(String workspaceId);
+ List<WaylineListDTO> waylineList(String workspaceId,String droneName);
}
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 66093fe..bbf4f79 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -164,7 +164,7 @@
*/
WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam);
- WaylineJobCountDTO patrolStatistics(String workspaceId,String queryTime);
+ WaylineJobCountDTO patrolStatistics(String workspaceId,String queryTime,String deviceSn);
void updateJobCollect(WaylineJobEntity waylineJob);
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 14fa513..bbeee6f 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
@@ -182,11 +182,15 @@
}
@Override
- public List<WaylineListDTO> waylineList(String workspaceId) {
- return new LambdaQueryChainWrapper<>(mapper).eq(WaylineFileEntity::getWorkspaceId, workspaceId)
- .list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
- .collect(Collectors.toList());
+ public List<WaylineListDTO> waylineList(String workspaceId,String droneName) {
+ LambdaQueryChainWrapper<WaylineFileEntity> wrapper =
+ new LambdaQueryChainWrapper<>(mapper).eq(WaylineFileEntity::getWorkspaceId, workspaceId);
+ if (StringUtils.hasText(droneName)){
+ wrapper.like(WaylineFileEntity::getName,droneName);
+ }
+ return wrapper.list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
+ .collect(Collectors.toList());
}
private Optional<WaylineFileDTO> validKmzFile(MultipartFile file) {
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 ad2b141..f0c7a10 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
@@ -900,18 +900,18 @@
@Override
- public WaylineJobCountDTO patrolStatistics(String workspaceId, String queryTime) {
+ public WaylineJobCountDTO patrolStatistics(String workspaceId, String queryTime,String deviceSn) {
WaylineJobCountDTO waylineJobCountDTO = new WaylineJobCountDTO();
- List<DroneFlightLogEntity> list = flightLogMapper.patrolStatistics(workspaceId,queryTime);
+ List<DroneFlightLogEntity> list = flightLogMapper.patrolStatistics(workspaceId,queryTime,deviceSn);
if (!CollectionUtils.isEmpty(list)) {
waylineJobCountDTO.setTotalNumber(list.size());
long totalTime = list.stream().filter(task -> task.getEndTime()!= null && task.getStartTime()!= null).mapToLong(s -> s.getEndTime() - s.getStartTime()).sum() / 1000;
long h = totalTime / 3600;
long m = (totalTime % 3600) / 60;
waylineJobCountDTO.setTotalDuration( String.format("%02d h %02d min", h, m));
- List<String> deviceSn = list.stream().map(DroneFlightLogEntity::getDeviceSn).distinct().collect(Collectors.toList());
+ List<String> deviceSns = list.stream().map(DroneFlightLogEntity::getDeviceSn).distinct().collect(Collectors.toList());
double sum = 0.0;
- for (String sn : deviceSn) {
+ for (String sn : deviceSns) {
Double totalFlightDistance = new LambdaQueryChainWrapper<>(flightLogMapper)
.eq(DroneFlightLogEntity::getDeviceSn, sn).orderByDesc(DroneFlightLogEntity::getEndTime).last("limit 1").one().getTotalFlightDistance();
if (totalFlightDistance!= null){
--
Gitblit v1.9.3