修改日志打印

This commit is contained in:
孙小云 2026-02-11 10:47:58 +08:00
parent 880f98e8e1
commit ab53e533c6
2 changed files with 104 additions and 104 deletions

View File

@ -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();
} }
} }

View File

@ -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("=====================================");
} }
}); });