From 75f3d6a2c14da70f57b90e273cfe4f3fd9a8715d Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Thu, 21 Mar 2024 11:11:09 +0800
Subject: [PATCH] 大屏任务列表待执行接口、支持自定义排序
---
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/dao/IWaylineJobMapper.xml | 46 +++++++++++++++++++++++
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java | 12 ++++++
src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java | 11 +++++
5 files changed, 89 insertions(+), 0 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..519a15d 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') >= 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') <= 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.create_time DESC
+ </if>
+ <if test="order != null and order != '' and order == 'ASC'">
+ ORDER BY job.create_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/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/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