zhaowenyu
2025-12-04 4136ac9c1be3198bfe6c4d3726ee18cf05777df9
ard-sample/src/main/java/com/ard/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -597,8 +597,17 @@
                return ResponseResult.error("任务不存在,jobId: " + jobId);
            }
            if (waylineJobDTO.get().getTaskType() == 3) {
                // 已经执行完的子任务是否删除,或者清掉父任务ID,和正常任务一起显示在列表中。
                // 已经执行完的子任务一起全部删除
                this.deleteTask(jobId);
                log.info("删除循环任务已经完成,主任务ID:{}。", waylineJobDTO.get().getJobId());
                List<WaylineJobDTO> waylineParentIds = this.getJobByJobParentId(jobId);
                if (!waylineParentIds.isEmpty()) {
                    for (WaylineJobDTO waylineJob : waylineParentIds) {
                        this.deleteTask(waylineJob.getJobId());
                        RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_TIMED_EXECUTE, dockSn + RedisConst.DELIMITER + waylineJob.getJobId());
                        log.info("删除循环子任务已经完成,子任务ID:{}。", waylineJob.getJobId());
                    }
                }
                return ResponseResult.success();
            }
        }
@@ -630,7 +639,7 @@
                    .status(WaylineJobStatusEnum.CANCEL.getVal())
                    .completedTime(LocalDateTime.now())
                    .build());
            RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_TIMED_EXECUTE, RedisConst.DELIMITER + dockSn + RedisConst.DELIMITER + jobId);
            RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_TIMED_EXECUTE, dockSn + RedisConst.DELIMITER + jobId);
            // 原流程是修改表中数据的status状态值,现在的精力是直接删除
            this.deleteTask(jobId);
        }
@@ -772,6 +781,18 @@
                .orderByDesc(WaylineJobEntity::getId));
    }
    /**
     * 获取所有待定状态的定时任务,未执行即将要执行的。
     * */
    public List<WaylineJobEntity> selectScheduledTaskList(){
        // "1":"定时任务"
        return mapper.selectList(new LambdaQueryWrapper<WaylineJobEntity>()
                .eq(WaylineJobEntity::getTaskType, 1)
                .eq(WaylineJobEntity::getStatus, WaylineJobStatusEnum.PENDING.getVal())
                .gt(WaylineJobEntity::getBeginTime, System.currentTimeMillis())
                .orderByDesc(WaylineJobEntity::getBeginTime));
    }
    /**
     * 根据航班任务ID获取航班任务资源