From 1160635703816d9f387e579fd357fef5a34d25e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Wed, 4 Feb 2026 18:37:57 +0800 Subject: [PATCH] xx --- .../ruoyi/device/service/impl/SynService.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/src/main/java/com/ruoyi/device/service/impl/SynService.java b/src/main/java/com/ruoyi/device/service/impl/SynService.java index 211551f..9813be9 100644 --- a/src/main/java/com/ruoyi/device/service/impl/SynService.java +++ b/src/main/java/com/ruoyi/device/service/impl/SynService.java @@ -271,11 +271,89 @@ public class SynService { } log.info("========== 数据同步任务完成,共同步 {} 个设备,跳过 {} 个设备 ==========", totalCount, skippedCount); + + // 处理没有分组的机场,将其添加到默认分组 + assignDocksToDefaultGroup(); + } catch (Exception e) { log.error("数据同步任务执行失败: {}", e.getMessage(), e); } } + /** + * 将没有分组的机场添加到默认分组 + * 默认分组名称为 "默认分组" + */ + private void assignDocksToDefaultGroup() { + try { + log.info("========== 开始检查并分配未分组的机场到默认分组 =========="); + + // 1. 查询或创建默认分组 + String defaultGroupName = "默认分组"; + Group defaultGroup = groupDomain.selectGroupByGroupName(defaultGroupName); + + if (defaultGroup == null) { + // 默认分组不存在,创建它 + log.info("默认分组不存在,开始创建: {}", defaultGroupName); + defaultGroup = new Group(); + defaultGroup.setGroupName(defaultGroupName); + defaultGroup.setCreateBy("system"); + groupDomain.insertGroup(defaultGroup); + log.info("默认分组创建成功: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName); + } else { + log.info("默认分组已存在: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName); + } + + Long defaultGroupId = defaultGroup.getGroupId(); + + // 2. 查询所有机场 + Dock queryDock = new Dock(); + List allDocks = dockDomain.selectDockList(queryDock); + log.info("查询到机场总数: {}", allDocks != null ? allDocks.size() : 0); + + if (allDocks == null || allDocks.isEmpty()) { + log.info("没有机场需要处理"); + return; + } + + int assignedCount = 0; + int alreadyInGroupCount = 0; + + // 3. 遍历所有机场,检查是否在分组中 + for (Dock dock : allDocks) { + try { + Long dockId = dock.getDockId(); + + // 查询该机场是否已经在任何分组中 + List existingGroups = dockGroupDomain.selectDockGroupByDockId(dockId); + + if (existingGroups == null || existingGroups.isEmpty()) { + // 机场没有分组,添加到默认分组 + DockGroup dockGroup = new DockGroup(); + dockGroup.setDockId(dockId); + dockGroup.setGroupId(defaultGroupId); + dockGroup.setCreateBy("system"); + + dockGroupDomain.insertDockGroup(dockGroup); + assignedCount++; + log.info("机场 [ID:{}, Name:{}] 已添加到默认分组", dockId, dock.getDockName()); + } else { + alreadyInGroupCount++; + log.debug("机场 [ID:{}, Name:{}] 已在分组中,跳过", dockId, dock.getDockName()); + } + } catch (Exception e) { + log.error("处理机场分组失败: dockId={}, error={}", dock.getDockId(), e.getMessage(), e); + } + } + + log.info("========== 机场分组检查完成:新分配 {} 个机场到默认分组,{} 个机场已有分组 ==========", + assignedCount, alreadyInGroupCount); + + } catch (Exception e) { + log.error("分配机场到默认分组失败: {}", e.getMessage(), e); + } + } + /** * 根据设备类型进行不同的同步处理 *