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