添加默认分组逻辑
This commit is contained in:
parent
53f085032c
commit
46b0d9614e
|
|
@ -60,6 +60,12 @@ public class SynService {
|
|||
@Autowired
|
||||
private IAircraftPayloadDomain aircraftPayloadDomain;
|
||||
|
||||
@Autowired
|
||||
private IGroupDomain groupDomain;
|
||||
|
||||
@Autowired
|
||||
private IDockGroupDomain dockGroupDomain;
|
||||
|
||||
public SynService(IThingsBoardDomain iThingsBoardDomain) {
|
||||
this.iThingsBoardDomain = iThingsBoardDomain;
|
||||
}
|
||||
|
|
@ -346,6 +352,10 @@ public class SynService {
|
|||
|
||||
/**
|
||||
* 同步机场数据
|
||||
* 逻辑:
|
||||
* 1. 如果是新插入的机场,需要将其插入到默认分组(ID=0)
|
||||
* 2. 如果默认分组不存在,需要先创建默认分组
|
||||
* 3. 如果是已存在的机场,检查机场是否在任何分组中,如果不在,将其插入默认分组
|
||||
*
|
||||
* @param deviceId 设备主键ID
|
||||
* @param deviceName 设备名称
|
||||
|
|
@ -355,8 +365,10 @@ public class SynService {
|
|||
|
||||
// 查询机场是否已存在
|
||||
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
|
||||
boolean isNewDock = (existingDock == null);
|
||||
Long dockId;
|
||||
|
||||
if (existingDock == null) {
|
||||
if (isNewDock) {
|
||||
// 机场不存在,插入新机场
|
||||
Dock newDock = new Dock();
|
||||
newDock.setDockName(deviceName);
|
||||
|
|
@ -365,12 +377,26 @@ public class SynService {
|
|||
|
||||
log.info("准备插入新机场: deviceId={}, dockName={}", deviceId, deviceName);
|
||||
dockDomain.insertDock(newDock);
|
||||
dockId = newDock.getDockId();
|
||||
log.info("插入新机场成功: deviceId={}, dockName={}, dockId={}",
|
||||
deviceId, deviceName, newDock.getDockId());
|
||||
deviceId, deviceName, dockId);
|
||||
} else {
|
||||
log.info("机场已存在,跳过插入: deviceId={}, dockName={}", deviceId, deviceName);
|
||||
dockId = existingDock.getDockId();
|
||||
log.info("机场已存在: deviceId={}, dockName={}, dockId={}", deviceId, deviceName, dockId);
|
||||
}
|
||||
|
||||
// 确保默认分组存在
|
||||
ensureDefaultGroupExists();
|
||||
|
||||
// 检查机场是否在任何分组中
|
||||
List<DockGroup> dockGroups = dockGroupDomain.selectDockGroupByDockId(dockId);
|
||||
|
||||
if (dockGroups == null || dockGroups.isEmpty()) {
|
||||
// 机场不在任何分组中,将其插入默认分组
|
||||
insertDockToDefaultGroup(dockId, deviceName);
|
||||
} else {
|
||||
log.info("机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
|
||||
}
|
||||
// 机场已存在,无需更新
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -570,8 +596,52 @@ public class SynService {
|
|||
existingRelation.setAircraftId(aircraftId);
|
||||
existingRelation.setUpdateBy("system");
|
||||
dockAircraftDomain.updateDockAircraft(existingRelation);
|
||||
log.info("更新机场无人机关联: dockId={}, aircraftId={}", dockId, aircraftId);
|
||||
log.info("更新机场无人机关联: dockId=, aircraftId={}", dockId, aircraftId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确保默认分组存在
|
||||
* 默认分组ID为0,名称为"默认分组"
|
||||
* 如果不存在则创建
|
||||
*/
|
||||
private void ensureDefaultGroupExists() {
|
||||
Long defaultGroupId = 0L;
|
||||
Group defaultGroup = groupDomain.selectGroupByGroupId(defaultGroupId);
|
||||
|
||||
if (defaultGroup == null) {
|
||||
// 默认分组不存在,创建默认分组
|
||||
Group newGroup = new Group();
|
||||
newGroup.setGroupId(defaultGroupId);
|
||||
newGroup.setGroupName("默认分组");
|
||||
newGroup.setCreateBy("system");
|
||||
newGroup.setRemark("系统自动创建的默认分组,用于存放未分组的机场");
|
||||
|
||||
groupDomain.insertGroup(newGroup);
|
||||
log.info("创建默认分组成功: groupId={}, groupName={}", defaultGroupId, "默认分组");
|
||||
} else {
|
||||
log.debug("默认分组已存在: groupId={}, groupName={}", defaultGroupId, defaultGroup.getGroupName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将机场插入到默认分组
|
||||
*
|
||||
* @param dockId 机场主键ID
|
||||
* @param dockName 机场名称(用于日志)
|
||||
*/
|
||||
private void insertDockToDefaultGroup(Long dockId, String dockName) {
|
||||
Long defaultGroupId = 0L;
|
||||
|
||||
DockGroup newDockGroup = new DockGroup();
|
||||
newDockGroup.setDockId(dockId);
|
||||
newDockGroup.setGroupId(defaultGroupId);
|
||||
newDockGroup.setCreateBy("system");
|
||||
newDockGroup.setRemark("系统自动添加到默认分组");
|
||||
|
||||
dockGroupDomain.insertDockGroup(newDockGroup);
|
||||
log.info("将机场添加到默认分组: dockId={}, dockName={}, groupId={}",
|
||||
dockId, dockName, defaultGroupId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue