From 71fc7c05b3c641bf898fd84975d6f036a05f829b Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Thu, 04 Dec 2025 09:09:49 +0800
Subject: [PATCH] 2025-12-03 zwy 删除任务时判断循环任务task_type=3的,不判断设备是否在线情况直接删除

---
 ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
index f833f57..930ca2e 100644
--- a/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -502,7 +502,7 @@
 ////                    + Arrays.toString(jobIds.toArray()));
 //        }
 
-        // Group job id by dock sn.
+        // 按 dock sn 对作业 ID 进行分组。
         Map<String, List<String>> dockJobs = waylineJobs.stream()
                 .collect(Collectors.groupingBy(WaylineJobDTO::getDockSn,
                         Collectors.mapping(WaylineJobDTO::getJobId, Collectors.toList())));
@@ -591,7 +591,17 @@
      */
     @Override
     public ResponseResult publishCancelTask(String dockSn, List<String> jobIds) {
-
+        for(String jobId : jobIds) {
+            Optional<WaylineJobDTO> waylineJobDTO = this.getJobByJobId(jobId);
+            if (waylineJobDTO.isEmpty()) {
+                return ResponseResult.error("任务不存在,jobId: " + jobId);
+            }
+            if (waylineJobDTO.get().getTaskType() == 3) {
+                // 已经执行完的子任务是否删除,或者清掉父任务ID,和正常任务一起显示在列表中。
+                this.deleteTask(jobId);
+                return ResponseResult.success();
+            }
+        }
         boolean isOnline = deviceService.checkDeviceOnline(dockSn);
         if (!isOnline) {
             Integer errorCode = CommonErrorEnum.DEVICE_OFFLINE.getErrorCode();
@@ -644,7 +654,8 @@
     public List<WaylineJobDTO> getJobsByConditions(Collection<String> jobIds, WaylineJobStatusEnum status) {
         return mapper.selectList(
                         new LambdaQueryWrapper<WaylineJobEntity>()
-                                .eq(Objects.nonNull(status), WaylineJobEntity::getStatus, status.getVal())
+                                // 不过滤状态,
+                                //.eq(Objects.nonNull(status), WaylineJobEntity::getStatus, status.getVal())
                                 .and(!CollectionUtils.isEmpty(jobIds),
                                         wrapper -> jobIds.forEach(id -> wrapper.eq(WaylineJobEntity::getJobId, id).or())))
                 .stream()

--
Gitblit v1.9.3