From 2b35b23f53cde5e76a9cc7d0c6a027335bd59f9a Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Sat, 11 Nov 2023 16:31:11 +0800
Subject: [PATCH] 无人机 - 媒体库列表新增查询条件航线库ID

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

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 0ef7b9b..e86e4c6 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
@@ -2,6 +2,8 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dji.sample.common.error.CommonErrorEnum;
 import com.dji.sample.common.model.CustomClaim;
@@ -673,6 +675,48 @@
         return WaylineJobStatusEnum.UNKNOWN;
     }
 
+    @Override
+    public WaylineJobEntity getLatestJob(String workspaceId, WaylineJobQueryParam waylineJobQueryParam) {
+//        List<WaylineJobEntity> waylineJobEntities = mapper.selectList(new LambdaQueryWrapper<>(WaylineJobEntity.class)
+//                .eq(WaylineJobEntity::getWorkspaceId, workspaceId)
+//                .eq(WaylineJobEntity::getDockSn, waylineJobQueryParam.getDockSn())
+//                //获取状态为待执行
+//                        .eq(WaylineJobEntity::getStatus,1)
+//                .orderByDesc(WaylineJobEntity::getBeginTime)
+//        );
+
+        WaylineJobEntity waylineJobEntity = mapper.getLatest(workspaceId,waylineJobQueryParam);
+
+
+       return waylineJobEntity;
+    }
+
+    @Override
+    public WaylineJobCountDTO patrolStatistics(String workspaceId) {
+        WaylineJobCountDTO waylineJobCountDTO = new WaylineJobCountDTO();
+        List<WaylineJobEntity> list = new LambdaQueryChainWrapper<>(mapper).eq(WaylineJobEntity::getStatus, 3).list();
+        if (!CollectionUtils.isEmpty(list)){
+            waylineJobCountDTO.setTotalNumber(list.size());
+            long totalTime = list.stream().mapToLong(s -> s.getEndTime() - s.getBeginTime()).sum() / 1000;
+            StringBuffer buffer = new StringBuffer();
+            long h = totalTime / 3600;
+            long m = (totalTime % 3600) / 60;
+            buffer.append(h).append(" h ");
+            buffer.append(m).append(" min");
+            waylineJobCountDTO.setTotalDuration(buffer.toString());
+        }
+        return waylineJobCountDTO;
+    }
+
+    @Override
+    public void updateJobCollect(WaylineJobEntity waylineJob) {
+        new LambdaUpdateChainWrapper<>(mapper)
+                .eq(WaylineJobEntity::getJobId,waylineJob.getJobId())
+                .set(WaylineJobEntity::getCollectStatus,waylineJob.getCollectStatus())
+                .set(WaylineJobEntity::getUserId,waylineJob.getUserId())
+                .update();
+    }
+
     private void pauseJob(String workspaceId, String dockSn, String jobId, WaylineJobStatusEnum statusEnum) {
         if (WaylineJobStatusEnum.PAUSED == statusEnum && jobId.equals(waylineRedisService.getPausedWaylineJobId(dockSn))) {
             waylineRedisService.setPausedWaylineJob(dockSn, jobId);

--
Gitblit v1.9.3