This commit is contained in:
孙小云 2026-02-04 18:37:57 +08:00
parent 2173a5ef83
commit 1160635703
1 changed files with 78 additions and 0 deletions

View File

@ -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<Dock> 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<DockGroup> 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);
}
}
/**
* 根据设备类型进行不同的同步处理
*