修改日志打印
This commit is contained in:
parent
880f98e8e1
commit
ab53e533c6
|
|
@ -92,7 +92,7 @@ public class SynService {
|
||||||
if (StringUtils.hasText(trimmedPattern)) {
|
if (StringUtils.hasText(trimmedPattern)) {
|
||||||
try {
|
try {
|
||||||
excludePatternList.add(Pattern.compile(trimmedPattern));
|
excludePatternList.add(Pattern.compile(trimmedPattern));
|
||||||
log.info("加载设备名称过滤规则: {}", trimmedPattern);
|
// log.info("加载设备名称过滤规则: {}", trimmedPattern);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("无效的正则表达式: {}, error={}", trimmedPattern, e.getMessage());
|
log.error("无效的正则表达式: {}, error={}", trimmedPattern, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ public class SynService {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (excludePatternList.isEmpty()) {
|
if (excludePatternList.isEmpty()) {
|
||||||
log.info("未配置设备名称过滤规则");
|
log.error("未配置设备名称过滤规则");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -223,7 +223,7 @@ public class SynService {
|
||||||
// 通过API获取子设备信息
|
// 通过API获取子设备信息
|
||||||
DeviceInfo childDeviceInfo = iThingsBoardDomain.getDeviceInfo(childDeviceId);
|
DeviceInfo childDeviceInfo = iThingsBoardDomain.getDeviceInfo(childDeviceId);
|
||||||
if (childDeviceInfo == null) {
|
if (childDeviceInfo == null) {
|
||||||
log.warn("子设备 {} 不存在,跳过", childDeviceId);
|
// log.warn("子设备 {} 不存在,跳过", childDeviceId);
|
||||||
skippedCount++;
|
skippedCount++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -240,19 +240,19 @@ public class SynService {
|
||||||
// 判断是大疆还是拓恒设备(通过设备名称是否以 TH 开头)
|
// 判断是大疆还是拓恒设备(通过设备名称是否以 TH 开头)
|
||||||
if (deviceName.startsWith("TH")) {
|
if (deviceName.startsWith("TH")) {
|
||||||
// 拓恒设备处理逻辑
|
// 拓恒设备处理逻辑
|
||||||
log.info("检测到拓恒设备: {}", deviceName);
|
// log.info("检测到拓恒设备: {}", deviceName);
|
||||||
syncTuohengDevice(childDeviceInfo, gatewayInfo.getId());
|
syncTuohengDevice(childDeviceInfo, gatewayInfo.getId());
|
||||||
} else {
|
} else {
|
||||||
// 大疆设备处理逻辑(原有逻辑)
|
// 大疆设备处理逻辑(原有逻辑)
|
||||||
log.info("检测到大疆设备: {}", deviceName);
|
// log.info("检测到大疆设备: {}", deviceName);
|
||||||
AttributeMap attributes = iThingsBoardDomain.getPredefinedDeviceAttributes(childDeviceId);
|
AttributeMap attributes = iThingsBoardDomain.getPredefinedDeviceAttributes(childDeviceId);
|
||||||
log.info("大疆设备 {} 的属性: {}", deviceName, attributes);
|
// log.info("大疆设备 {} 的属性: {}", deviceName, attributes);
|
||||||
DeviceType deviceType = determineDeviceType(childDeviceInfo, attributes);
|
DeviceType deviceType = determineDeviceType(childDeviceInfo, attributes);
|
||||||
log.info("大疆设备 {} 的类型: {}", deviceName, deviceType);
|
// log.info("大疆设备 {} 的类型: {}", deviceName, deviceType);
|
||||||
Long deviceId = syncDevice(childDeviceInfo, deviceType, gatewayInfo.getId());
|
Long deviceId = syncDevice(childDeviceInfo, deviceType, gatewayInfo.getId());
|
||||||
log.info("大疆设备 {} 同步到device表,deviceId={}", deviceName, deviceId);
|
// log.info("大疆设备 {} 同步到device表,deviceId={}", deviceName, deviceId);
|
||||||
syncDeviceByType(deviceId, childDeviceInfo.getName(), deviceType, attributes);
|
syncDeviceByType(deviceId, childDeviceInfo.getName(), deviceType, attributes);
|
||||||
log.info("大疆设备 {} 同步完成", deviceName);
|
// log.info("大疆设备 {} 同步完成", deviceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
totalCount++;
|
totalCount++;
|
||||||
|
|
@ -270,7 +270,7 @@ public class SynService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("========== 数据同步任务完成,共同步 {} 个设备,跳过 {} 个设备 ==========", totalCount, skippedCount);
|
// log.info("========== 数据同步任务完成,共同步 {} 个设备,跳过 {} 个设备 ==========", totalCount, skippedCount);
|
||||||
|
|
||||||
// 处理没有分组的机场,将其添加到默认分组
|
// 处理没有分组的机场,将其添加到默认分组
|
||||||
assignDocksToDefaultGroup();
|
assignDocksToDefaultGroup();
|
||||||
|
|
@ -286,7 +286,7 @@ public class SynService {
|
||||||
*/
|
*/
|
||||||
private void assignDocksToDefaultGroup() {
|
private void assignDocksToDefaultGroup() {
|
||||||
try {
|
try {
|
||||||
log.info("========== 开始检查并分配未分组的机场到默认分组 ==========");
|
// log.info("========== 开始检查并分配未分组的机场到默认分组 ==========");
|
||||||
|
|
||||||
// 1. 查询或创建默认分组
|
// 1. 查询或创建默认分组
|
||||||
String defaultGroupName = "默认分组";
|
String defaultGroupName = "默认分组";
|
||||||
|
|
@ -294,14 +294,14 @@ public class SynService {
|
||||||
|
|
||||||
if (defaultGroup == null) {
|
if (defaultGroup == null) {
|
||||||
// 默认分组不存在,创建它
|
// 默认分组不存在,创建它
|
||||||
log.info("默认分组不存在,开始创建: {}", defaultGroupName);
|
// log.info("默认分组不存在,开始创建: {}", defaultGroupName);
|
||||||
defaultGroup = new Group();
|
defaultGroup = new Group();
|
||||||
defaultGroup.setGroupName(defaultGroupName);
|
defaultGroup.setGroupName(defaultGroupName);
|
||||||
defaultGroup.setCreateBy("system");
|
defaultGroup.setCreateBy("system");
|
||||||
groupDomain.insertGroup(defaultGroup);
|
groupDomain.insertGroup(defaultGroup);
|
||||||
log.info("默认分组创建成功: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName);
|
// log.info("默认分组创建成功: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName);
|
||||||
} else {
|
} else {
|
||||||
log.info("默认分组已存在: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName);
|
// log.info("默认分组已存在: groupId={}, groupName={}", defaultGroup.getGroupId(), defaultGroupName);
|
||||||
}
|
}
|
||||||
|
|
||||||
Long defaultGroupId = defaultGroup.getGroupId();
|
Long defaultGroupId = defaultGroup.getGroupId();
|
||||||
|
|
@ -309,10 +309,10 @@ public class SynService {
|
||||||
// 2. 查询所有机场
|
// 2. 查询所有机场
|
||||||
Dock queryDock = new Dock();
|
Dock queryDock = new Dock();
|
||||||
List<Dock> allDocks = dockDomain.selectDockList(queryDock);
|
List<Dock> allDocks = dockDomain.selectDockList(queryDock);
|
||||||
log.info("查询到机场总数: {}", allDocks != null ? allDocks.size() : 0);
|
// log.info("查询到机场总数: {}", allDocks != null ? allDocks.size() : 0);
|
||||||
|
|
||||||
if (allDocks == null || allDocks.isEmpty()) {
|
if (allDocks == null || allDocks.isEmpty()) {
|
||||||
log.info("没有机场需要处理");
|
// log.info("没有机场需要处理");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -336,7 +336,7 @@ public class SynService {
|
||||||
|
|
||||||
dockGroupDomain.insertDockGroup(dockGroup);
|
dockGroupDomain.insertDockGroup(dockGroup);
|
||||||
assignedCount++;
|
assignedCount++;
|
||||||
log.info("机场 [ID:{}, Name:{}] 已添加到默认分组", dockId, dock.getDockName());
|
// log.info("机场 [ID:{}, Name:{}] 已添加到默认分组", dockId, dock.getDockName());
|
||||||
} else {
|
} else {
|
||||||
alreadyInGroupCount++;
|
alreadyInGroupCount++;
|
||||||
log.debug("机场 [ID:{}, Name:{}] 已在分组中,跳过", dockId, dock.getDockName());
|
log.debug("机场 [ID:{}, Name:{}] 已在分组中,跳过", dockId, dock.getDockName());
|
||||||
|
|
@ -346,8 +346,8 @@ public class SynService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("========== 机场分组检查完成:新分配 {} 个机场到默认分组,{} 个机场已有分组 ==========",
|
// log.info("========== 机场分组检查完成:新分配 {} 个机场到默认分组,{} 个机场已有分组 ==========",
|
||||||
assignedCount, alreadyInGroupCount);
|
// assignedCount, alreadyInGroupCount);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("分配机场到默认分组失败: {}", e.getMessage(), e);
|
log.error("分配机场到默认分组失败: {}", e.getMessage(), e);
|
||||||
|
|
@ -369,16 +369,16 @@ public class SynService {
|
||||||
|
|
||||||
// 获取机场挂载的无人机SN号
|
// 获取机场挂载的无人机SN号
|
||||||
Optional<String> subDeviceSnOpt = attributes.get(DeviceAttributes.SUB_DEVICE_SN);
|
Optional<String> subDeviceSnOpt = attributes.get(DeviceAttributes.SUB_DEVICE_SN);
|
||||||
log.info("机场 {} 的 sub_device.device_sn 属性: {}", deviceName,
|
// log.info("机场 {} 的 sub_device.device_sn 属性: {}", deviceName,
|
||||||
subDeviceSnOpt.isPresent() ? subDeviceSnOpt.get() : "不存在或为空");
|
// subDeviceSnOpt.isPresent() ? subDeviceSnOpt.get() : "不存在或为空");
|
||||||
|
|
||||||
if (subDeviceSnOpt.isPresent() && StringUtils.hasText(subDeviceSnOpt.get())) {
|
if (subDeviceSnOpt.isPresent() && StringUtils.hasText(subDeviceSnOpt.get())) {
|
||||||
String aircraftSn = subDeviceSnOpt.get();
|
String aircraftSn = subDeviceSnOpt.get();
|
||||||
log.info("机场 {} 尝试查找无人机: aircraftSn={}", deviceName, aircraftSn);
|
// log.info("机场 {} 尝试查找无人机: aircraftSn={}", deviceName, aircraftSn);
|
||||||
|
|
||||||
Device aircraftDevice = findDeviceBySn(aircraftSn);
|
Device aircraftDevice = findDeviceBySn(aircraftSn);
|
||||||
if (aircraftDevice != null) {
|
if (aircraftDevice != null) {
|
||||||
log.info("找到无人机设备: aircraftSn={}, deviceId={}", aircraftSn, aircraftDevice.getDeviceId());
|
// log.info("找到无人机设备: aircraftSn={}, deviceId={}", aircraftSn, aircraftDevice.getDeviceId());
|
||||||
syncDockAircraft(deviceId, aircraftDevice.getDeviceId());
|
syncDockAircraft(deviceId, aircraftDevice.getDeviceId());
|
||||||
} else {
|
} else {
|
||||||
log.warn("未找到无人机设备: aircraftSn={}, 可能无人机尚未同步", aircraftSn);
|
log.warn("未找到无人机设备: aircraftSn={}, 可能无人机尚未同步", aircraftSn);
|
||||||
|
|
@ -391,12 +391,12 @@ public class SynService {
|
||||||
Optional<String> dockSnOpt = attributes.get(DeviceAttributes.DOCK_SN);
|
Optional<String> dockSnOpt = attributes.get(DeviceAttributes.DOCK_SN);
|
||||||
if (dockSnOpt.isPresent() && StringUtils.hasText(dockSnOpt.get())) {
|
if (dockSnOpt.isPresent() && StringUtils.hasText(dockSnOpt.get())) {
|
||||||
String dockSn = dockSnOpt.get();
|
String dockSn = dockSnOpt.get();
|
||||||
log.info("无人机 {} 尝试查找所属机场: dockSn={}", deviceName, dockSn);
|
// log.info("无人机 {} 尝试查找所属机场: dockSn={}", deviceName, dockSn);
|
||||||
|
|
||||||
// 通过机场SN号查找机场设备
|
// 通过机场SN号查找机场设备
|
||||||
Device dockDevice = findDeviceBySn(dockSn);
|
Device dockDevice = findDeviceBySn(dockSn);
|
||||||
if (dockDevice != null) {
|
if (dockDevice != null) {
|
||||||
log.info("找到机场设备: dockSn={}, deviceId={}", dockSn, dockDevice.getDeviceId());
|
// log.info("找到机场设备: dockSn={}, deviceId={}", dockSn, dockDevice.getDeviceId());
|
||||||
|
|
||||||
// 只有在找到机场的情况下,才同步无人机表
|
// 只有在找到机场的情况下,才同步无人机表
|
||||||
syncAircraft(deviceId, deviceName);
|
syncAircraft(deviceId, deviceName);
|
||||||
|
|
@ -457,9 +457,9 @@ public class SynService {
|
||||||
String iotDeviceId = deviceInfo.getId();
|
String iotDeviceId = deviceInfo.getId();
|
||||||
String deviceName = deviceInfo.getName();
|
String deviceName = deviceInfo.getName();
|
||||||
String deviceSn = deviceName; // 使用设备名称作为SN号,网关其实是没有SN号的
|
String deviceSn = deviceName; // 使用设备名称作为SN号,网关其实是没有SN号的
|
||||||
|
//
|
||||||
log.info("开始同步设备: iotDeviceId={}, deviceName={}, deviceType={}, gatewayId={}",
|
// log.info("开始同步设备: iotDeviceId={}, deviceName={}, deviceType={}, gatewayId={}",
|
||||||
iotDeviceId, deviceName, deviceType, gatewayId);
|
// iotDeviceId, deviceName, deviceType, gatewayId);
|
||||||
|
|
||||||
// 查询设备是否已存在(通过 iotDeviceId)
|
// 查询设备是否已存在(通过 iotDeviceId)
|
||||||
Device existingDevice = deviceDomain.selectDeviceByIotDeviceId(iotDeviceId);
|
Device existingDevice = deviceDomain.selectDeviceByIotDeviceId(iotDeviceId);
|
||||||
|
|
@ -483,7 +483,7 @@ public class SynService {
|
||||||
// 尝试获取锁,最多等待3秒
|
// 尝试获取锁,最多等待3秒
|
||||||
boolean locked = tryLock(lockKey, lockValue, 10);
|
boolean locked = tryLock(lockKey, lockValue, 10);
|
||||||
if (!locked) {
|
if (!locked) {
|
||||||
log.warn("获取设备同步锁失败,可能有其他线程正在同步该设备: deviceSn={}", deviceSn);
|
// log.warn("获取设备同步锁失败,可能有其他线程正在同步该设备: deviceSn={}", deviceSn);
|
||||||
// 等待一小段时间后重新查询,可能已经被其他线程插入
|
// 等待一小段时间后重新查询,可能已经被其他线程插入
|
||||||
try {
|
try {
|
||||||
Thread.sleep(100);
|
Thread.sleep(100);
|
||||||
|
|
@ -492,7 +492,7 @@ public class SynService {
|
||||||
}
|
}
|
||||||
Device retryDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
Device retryDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
||||||
if (retryDevice != null) {
|
if (retryDevice != null) {
|
||||||
log.info("重新查询到设备: deviceSn={}, deviceId={}", deviceSn, retryDevice.getDeviceId());
|
// log.info("重新查询到设备: deviceSn={}, deviceId={}", deviceSn, retryDevice.getDeviceId());
|
||||||
return retryDevice.getDeviceId();
|
return retryDevice.getDeviceId();
|
||||||
}
|
}
|
||||||
log.error("获取锁失败且重新查询也未找到设备: deviceSn={}", deviceSn);
|
log.error("获取锁失败且重新查询也未找到设备: deviceSn={}", deviceSn);
|
||||||
|
|
@ -503,7 +503,7 @@ public class SynService {
|
||||||
// 双重检查:获取锁后再次查询,防止重复插入
|
// 双重检查:获取锁后再次查询,防止重复插入
|
||||||
Device doubleCheckDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
Device doubleCheckDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
||||||
if (doubleCheckDevice != null) {
|
if (doubleCheckDevice != null) {
|
||||||
log.info("双重检查发现设备已存在: deviceSn={}, deviceId={}", deviceSn, doubleCheckDevice.getDeviceId());
|
// log.info("双重检查发现设备已存在: deviceSn={}, deviceId={}", deviceSn, doubleCheckDevice.getDeviceId());
|
||||||
return doubleCheckDevice.getDeviceId();
|
return doubleCheckDevice.getDeviceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -520,13 +520,13 @@ public class SynService {
|
||||||
String manufacturer = deviceName.startsWith("TH") ? "tuoheng" : "dajiang";
|
String manufacturer = deviceName.startsWith("TH") ? "tuoheng" : "dajiang";
|
||||||
newDevice.setDeviceManufacturer(manufacturer);
|
newDevice.setDeviceManufacturer(manufacturer);
|
||||||
|
|
||||||
log.info("准备插入新设备: deviceName={}, deviceType={}, deviceSn={}, manufacturer={}",
|
// log.info("准备插入新设备: deviceName={}, deviceType={}, deviceSn={}, manufacturer={}",
|
||||||
deviceName, deviceType, deviceSn, manufacturer);
|
// deviceName, deviceType, deviceSn, manufacturer);
|
||||||
deviceDomain.insertDevice(newDevice);
|
deviceDomain.insertDevice(newDevice);
|
||||||
|
|
||||||
Long deviceId = newDevice.getDeviceId();
|
Long deviceId = newDevice.getDeviceId();
|
||||||
log.info("插入新设备成功: iotDeviceId={}, deviceName={}, deviceType={}, 返回deviceId={}",
|
// log.info("插入新设备成功: iotDeviceId={}, deviceName={}, deviceType={}, 返回deviceId={}",
|
||||||
iotDeviceId, deviceName, deviceType, deviceId);
|
// iotDeviceId, deviceName, deviceType, deviceId);
|
||||||
return deviceId;
|
return deviceId;
|
||||||
} finally {
|
} finally {
|
||||||
// 释放锁
|
// 释放锁
|
||||||
|
|
@ -563,8 +563,8 @@ public class SynService {
|
||||||
if (needUpdate) {
|
if (needUpdate) {
|
||||||
existingDevice.setUpdateBy("system");
|
existingDevice.setUpdateBy("system");
|
||||||
deviceDomain.updateDevice(existingDevice);
|
deviceDomain.updateDevice(existingDevice);
|
||||||
log.info("更新设备: iotDeviceId={}, deviceName={}, deviceType={}, manufacturer={}",
|
// log.info("更新设备: iotDeviceId={}, deviceName={}, deviceType={}, manufacturer={}",
|
||||||
iotDeviceId, deviceName, deviceType, manufacturer);
|
// iotDeviceId, deviceName, deviceType, manufacturer);
|
||||||
}
|
}
|
||||||
|
|
||||||
return existingDevice.getDeviceId();
|
return existingDevice.getDeviceId();
|
||||||
|
|
@ -582,7 +582,7 @@ public class SynService {
|
||||||
* @param deviceName 设备名称
|
* @param deviceName 设备名称
|
||||||
*/
|
*/
|
||||||
private void syncDock(Long deviceId, String deviceName) {
|
private void syncDock(Long deviceId, String deviceName) {
|
||||||
log.info("开始同步机场: deviceId={}, deviceName={}", deviceId, deviceName);
|
// log.info("开始同步机场: deviceId={}, deviceName={}", deviceId, deviceName);
|
||||||
|
|
||||||
// 查询机场是否已存在
|
// 查询机场是否已存在
|
||||||
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
|
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
|
||||||
|
|
@ -596,14 +596,14 @@ public class SynService {
|
||||||
newDock.setDeviceId(deviceId);
|
newDock.setDeviceId(deviceId);
|
||||||
newDock.setCreateBy("system");
|
newDock.setCreateBy("system");
|
||||||
|
|
||||||
log.info("准备插入新机场: deviceId={}, dockName={}", deviceId, deviceName);
|
// log.info("准备插入新机场: deviceId={}, dockName={}", deviceId, deviceName);
|
||||||
dockDomain.insertDock(newDock);
|
dockDomain.insertDock(newDock);
|
||||||
dockId = newDock.getDockId();
|
dockId = newDock.getDockId();
|
||||||
log.info("插入新机场成功: deviceId={}, dockName={}, dockId={}",
|
// log.info("插入新机场成功: deviceId={}, dockName={}, dockId={}",
|
||||||
deviceId, deviceName, dockId);
|
// deviceId, deviceName, dockId);
|
||||||
} else {
|
} else {
|
||||||
dockId = existingDock.getDockId();
|
dockId = existingDock.getDockId();
|
||||||
log.info("机场已存在: deviceId={}, dockName={}, dockId={}", deviceId, deviceName, dockId);
|
// log.info("机场已存在: deviceId={}, dockName={}, dockId={}", deviceId, deviceName, dockId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 确保默认分组存在
|
// 确保默认分组存在
|
||||||
|
|
@ -616,7 +616,7 @@ public class SynService {
|
||||||
// 机场不在任何分组中,将其插入默认分组
|
// 机场不在任何分组中,将其插入默认分组
|
||||||
insertDockToDefaultGroup(dockId, deviceName);
|
insertDockToDefaultGroup(dockId, deviceName);
|
||||||
} else {
|
} else {
|
||||||
log.info("机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
|
// log.info("机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -628,7 +628,7 @@ public class SynService {
|
||||||
* @return 无人机主键ID
|
* @return 无人机主键ID
|
||||||
*/
|
*/
|
||||||
private Long syncAircraft(Long deviceId, String deviceName) {
|
private Long syncAircraft(Long deviceId, String deviceName) {
|
||||||
log.info("开始同步无人机: deviceId={}, deviceName={}", deviceId, deviceName);
|
// log.info("开始同步无人机: deviceId={}, deviceName={}", deviceId, deviceName);
|
||||||
|
|
||||||
// 查询无人机是否已存在
|
// 查询无人机是否已存在
|
||||||
Aircraft existingAircraft = aircraftDomain.selectAircraftByDeviceId(deviceId);
|
Aircraft existingAircraft = aircraftDomain.selectAircraftByDeviceId(deviceId);
|
||||||
|
|
@ -640,20 +640,20 @@ public class SynService {
|
||||||
newAircraft.setDeviceId(deviceId);
|
newAircraft.setDeviceId(deviceId);
|
||||||
newAircraft.setCreateBy("system");
|
newAircraft.setCreateBy("system");
|
||||||
|
|
||||||
log.info("准备插入新无人机: deviceId={}, aircraftName={}", deviceId, deviceName);
|
// log.info("准备插入新无人机: deviceId={}, aircraftName={}", deviceId, deviceName);
|
||||||
aircraftDomain.insertAircraft(newAircraft);
|
aircraftDomain.insertAircraft(newAircraft);
|
||||||
|
|
||||||
Long aircraftId = newAircraft.getAircraftId();
|
Long aircraftId = newAircraft.getAircraftId();
|
||||||
log.info("插入新无人机成功: deviceId={}, aircraftName={}, aircraftId={}",
|
// log.info("插入新无人机成功: deviceId={}, aircraftName={}, aircraftId={}",
|
||||||
deviceId, deviceName, aircraftId);
|
// deviceId, deviceName, aircraftId);
|
||||||
|
|
||||||
// 新插入的无人机,直接返回 aircraftId,不需要处理 PSDK 设备
|
// 新插入的无人机,直接返回 aircraftId,不需要处理 PSDK 设备
|
||||||
return aircraftId;
|
return aircraftId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 无人机已存在,记录日志
|
// 无人机已存在,记录日志
|
||||||
log.info("无人机已存在: deviceId={}, aircraftName={}, aircraftId={}",
|
// log.info("无人机已存在: deviceId={}, aircraftName={}, aircraftId={}",
|
||||||
deviceId, deviceName, existingAircraft.getAircraftId());
|
// deviceId, deviceName, existingAircraft.getAircraftId());
|
||||||
|
|
||||||
Device device = deviceDomain.selectDeviceByDeviceId(deviceId);
|
Device device = deviceDomain.selectDeviceByDeviceId(deviceId);
|
||||||
TelemetryMap telemetryMap = iThingsBoardDomain.getPredefinedDeviceTelemetry(device.getIotDeviceId());
|
TelemetryMap telemetryMap = iThingsBoardDomain.getPredefinedDeviceTelemetry(device.getIotDeviceId());
|
||||||
|
|
@ -667,8 +667,8 @@ public class SynService {
|
||||||
for (PsdkDevice psdkDevice : psdkDevices) {
|
for (PsdkDevice psdkDevice : psdkDevices) {
|
||||||
if(Objects.nonNull(psdkDevice.getSpeaker()) &&
|
if(Objects.nonNull(psdkDevice.getSpeaker()) &&
|
||||||
Objects.nonNull(psdkDevice.getPsdk_sn()) && !psdkDevice.getPsdk_sn().isEmpty()) {
|
Objects.nonNull(psdkDevice.getPsdk_sn()) && !psdkDevice.getPsdk_sn().isEmpty()) {
|
||||||
log.info("开始同步PSDK喊话器设备: psdkSn={}, psdkName={}",
|
// log.info("开始同步PSDK喊话器设备: psdkSn={}, psdkName={}",
|
||||||
psdkDevice.getPsdk_sn(), psdkDevice.getPsdk_name());
|
// psdkDevice.getPsdk_sn(), psdkDevice.getPsdk_name());
|
||||||
|
|
||||||
// 第一步:同步挂载设备(喊话器)
|
// 第一步:同步挂载设备(喊话器)
|
||||||
Payload payload = new Payload();
|
Payload payload = new Payload();
|
||||||
|
|
@ -682,13 +682,13 @@ public class SynService {
|
||||||
payload.setPayloadType(PayloadTypeEnum.SPEAKER.getCode());
|
payload.setPayloadType(PayloadTypeEnum.SPEAKER.getCode());
|
||||||
payload.setCreateBy("system");
|
payload.setCreateBy("system");
|
||||||
payloadDomain.insertPayload(payload);
|
payloadDomain.insertPayload(payload);
|
||||||
log.info("插入新挂载设备: payloadSn={}, payloadName={}, payloadId={}",
|
// log.info("插入新挂载设备: payloadSn={}, payloadName={}, payloadId={}",
|
||||||
psdkDevice.getPsdk_sn(), psdkDevice.getPsdk_name(), payload.getPayloadId());
|
// psdkDevice.getPsdk_sn(), psdkDevice.getPsdk_name(), payload.getPayloadId());
|
||||||
} else {
|
} else {
|
||||||
// 挂载已存在,使用已有的挂载
|
// 挂载已存在,使用已有的挂载
|
||||||
payload = payloads.get(0);
|
payload = payloads.get(0);
|
||||||
log.info("挂载设备已存在: payloadSn={}, payloadId={}",
|
// log.info("挂载设备已存在: payloadSn={}, payloadId={}",
|
||||||
psdkDevice.getPsdk_sn(), payload.getPayloadId());
|
// psdkDevice.getPsdk_sn(), payload.getPayloadId());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 第二步:同步无人机挂载关联表
|
// 第二步:同步无人机挂载关联表
|
||||||
|
|
@ -719,11 +719,11 @@ public class SynService {
|
||||||
if(needUpdate) {
|
if(needUpdate) {
|
||||||
existingRelation.setUpdateBy("system");
|
existingRelation.setUpdateBy("system");
|
||||||
aircraftPayloadDomain.updateAircraftPayload(existingRelation);
|
aircraftPayloadDomain.updateAircraftPayload(existingRelation);
|
||||||
log.info("更新无人机挂载关联: aircraftId={}, payloadId={}, dockId={}",
|
// log.info("更新无人机挂载关联: aircraftId={}, payloadId={}, dockId={}",
|
||||||
aircraftId, payloadId, dockId);
|
// aircraftId, payloadId, dockId);
|
||||||
} else {
|
} else {
|
||||||
log.info("无人机挂载关联无需更新: aircraftId={}, payloadId={}",
|
// log.info("无人机挂载关联无需更新: aircraftId={}, payloadId={}",
|
||||||
aircraftId, payloadId);
|
// aircraftId, payloadId);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 关联不存在,插入新关联
|
// 关联不存在,插入新关联
|
||||||
|
|
@ -733,8 +733,8 @@ public class SynService {
|
||||||
newRelation.setDockId(dockId);
|
newRelation.setDockId(dockId);
|
||||||
newRelation.setCreateBy("system");
|
newRelation.setCreateBy("system");
|
||||||
aircraftPayloadDomain.insertAircraftPayload(newRelation);
|
aircraftPayloadDomain.insertAircraftPayload(newRelation);
|
||||||
log.info("插入无人机挂载关联: aircraftId={}, payloadId={}, dockId={}",
|
// log.info("插入无人机挂载关联: aircraftId={}, payloadId={}, dockId={}",
|
||||||
aircraftId, payloadId, dockId);
|
// aircraftId, payloadId, dockId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -784,7 +784,7 @@ public class SynService {
|
||||||
* @param aircraftDeviceId 无人机设备主键ID
|
* @param aircraftDeviceId 无人机设备主键ID
|
||||||
*/
|
*/
|
||||||
private void syncDockAircraft(Long dockDeviceId, Long aircraftDeviceId) {
|
private void syncDockAircraft(Long dockDeviceId, Long aircraftDeviceId) {
|
||||||
log.info("开始同步机场无人机关联: dockDeviceId={}, aircraftDeviceId={}", dockDeviceId, aircraftDeviceId);
|
// log.info("开始同步机场无人机关联: dockDeviceId={}, aircraftDeviceId={}", dockDeviceId, aircraftDeviceId);
|
||||||
|
|
||||||
// 获取机场主键
|
// 获取机场主键
|
||||||
Dock dock = dockDomain.selectDockByDeviceId(dockDeviceId);
|
Dock dock = dockDomain.selectDockByDeviceId(dockDeviceId);
|
||||||
|
|
@ -792,7 +792,7 @@ public class SynService {
|
||||||
log.warn("机场不存在,无法同步机场无人机关联: dockDeviceId={}", dockDeviceId);
|
log.warn("机场不存在,无法同步机场无人机关联: dockDeviceId={}", dockDeviceId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
log.info("找到机场: dockId={}, dockName={}", dock.getDockId(), dock.getDockName());
|
// log.info("找到机场: dockId={}, dockName={}", dock.getDockId(), dock.getDockName());
|
||||||
|
|
||||||
// 获取无人机主键
|
// 获取无人机主键
|
||||||
Aircraft aircraft = aircraftDomain.selectAircraftByDeviceId(aircraftDeviceId);
|
Aircraft aircraft = aircraftDomain.selectAircraftByDeviceId(aircraftDeviceId);
|
||||||
|
|
@ -815,7 +815,7 @@ public class SynService {
|
||||||
newRelation.setCreateBy("system");
|
newRelation.setCreateBy("system");
|
||||||
|
|
||||||
dockAircraftDomain.insertDockAircraft(newRelation);
|
dockAircraftDomain.insertDockAircraft(newRelation);
|
||||||
log.info("插入机场无人机关联: dockId={}, aircraftId={}", dockId, aircraftId);
|
// log.info("插入机场无人机关联: dockId={}, aircraftId={}", dockId, aircraftId);
|
||||||
} else {
|
} else {
|
||||||
// 机场已有关联,检查是否需要更新
|
// 机场已有关联,检查是否需要更新
|
||||||
DockAircraft existingRelation = existingRelations.get(0);
|
DockAircraft existingRelation = existingRelations.get(0);
|
||||||
|
|
@ -824,7 +824,7 @@ public class SynService {
|
||||||
existingRelation.setAircraftId(aircraftId);
|
existingRelation.setAircraftId(aircraftId);
|
||||||
existingRelation.setUpdateBy("system");
|
existingRelation.setUpdateBy("system");
|
||||||
dockAircraftDomain.updateDockAircraft(existingRelation);
|
dockAircraftDomain.updateDockAircraft(existingRelation);
|
||||||
log.info("更新机场无人机关联: dockId=, aircraftId={}", dockId, aircraftId);
|
// log.info("更新机场无人机关联: dockId=, aircraftId={}", dockId, aircraftId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -847,7 +847,7 @@ public class SynService {
|
||||||
newGroup.setRemark("系统自动创建的默认分组,用于存放未分组的机场");
|
newGroup.setRemark("系统自动创建的默认分组,用于存放未分组的机场");
|
||||||
|
|
||||||
groupDomain.insertGroup(newGroup);
|
groupDomain.insertGroup(newGroup);
|
||||||
log.info("创建默认分组成功: groupId={}, groupName={}", defaultGroupId, "默认分组");
|
// log.info("创建默认分组成功: groupId={}, groupName={}", defaultGroupId, "默认分组");
|
||||||
} else {
|
} else {
|
||||||
log.debug("默认分组已存在: groupId={}, groupName={}", defaultGroupId, defaultGroup.getGroupName());
|
log.debug("默认分组已存在: groupId={}, groupName={}", defaultGroupId, defaultGroup.getGroupName());
|
||||||
}
|
}
|
||||||
|
|
@ -869,8 +869,8 @@ public class SynService {
|
||||||
newDockGroup.setRemark("系统自动添加到默认分组");
|
newDockGroup.setRemark("系统自动添加到默认分组");
|
||||||
|
|
||||||
dockGroupDomain.insertDockGroup(newDockGroup);
|
dockGroupDomain.insertDockGroup(newDockGroup);
|
||||||
log.info("将机场添加到默认分组: dockId={}, dockName={}, groupId={}",
|
// log.info("将机场添加到默认分组: dockId={}, dockName={}, groupId={}",
|
||||||
dockId, dockName, defaultGroupId);
|
// dockId, dockName, defaultGroupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -883,7 +883,7 @@ public class SynService {
|
||||||
String deviceId = deviceInfo.getId();
|
String deviceId = deviceInfo.getId();
|
||||||
String deviceName = deviceInfo.getName(); // 这是SN号,如 THJSQ03B2410TGJ3MCJY
|
String deviceName = deviceInfo.getName(); // 这是SN号,如 THJSQ03B2410TGJ3MCJY
|
||||||
|
|
||||||
log.info("开始同步拓恒设备: deviceName(SN)={}", deviceName);
|
// log.info("开始同步拓恒设备: deviceName(SN)={}", deviceName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取拓恒设备属性
|
// 获取拓恒设备属性
|
||||||
|
|
@ -897,8 +897,8 @@ public class SynService {
|
||||||
Optional<String> firmwareVersionOpt = attributes.get(TuohengDeviceAttributes.HARDWARE_VERSION);
|
Optional<String> firmwareVersionOpt = attributes.get(TuohengDeviceAttributes.HARDWARE_VERSION);
|
||||||
String firmwareVersion = firmwareVersionOpt.orElse("");
|
String firmwareVersion = firmwareVersionOpt.orElse("");
|
||||||
|
|
||||||
log.info("拓恒设备属性: SN={}, airportID={}, firmwareVersion={}",
|
// log.info("拓恒设备属性: SN={}, airportID={}, firmwareVersion={}",
|
||||||
deviceName, airportId, firmwareVersion);
|
// deviceName, airportId, firmwareVersion);
|
||||||
|
|
||||||
// 1. 同步到 device 表(作为机场)- 使用原始 SN
|
// 1. 同步到 device 表(作为机场)- 使用原始 SN
|
||||||
Long dockDeviceId = syncTuohengDeviceAsType(deviceInfo, DeviceType.DOCK, gatewayId, deviceName);
|
Long dockDeviceId = syncTuohengDeviceAsType(deviceInfo, DeviceType.DOCK, gatewayId, deviceName);
|
||||||
|
|
@ -916,8 +916,8 @@ public class SynService {
|
||||||
// 5. 同步到 device_dock_aircraft 表(建立机场-无人机关联)
|
// 5. 同步到 device_dock_aircraft 表(建立机场-无人机关联)
|
||||||
syncDockAircraft(dockDeviceId, aircraftDeviceId);
|
syncDockAircraft(dockDeviceId, aircraftDeviceId);
|
||||||
|
|
||||||
log.info("拓恒设备同步完成: SN={}, dockDeviceId={}, aircraftDeviceId={}",
|
// log.info("拓恒设备同步完成: SN={}, dockDeviceId={}, aircraftDeviceId={}",
|
||||||
deviceName, dockDeviceId, aircraftDeviceId);
|
// deviceName, dockDeviceId, aircraftDeviceId);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("同步拓恒设备失败: deviceName={}, error={}", deviceName, e.getMessage(), e);
|
log.error("同步拓恒设备失败: deviceName={}, error={}", deviceName, e.getMessage(), e);
|
||||||
|
|
@ -938,8 +938,8 @@ public class SynService {
|
||||||
String iotDeviceId = deviceInfo.getId();
|
String iotDeviceId = deviceInfo.getId();
|
||||||
String deviceName = deviceInfo.getName();
|
String deviceName = deviceInfo.getName();
|
||||||
|
|
||||||
log.info("开始同步拓恒设备到device表: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}, gatewayId={}",
|
// log.info("开始同步拓恒设备到device表: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}, gatewayId={}",
|
||||||
iotDeviceId, deviceName, deviceType, deviceSn, gatewayId);
|
// iotDeviceId, deviceName, deviceType, deviceSn, gatewayId);
|
||||||
|
|
||||||
// 查询设备是否已存在(通过 iotDeviceId + deviceType 组合查询)
|
// 查询设备是否已存在(通过 iotDeviceId + deviceType 组合查询)
|
||||||
Device queryDevice = new Device();
|
Device queryDevice = new Device();
|
||||||
|
|
@ -976,7 +976,7 @@ public class SynService {
|
||||||
}
|
}
|
||||||
Device retryDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
Device retryDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
||||||
if (retryDevice != null) {
|
if (retryDevice != null) {
|
||||||
log.info("重新查询到拓恒设备: deviceSn={}, deviceId={}", deviceSn, retryDevice.getDeviceId());
|
// log.info("重新查询到拓恒设备: deviceSn={}, deviceId={}", deviceSn, retryDevice.getDeviceId());
|
||||||
return retryDevice.getDeviceId();
|
return retryDevice.getDeviceId();
|
||||||
}
|
}
|
||||||
log.error("获取锁失败且重新查询也未找到拓恒设备: deviceSn={}", deviceSn);
|
log.error("获取锁失败且重新查询也未找到拓恒设备: deviceSn={}", deviceSn);
|
||||||
|
|
@ -987,7 +987,7 @@ public class SynService {
|
||||||
// 双重检查
|
// 双重检查
|
||||||
Device doubleCheckDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
Device doubleCheckDevice = deviceDomain.selectDeviceByDeviceSn(deviceSn);
|
||||||
if (doubleCheckDevice != null) {
|
if (doubleCheckDevice != null) {
|
||||||
log.info("双重检查发现拓恒设备已存在: deviceSn={}, deviceId={}", deviceSn, doubleCheckDevice.getDeviceId());
|
// log.info("双重检查发现拓恒设备已存在: deviceSn={}, deviceId={}", deviceSn, doubleCheckDevice.getDeviceId());
|
||||||
return doubleCheckDevice.getDeviceId();
|
return doubleCheckDevice.getDeviceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1001,13 +1001,13 @@ public class SynService {
|
||||||
newDevice.setDeviceManufacturer("tuoheng");
|
newDevice.setDeviceManufacturer("tuoheng");
|
||||||
newDevice.setCreateBy("system");
|
newDevice.setCreateBy("system");
|
||||||
|
|
||||||
log.info("准备插入新拓恒设备: deviceName={}, deviceType={}, deviceSn={}, manufacturer=tuoheng",
|
// log.info("准备插入新拓恒设备: deviceName={}, deviceType={}, deviceSn={}, manufacturer=tuoheng",
|
||||||
deviceName, deviceType, deviceSn);
|
// deviceName, deviceType, deviceSn);
|
||||||
deviceDomain.insertDevice(newDevice);
|
deviceDomain.insertDevice(newDevice);
|
||||||
|
|
||||||
Long deviceId = newDevice.getDeviceId();
|
Long deviceId = newDevice.getDeviceId();
|
||||||
log.info("插入新拓恒设备成功: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}, 返回deviceId={}",
|
// log.info("插入新拓恒设备成功: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}, 返回deviceId={}",
|
||||||
iotDeviceId, deviceName, deviceType, deviceSn, deviceId);
|
// iotDeviceId, deviceName, deviceType, deviceSn, deviceId);
|
||||||
return deviceId;
|
return deviceId;
|
||||||
} finally {
|
} finally {
|
||||||
// 释放锁
|
// 释放锁
|
||||||
|
|
@ -1033,8 +1033,8 @@ public class SynService {
|
||||||
if (needUpdate) {
|
if (needUpdate) {
|
||||||
existingDevice.setUpdateBy("system");
|
existingDevice.setUpdateBy("system");
|
||||||
deviceDomain.updateDevice(existingDevice);
|
deviceDomain.updateDevice(existingDevice);
|
||||||
log.info("更新拓恒设备: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}",
|
// log.info("更新拓恒设备: iotDeviceId={}, deviceName={}, deviceType={}, deviceSn={}",
|
||||||
iotDeviceId, deviceName, deviceType, deviceSn);
|
// iotDeviceId, deviceName, deviceType, deviceSn);
|
||||||
}
|
}
|
||||||
|
|
||||||
return existingDevice.getDeviceId();
|
return existingDevice.getDeviceId();
|
||||||
|
|
@ -1050,7 +1050,7 @@ public class SynService {
|
||||||
* @param firmwareVersion 固件版本
|
* @param firmwareVersion 固件版本
|
||||||
*/
|
*/
|
||||||
private void syncTuohengDock(Long deviceId, String sn, String airportId, String firmwareVersion) {
|
private void syncTuohengDock(Long deviceId, String sn, String airportId, String firmwareVersion) {
|
||||||
log.info("开始同步拓恒机场: deviceId={}, SN={}, airportID={}", deviceId, sn, airportId);
|
// log.info("开始同步拓恒机场: deviceId={}, SN={}, airportID={}", deviceId, sn, airportId);
|
||||||
|
|
||||||
// 查询机场是否已存在
|
// 查询机场是否已存在
|
||||||
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
|
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
|
||||||
|
|
@ -1063,13 +1063,13 @@ public class SynService {
|
||||||
newDock.setDeviceId(deviceId);
|
newDock.setDeviceId(deviceId);
|
||||||
newDock.setCreateBy("system");
|
newDock.setCreateBy("system");
|
||||||
|
|
||||||
log.info("准备插入新拓恒机场: deviceId={}, dockName={}, SN={}", deviceId, airportId, sn);
|
// log.info("准备插入新拓恒机场: deviceId={}, dockName={}, SN={}", deviceId, airportId, sn);
|
||||||
dockDomain.insertDock(newDock);
|
dockDomain.insertDock(newDock);
|
||||||
dockId = newDock.getDockId();
|
dockId = newDock.getDockId();
|
||||||
log.info("插入新拓恒机场成功: dockId={}", dockId);
|
// log.info("插入新拓恒机场成功: dockId={}", dockId);
|
||||||
} else {
|
} else {
|
||||||
dockId = existingDock.getDockId();
|
dockId = existingDock.getDockId();
|
||||||
log.info("拓恒机场已存在: deviceId={}, dockId={}", deviceId, dockId);
|
// log.info("拓恒机场已存在: deviceId={}, dockId={}", deviceId, dockId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 确保默认分组存在
|
// 确保默认分组存在
|
||||||
|
|
@ -1082,7 +1082,7 @@ public class SynService {
|
||||||
// 机场不在任何分组中,将其插入默认分组
|
// 机场不在任何分组中,将其插入默认分组
|
||||||
insertDockToDefaultGroup(dockId, airportId);
|
insertDockToDefaultGroup(dockId, airportId);
|
||||||
} else {
|
} else {
|
||||||
log.info("拓恒机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
|
// log.info("拓恒机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1096,7 +1096,7 @@ public class SynService {
|
||||||
* @return 无人机主键ID
|
* @return 无人机主键ID
|
||||||
*/
|
*/
|
||||||
private Long syncTuohengAircraft(Long deviceId, String sn, String airportId, String firmwareVersion) {
|
private Long syncTuohengAircraft(Long deviceId, String sn, String airportId, String firmwareVersion) {
|
||||||
log.info("开始同步拓恒无人机: deviceId={}, SN={}, airportID={}", deviceId, sn, airportId);
|
// log.info("开始同步拓恒无人机: deviceId={}, SN={}, airportID={}", deviceId, sn, airportId);
|
||||||
|
|
||||||
if (deviceId == null) {
|
if (deviceId == null) {
|
||||||
log.error("同步拓恒无人机失败: deviceId 为 null, SN={}", sn);
|
log.error("同步拓恒无人机失败: deviceId 为 null, SN={}", sn);
|
||||||
|
|
@ -1113,14 +1113,14 @@ public class SynService {
|
||||||
newAircraft.setDeviceId(deviceId);
|
newAircraft.setDeviceId(deviceId);
|
||||||
newAircraft.setCreateBy("system");
|
newAircraft.setCreateBy("system");
|
||||||
|
|
||||||
log.info("准备插入新拓恒无人机: deviceId={}, aircraftName={}, SN={}", deviceId, airportId, sn);
|
// log.info("准备插入新拓恒无人机: deviceId={}, aircraftName={}, SN={}", deviceId, airportId, sn);
|
||||||
aircraftDomain.insertAircraft(newAircraft);
|
aircraftDomain.insertAircraft(newAircraft);
|
||||||
|
|
||||||
Long aircraftId = newAircraft.getAircraftId();
|
Long aircraftId = newAircraft.getAircraftId();
|
||||||
log.info("插入新拓恒无人机成功: deviceId={}, aircraftId={}", deviceId, aircraftId);
|
// log.info("插入新拓恒无人机成功: deviceId={}, aircraftId={}", deviceId, aircraftId);
|
||||||
return aircraftId;
|
return aircraftId;
|
||||||
} else {
|
} else {
|
||||||
log.info("拓恒无人机已存在: deviceId={}, aircraftId={}", deviceId, existingAircraft.getAircraftId());
|
// log.info("拓恒无人机已存在: deviceId={}, aircraftId={}", deviceId, existingAircraft.getAircraftId());
|
||||||
return existingAircraft.getAircraftId();
|
return existingAircraft.getAircraftId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,10 +103,10 @@ public class TuohengService {
|
||||||
handler.registerRealTimeDataCallback(new ITuohengRealTimeDataCallback() {
|
handler.registerRealTimeDataCallback(new ITuohengRealTimeDataCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onRealTimeData(String deviceSn, TuohengRealTimeData data) {
|
public void onRealTimeData(String deviceSn, TuohengRealTimeData data) {
|
||||||
log.info("========== 收到拓恒实时数据 ==========");
|
// log.info("========== 收到拓恒实时数据 ==========");
|
||||||
log.info("设备SN: {}", deviceSn);
|
log.info("收到拓恒实时数据 设备SN: {}", deviceSn);
|
||||||
try {
|
try {
|
||||||
log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
// log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
||||||
|
|
||||||
// 更新机场心跳时间戳
|
// 更新机场心跳时间戳
|
||||||
updateAirportHeartbeat(deviceSn);
|
updateAirportHeartbeat(deviceSn);
|
||||||
|
|
@ -117,17 +117,17 @@ public class TuohengService {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("处理实时数据失败", e);
|
log.error("处理实时数据失败", e);
|
||||||
}
|
}
|
||||||
log.info("=====================================");
|
// log.info("=====================================");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
handler.registerOsdCallback(new ITuohengOsdCallback() {
|
handler.registerOsdCallback(new ITuohengOsdCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onOsdData(String deviceSn, AirportOsdData data) {
|
public void onOsdData(String deviceSn, AirportOsdData data) {
|
||||||
log.info("========== 收到拓恒OSD数据 ==========");
|
// log.info("========== 收到拓恒OSD数据 ==========");
|
||||||
log.info("设备SN: {}", deviceSn);
|
log.info("收到拓恒OSD数据 设备SN: {}", deviceSn);
|
||||||
try {
|
try {
|
||||||
log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
// log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
||||||
|
|
||||||
// 同步飞行状态到 MachineStateManager
|
// 同步飞行状态到 MachineStateManager
|
||||||
syncFlightState(deviceSn, data);
|
syncFlightState(deviceSn, data);
|
||||||
|
|
@ -135,21 +135,21 @@ public class TuohengService {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("序列化数据失败", e);
|
log.error("序列化数据失败", e);
|
||||||
}
|
}
|
||||||
log.info("=====================================");
|
// log.info("=====================================");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
handler.registerEventsCallback(new ITuohengEventsCallback() {
|
handler.registerEventsCallback(new ITuohengEventsCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onEventsData(String deviceSn, EventsData data) {
|
public void onEventsData(String deviceSn, EventsData data) {
|
||||||
log.info("========== 收到拓恒Events数据 ==========");
|
// log.info("========== 收到拓恒Events数据 ==========");
|
||||||
log.info("设备SN: {}", deviceSn);
|
log.info("收到拓恒Events数据 设备SN: {}", deviceSn);
|
||||||
try {
|
try {
|
||||||
log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
// log.info("数据内容: {}", objectMapper.writeValueAsString(data));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("序列化数据失败", e);
|
log.error("序列化数据失败", e);
|
||||||
}
|
}
|
||||||
log.info("=====================================");
|
// log.info("=====================================");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue