Commit dbe84faf by 罗志长

fix: iot设备属性同步

parent 15decda0
......@@ -912,6 +912,7 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
}
@Override
@TenantIdIgnore
@Transactional(rollbackFor = Exception.class)
public void receiveIotProperties(String deviceId, JSONObject iotProperties) {
PlatDeviceOther deviceOther = platDeviceOtherService.getOne(new QueryWrapper<PlatDeviceOther>().lambda()
......@@ -926,26 +927,26 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
platDeviceBaseAttrDTO = new PlatDeviceBaseAttrDTO();
}
PlatDeviceBaseAttrDTO iotAttr = iotProperties.toJavaObject(PlatDeviceBaseAttrDTO.class);
if (!Objects.equals(platDeviceBaseAttrDTO.getRadarMode(), iotAttr.getRadarMode())) {
if (iotAttr.getRadarMode() != null && !Objects.equals(platDeviceBaseAttrDTO.getRadarMode(), iotAttr.getRadarMode())) {
platDeviceBaseAttrDTO.setRadarMode(iotAttr.getRadarMode());
}
if (!Objects.equals(platDeviceBaseAttrDTO.getRadarMount(), iotAttr.getRadarMount())) {
if (iotAttr.getRadarMount() != null && !Objects.equals(platDeviceBaseAttrDTO.getRadarMount(), iotAttr.getRadarMount())) {
platDeviceBaseAttrDTO.setRadarMount(iotAttr.getRadarMount());
}
if (!Objects.equals(platDeviceBaseAttrDTO.getRadarHight(), iotAttr.getRadarHight())) {
if (iotAttr.getRadarHight() != null && !Objects.equals(platDeviceBaseAttrDTO.getRadarHight(), iotAttr.getRadarHight())) {
platDeviceBaseAttrDTO.setRadarHight(iotAttr.getRadarHight());
}
if (!Objects.equals(platDeviceBaseAttrDTO.getRadarDelay(), iotAttr.getRadarDelay())) {
if (iotAttr.getRadarDelay() != null && !Objects.equals(platDeviceBaseAttrDTO.getRadarDelay(), iotAttr.getRadarDelay())) {
platDeviceBaseAttrDTO.setRadarDelay(iotAttr.getRadarDelay());
}
PlatDeviceBaseAttrDTO.DeviceAttrRange radarDistance = platDeviceBaseAttrDTO.getRadarDistance();
if (!Objects.equals(radarDistance, iotAttr.getRadarDistance())) {
if (iotAttr.getRadarDistance() != null && !Objects.equals(radarDistance, iotAttr.getRadarDistance())) {
if (radarDistance != null && radarDistance.getMax() != null && radarDistance.getMin() != null) {
platDeviceBaseAttrDTO.setRadarDistance(iotAttr.getRadarDistance());
}
}
PlatDeviceBaseAttrDTO.DeviceAttrRange radarAngle = platDeviceBaseAttrDTO.getRadarAngle();
if (!Objects.equals(radarAngle, iotAttr.getRadarAngle())) {
if (iotAttr.getRadarAngle() != null && !Objects.equals(radarAngle, iotAttr.getRadarAngle())) {
if (radarAngle != null && radarAngle.getMax() != null && radarAngle.getMin() != null) {
platDeviceBaseAttrDTO.setRadarAngle(iotAttr.getRadarAngle());
}
......
......@@ -36,6 +36,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
......@@ -118,8 +119,6 @@ public class PushCallback implements MqttCallback {
* IOT端设备属性修改后同步
* @param device
*/
@TenantIdIgnore
@Async
public void syncProperties(DeviceInfo device) {
if (!(WRITE_PROPERTY.equals(device.getMessageType()) || WRITE_PROPERTY_REPLY.equals(device.getMessageType()))) {
return;
......@@ -135,8 +134,10 @@ public class PushCallback implements MqttCallback {
if (properties == null) {
return;
}
CompletableFuture.runAsync(() -> {
platDeviceService.receiveIotProperties(device.getDeviceId(), properties);
RedisUtil.delete(key);
});
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment