From 38dac8f822d1ede5e9fd3fbe3e8a5de719fd6883 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 10 Dec 2025 09:17:25 +0800
Subject: [PATCH] 2025-12-10 zwy 在切换无人机摄像头时,因为无人机不支持红外,切换失败,修改提示内容为“325003000,指令响应失败,请确认无人机是否支持此功能。”
---
ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceHmsServiceImpl.java | 36 ++++++++++++++++++++++++++++++++----
1 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceHmsServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceHmsServiceImpl.java
index 7b21a88..9d010b7 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceHmsServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceHmsServiceImpl.java
@@ -100,11 +100,20 @@
.forEach(hmsReceiver -> {
final DeviceHmsEntity hms = entity.clone();
this.fillEntity(hms, hmsReceiver, device);
+ this.fillMessage(hms, hmsReceiver.getArgs());
// The same unread hms are no longer incremented.
if (hmsMap.contains(hms.getHmsKey())) {
+ // 修改已存在数据的创建时间,先查询到已存在记录,再修改。
+ DeviceHmsEntity exisHms=getDeviceHmsEntity(hms);
+ if (exisHms != null) {
+ LambdaUpdateWrapper<DeviceHmsEntity> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.set(DeviceHmsEntity::getCreateTime, hms.getCreateTime());
+ updateWrapper.eq(DeviceHmsEntity::getId, exisHms.getId());
+
+ mapper.update(exisHms, updateWrapper);
+ }
return;
}
- this.fillMessage(hms, hmsReceiver.getArgs());
unReadList.add(entity2Dto(hms));
mapper.insert(hms);
});
@@ -112,7 +121,12 @@
if (unReadList.isEmpty()) {
return;
}
- RedisOpsUtils.listRPush(key, (Object) unReadList.stream().map(DeviceHmsDTO::getKey).toArray(String[]::new));
+ // RedisOpsUtils.listRPush(key, (Object) unReadList.stream().map(DeviceHmsDTO::getKey).toArray(String[]::new));
+ // 修正后:直接传入String数组,每个元素单独存
+ List<String> newHmsKeys = unReadList.stream()
+ .map(DeviceHmsDTO::getKey)
+ .collect(Collectors.toList());
+ RedisOpsUtils.listRPush(key, newHmsKeys.toArray(new String[0]));
// push to the web
// Collection<ConcurrentWebSocketSession> sessions = webSocketManageService.getValueWithWorkspaceAndUserType(
// device.getWorkspaceId(), UserTypeEnum.WEB.getVal());
@@ -262,7 +276,7 @@
if(deviceDTO.getDomain() == DeviceDomainEnum.DOCK.getVal()) {
dto.setHmsKey(HmsEnum.HmsFaqIdEnum.DOCK_TIP.getText() + receiver.getCode());
- log.info("SN:{}的Hms匹配拼接规则值为:{}",deviceDTO.getDeviceSn(), HmsEnum.HmsFaqIdEnum.DOCK_TIP.getText() + receiver.getCode());
+// log.info("SN:{}的Hms匹配拼接规则值为:{}",deviceDTO.getDeviceSn(), HmsEnum.HmsFaqIdEnum.DOCK_TIP.getText() + receiver.getCode());
return;
}
// if (HmsEnum.DomainType.DRONE_NEST.getDomain().equals(receiver.getDomainType())) {
@@ -275,7 +289,7 @@
key.append(HmsEnum.IN_THE_SKY.getText());
}
dto.setHmsKey(key.toString());
- log.info("SN:{}的Hms匹配拼接规则值为:{}",deviceDTO.getDeviceSn(), key.toString());
+// log.info("SN:{}的Hms匹配拼接规则值为:{}",deviceDTO.getDeviceSn(), key.toString());
}
/**
@@ -373,4 +387,18 @@
}
return list;
}
+
+ /**
+ * 按条件查询返回最新的一条数据
+ * */
+ public DeviceHmsEntity getDeviceHmsEntity(DeviceHmsEntity deviceHmsEntity) {
+ List <DeviceHmsEntity> lstHms = mapper.selectList(new LambdaQueryWrapper<DeviceHmsEntity>()
+ .eq(DeviceHmsEntity::getHmsKey, deviceHmsEntity.getHmsKey())
+ .eq(DeviceHmsEntity::getSn, deviceHmsEntity.getSn())
+ .eq(DeviceHmsEntity::getUpdateTime,0)
+ .orderByDesc(DeviceHmsEntity::getCreateTime)
+ );
+
+ return lstHms.isEmpty() ? null : lstHms.get(0);
+ }
}
--
Gitblit v1.9.3