添加挂载
This commit is contained in:
parent
4a36cdf89f
commit
41a86fb8b7
|
|
@ -11,7 +11,11 @@ import com.ruoyi.device.domain.model.Dock;
|
|||
import com.ruoyi.device.domain.model.DockAircraft;
|
||||
import com.ruoyi.device.domain.model.thingsboard.AttributeMap;
|
||||
import com.ruoyi.device.domain.model.thingsboard.DeviceInfo;
|
||||
import com.ruoyi.device.domain.model.thingsboard.TelemetryMap;
|
||||
import com.ruoyi.device.domain.model.thingsboard.TelemetryValue;
|
||||
import com.ruoyi.device.domain.model.thingsboard.attributes.psdk.PsdkDevice;
|
||||
import com.ruoyi.device.domain.model.thingsboard.constants.DeviceAttributes;
|
||||
import com.ruoyi.device.domain.model.thingsboard.constants.DeviceTelemetry;
|
||||
import com.ruoyi.device.service.enums.DeviceType;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -19,14 +23,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Service
|
||||
|
|
@ -403,6 +403,38 @@ public class SynService {
|
|||
} else {
|
||||
log.info("无人机已存在,跳过插入: deviceId={}, aircraftName={}", deviceId, deviceName);
|
||||
}
|
||||
|
||||
TelemetryMap telemetryMap = iThingsBoardDomain.getPredefinedDeviceTelemetry(deviceName);
|
||||
|
||||
Optional<TelemetryValue<List<PsdkDevice>>>
|
||||
psdkDevicesOption = telemetryMap.get(DeviceTelemetry.PSDK_WIDGET_VALUES);
|
||||
|
||||
if(psdkDevicesOption.isPresent()) {
|
||||
List<PsdkDevice> psdkDevices = psdkDevicesOption.get().getValue();
|
||||
if(!CollectionUtils.isEmpty(psdkDevices)) {
|
||||
for (PsdkDevice psdkDevice : psdkDevices) {
|
||||
if(Objects.nonNull(psdkDevice.getSpeaker()) &&
|
||||
Objects.nonNull(psdkDevice.getPsdk_sn()) && !psdkDevice.getPsdk_sn().isEmpty()) {
|
||||
// 第一步 插入喊话器设备 (没有则新增)
|
||||
// 判断 device_payload 中 挂载SN号 中如果不存在为Psdk_sn的数据则插入
|
||||
// 插入 device_payload 挂载类为喊话器(需要定义一个挂载的枚举类型)
|
||||
// 挂载显示名称为喊话器 挂载SN号(string)为 Psdk_sn,IOT中的设备ID 为空
|
||||
// 更新 无人机挂载表 表
|
||||
|
||||
|
||||
// 更新 device_aircraft_payload 表
|
||||
// 判断改表中是否存在 payload_id 为 device_payload 中主键的数据
|
||||
// 存在的话,判断 aircraft_id 字段是否等于 deviceName , 不等于则更新 aircraft_id
|
||||
// 等于则什么都不做;
|
||||
// 表中不否存在 payload_id 为 device_payload 中主键的数据,则插入数据
|
||||
// dock_id为 无人机表关联的基础表的主键
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 无人机已存在,无需更新
|
||||
return existingAircraft.getAircraftId();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue