From 35c8aca3b8107ee2a4fbb5790ce1eeb70f4bb461 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Fri, 22 Mar 2024 18:15:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/ht-dev' into ht-dev

---
 src/main/java/com/dji/sample/wayline/service/impl/FlightTaskServiceImpl.java         |    9 ++
 src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java                      |    9 +++
 src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java            |   11 +++
 src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExt.java           |    5 +
 src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml                       |   46 +++++++++++++++
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java         |   12 ++++
 src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java |   24 ++++++++
 src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java                 |   11 +++
 8 files changed, 125 insertions(+), 2 deletions(-)

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 9c3ea8f..9026fef 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
@@ -93,6 +93,17 @@
         return ResponseResult.success(data);
     }
 
+    @GetMapping("/{workspace_id}/jobs-dp")
+    @SysLogAnnotation(operModul = "计划库", operType = "查询", operDesc = "分页查询")
+    public ResponseResult<PaginationData<WaylineJobDTO>> getJobsByState(@RequestParam(defaultValue = "1") Long page,
+                                                                 @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
+                                                                 @PathVariable(name = "workspace_id") String workspaceId,
+                                                                 @RequestParam(name = "order", defaultValue = "") String order,
+                                                                 WaylineJobQueryParam waylineJobQueryParam) {
+        PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceIdNew(workspaceId, page, pageSize, waylineJobQueryParam,order);
+        return ResponseResult.success(data);
+    }
+
     /**
      * 子查询
      * @param workspaceId
diff --git a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
index 3d3d23f..564e120 100644
--- a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
+++ b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.java
@@ -17,6 +17,15 @@
 
     Page<WaylineJobEntity> getPage(Page<WaylineJobEntity> waylineJobEntityPage, @Param("queryParam") WaylineJobQueryParam param, @Param("workspaceId") String workspaceId);
 
+    /**
+     * 不分子任务列表
+     * @param waylineJobEntityPage
+     * @param param
+     * @param workspaceId
+     * @return
+     */
+    Page<WaylineJobEntity> getPageNew(Page<WaylineJobEntity> waylineJobEntityPage, @Param("queryParam") WaylineJobQueryParam param, @Param("workspaceId") String workspaceId,@Param("order") String order);
+
     WaylineJobEntity getLatest(@Param("workspaceId")String workspaceId,@Param("queryParam") WaylineJobQueryParam waylineJobQueryParam);
 
     List<WaylineJobEntity> getJobs(@Param("workspaceId") String workspaceId,@Param("queryParam") WaylineJobQueryParam waylineJobQueryParam);
diff --git a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
index f6b3336..6a7bb5b 100644
--- a/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
+++ b/src/main/java/com/dji/sample/wayline/dao/IWaylineJobMapper.xml
@@ -43,6 +43,52 @@
 
     </select>
 
+    <select id="getPageNew" resultType="com.dji.sample.wayline.model.entity.WaylineJobEntity">
+
+        SELECT job.*,
+        ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM wayline_job WHERE parent_id = job.id ) AS hasChildren
+        FROM wayline_job job
+        LEFT JOIN wayline_file file ON job.file_id = file.wayline_id
+        WHERE job.workspace_id = #{workspaceId}
+        <if test="queryParam.taskType != null and queryParam.taskType!= '' or  queryParam.taskType==0 ">
+            AND job.task_type = #{queryParam.taskType}
+        </if>
+
+        <if test="queryParam.name != null and queryParam.name != '' ">
+            AND (  (job.name LIKE CONCAT('%',#{queryParam.name},'%'))or(file.name LIKE CONCAT('%',#{queryParam.name},'%'))  )
+        </if>
+
+        <if test="queryParam.status != null and queryParam.status !='' ">
+            AND job.status in
+            <foreach collection="queryParam.status.split(',')" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="queryParam.startTime !=null and queryParam.endTime !=null">
+            AND DATE_FORMAT(FROM_UNIXTIME(job.begin_time/1000,'%Y-%m-%d'),'%Y-%m-%d')  &gt;=  DATE_FORMAT(#{queryParam.startTime},'%Y-%m-%d')
+        </if>
+
+        <if test="queryParam.endTime !=null and queryParam.endTime !=null">
+            AND DATE_FORMAT(FROM_UNIXTIME(job.end_time/1000,'%Y-%m-%d'),'%Y-%m-%d')   &lt;= DATE_FORMAT(#{queryParam.endTime},'%Y-%m-%d')
+        </if>
+
+        <if test="queryParam.dockSn != null and queryParam.dockSn != '' ">
+            AND job.dock_sn in
+            <foreach collection="queryParam.dockSn.split(',')" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+        <if test="order != null and order != '' and order == 'DESC'">
+            ORDER BY job.begin_time DESC
+        </if>
+        <if test="order != null and order != '' and order == 'ASC'">
+            ORDER BY job.begin_time ASC
+        </if>
+
+    </select>
+
     <select id="getLatest" resultType="com.dji.sample.wayline.model.entity.WaylineJobEntity">
         SELECT job.* FROM wayline_job job
         WHERE job.workspace_id = #{workspaceId}
diff --git a/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExt.java b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExt.java
index bec5eaa..2a45628 100644
--- a/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExt.java
+++ b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExt.java
@@ -17,4 +17,9 @@
     private String flightId;
 
     private String trackId;
+
+    /**
+     * 航线断点信息
+     */
+    private WaylineTaskProgressExtBreakPoint breakPoint;
 }
diff --git a/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java
new file mode 100644
index 0000000..44e92f3
--- /dev/null
+++ b/src/main/java/com/dji/sample/wayline/model/dto/WaylineTaskProgressExtBreakPoint.java
@@ -0,0 +1,24 @@
+package com.dji.sample.wayline.model.dto;
+
+import lombok.Data;
+
+/**
+ * @PROJECT_NAME: iot_drone_api
+ * @DESCRIPTION:
+ * @USER: aix
+ * @DATE: 2024/3/22 14:54
+ */
+@Data
+public class WaylineTaskProgressExtBreakPoint {
+
+    private Integer attitudeHead;
+    private Integer breakReason;
+    private Integer height;
+    private Integer index;
+    private Integer latitude;
+    private Integer longitude;
+    private Integer progress;
+    private Integer state;
+    private Integer waylineId;
+
+}
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 bbf4f79..30062bc 100644
--- a/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+++ b/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
@@ -9,6 +9,7 @@
 import com.dji.sample.wayline.model.entity.WaylineJobEntity;
 import com.dji.sample.wayline.model.enums.WaylineJobStatusEnum;
 import com.dji.sample.wayline.model.param.*;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.messaging.MessageHeaders;
 
 import java.sql.SQLException;
@@ -128,6 +129,16 @@
     PaginationData<WaylineJobDTO> getJobsByWorkspaceId(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam);
 
     /**
+     * 不分子任务列表
+     * @param workspaceId
+     * @param page
+     * @param pageSize
+     * @param waylineJobQueryParam
+     * @return
+     */
+    PaginationData<WaylineJobDTO> getJobsByWorkspaceIdNew(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam, String order);
+
+    /**
      * Process to get interface data of flight mission resources.
      * @param receiver
      * @param headers
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 36c6556..47a0442 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
@@ -71,6 +71,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(),
                 new TypeReference<EventsReceiver<WaylineTaskProgressReceiver>>(){});
         eventsReceiver.setBid(receiver.getBid());
@@ -81,10 +82,14 @@
 
         WaylineTaskProgressReceiver output = eventsReceiver.getOutput();
 
-        log.info("Task progress: {}", output.getProgress().toString());
+        log.info("任务进度: {}", output.getProgress().toString());
+
+        if (null != output.getExt().getBreakPoint()) {
+            log.info("任务进度 ===> 断点信息:{}", output.getExt().getBreakPoint().toString());
+        }
 
         if (eventsReceiver.getResult() != ResponseResult.CODE_SUCCESS) {
-            log.error("Task progress ===> Error code: " + eventsReceiver.getResult());
+            log.error("任务进度 ===> 错误编码: " + eventsReceiver.getResult());
         }
 
         EventsResultStatusEnum statusEnum = EventsResultStatusEnum.find(output.getStatus());
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 b138833..b40ba98 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
@@ -531,6 +531,18 @@
     }
 
     @Override
+    public PaginationData<WaylineJobDTO> getJobsByWorkspaceIdNew(String workspaceId, long page, long pageSize, WaylineJobQueryParam waylineJobQueryParam, String order) {
+        Page<WaylineJobEntity> pageData = mapper.getPageNew(new Page<WaylineJobEntity>(page, pageSize), waylineJobQueryParam, workspaceId,order);
+
+        List<WaylineJobDTO> records = pageData.getRecords()
+                .stream()
+                .map(this::entity2Dto)
+                .collect(Collectors.toList());
+
+        return new PaginationData<WaylineJobDTO>(records, new Pagination(pageData));
+    }
+
+    @Override
     public List<WaylineJobDTO> getChildrenJobs(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
 
         List<WaylineJobEntity> list = mapper.getJobs(workspaceId, waylineJobQueryParam);

--
Gitblit v1.9.3