From 2caa210098644f51ff46daa33b87ce4b7f862a91 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 13 Nov 2023 10:12:56 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/htxx_dev' into htxx_dev

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 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 0c72c27..a07e9b7 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
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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;
@@ -1002,6 +1004,32 @@
     }
 
 
+    @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