lyh
2025-04-02 0990dd4a4a52a6d26ff4d640980206fbff392dfb
lxzn-module-flowable/src/main/java/org/jeecg/modules/flowable/service/impl/FlowTaskServiceImpl.java
@@ -916,6 +916,63 @@
        return Result.OK();
    }
    /**
     * 判断多个任务是否处于同一流程节点
     * @param taskIds 逗号分隔的任务ID字符串
     * @return 统一结果封装
     */
    @Override
    public Result isSameNode(String taskIds) {
        // 1. 参数校验
        if (StringUtils.isBlank(taskIds)) {
            return Result.error("任务ID不能为空");
        }
        // 2. 分割任务ID
        String[] taskIdArray = taskIds.split(",");
        if (taskIdArray.length == 0) {
            return Result.error("未提供有效的任务ID");
        }
        // 3. 单任务直接返回true
        if (taskIdArray.length == 1) {
            return Result.ok(true);
        }
        // 4. 多任务检查逻辑
        String referenceNodeId = null;
        String currentNodeId = null;
        for (String taskId : taskIdArray) {
            // 4.1 查询任务实例
            Task task = taskService.createTaskQuery()
                    .taskId(taskId.trim())
                    .singleResult();
            // 4.2 任务不存在处理
            if (task == null) {
                return Result.error("任务不存在: " + taskId);
            }
            // 4.3 获取节点标识(TaskDefinitionKey)
            currentNodeId = task.getTaskDefinitionKey();
            // 4.4 首次遍历初始化参考节点
            if (referenceNodeId == null) {
                referenceNodeId = currentNodeId;
                continue;
            }
            // 4.5 节点不一致直接返回
            if (!referenceNodeId.equals(currentNodeId)) {
                return Result.ok("节点不一致");
            }
        }
        // 5. 所有任务节点一致
        return Result.ok(currentNodeId);
    }
    /**
     * 代办任务列表
     *