From a8beca16407a7aade96e73af3dc38829dddd5044 Mon Sep 17 00:00:00 2001 From: zhuangtianxiang <2913129173@qq.com> Date: Mon, 24 Mar 2025 17:29:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(iot):=20=E6=B7=BB=E5=8A=A0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E7=8A=B6=E6=80=81=E7=9B=91=E6=8E=A7=E5=92=8C=E5=9C=B0?= =?UTF-8?q?=E7=90=86=E5=9D=90=E6=A0=87=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Device 模型中添加 deviceState 字段,用于表示设备运行状态- 在 DeviceDto 中添加 longitude 和 latitude 字段,用于表示设备经纬度 - 修改 RecordDataServiceImpl 中的数据处理逻辑,增加设备状态更新 - 在数据库中添加相关字段和默认值设置 --- .../modules/iot/device/dto/DeviceDto.java | 9 ++++ .../modules/iot/device/entity/Device.java | 7 ++- .../service/impl/RecordDataServiceImpl.java | 44 ++++++++++++++----- .../iot/tsl/controller/EventController.java | 2 +- .../iot/tsl/repo/EventLogRepository.java | 1 + src/main/resources/db/gateway.sql | 5 +++ .../resources/mappers/iot/EventLogMapper.xml | 1 + 7 files changed, 57 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/dto/DeviceDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/dto/DeviceDto.java index 19d2e91..b065962 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/dto/DeviceDto.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/dto/DeviceDto.java @@ -64,5 +64,14 @@ public class DeviceDto { */ public String previewId; + /** + * 设备经度 + */ + public Double longitude; + + /** + * 设备纬度 + */ + public Double latitude; } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java index 7c673bb..3bb6d06 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/entity/Device.java @@ -121,7 +121,11 @@ public class Device extends BaseEntity { * 设备预览图附件ID */ public String previewId; -//TODO 设备运行状态 + + /** + * 设备是否正常运行 + */ + public Boolean deviceState; public enum Status implements IEnum, IState { UNACTIVATED(0, "未激活"), @@ -147,5 +151,6 @@ public class Device extends BaseEntity { return this.description; } } + } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java index 53e9fd3..640e1f8 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java @@ -3,6 +3,7 @@ package com.zsc.edu.gateway.modules.iot.record.service.impl; import com.alibaba.fastjson2.JSONException; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -36,8 +37,6 @@ import java.util.List; @Service public class RecordDataServiceImpl extends ServiceImpl implements RecordDataService { - @Resource - private final ApplicationEventPublisher eventPublisher; @Resource private final DeviceRepository deviceRepository; @Resource @@ -60,7 +59,10 @@ public class RecordDataServiceImpl extends ServiceImpl processParam(recordData, param, event)); + for (CompareParam param : event.getOutputs()) { + boolean isProcessed = processParam(recordData, param, event); + if (isProcessed) { + processed = true; + break; // 找到并处理完第一个参数后跳出内层循环 + } + } + if (processed) { + break; // 如果已经处理过参数,跳出外层循环 + } } + + return processed; } /** @@ -123,11 +140,11 @@ public class RecordDataServiceImpl extends ServiceImpl value.doubleValue() > defaultValue.doubleValue(); @@ -169,7 +186,14 @@ public class RecordDataServiceImpl extends ServiceImpl() + .eq(Device::getClientId, clientId) + .set(Device::getDeviceState, isDeviceState)); + } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java index 4e6c09d..8c581ec 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/EventController.java @@ -79,7 +79,7 @@ public class EventController { public IPage eventLogPage(Page page, @PathVariable("clientId") String clientId) { return eventLogRepository.selectPage(page, new LambdaQueryWrapper().eq(EventLog::getRecordId, clientId)); } -//TODO 详情接口 + /** * 删除事件 diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventLogRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventLogRepository.java index 74c7409..52b3e6d 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventLogRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventLogRepository.java @@ -11,4 +11,5 @@ public interface EventLogRepository extends BaseMapper { @Select("select * from iot_event_log where client_id=#{clientId}") List selectByClientId(@Param("clientId") String clientId); + } diff --git a/src/main/resources/db/gateway.sql b/src/main/resources/db/gateway.sql index 968f005..4ec0671 100644 --- a/src/main/resources/db/gateway.sql +++ b/src/main/resources/db/gateway.sql @@ -943,3 +943,8 @@ ALTER TABLE iot_param ALTER TABLE iot_param ADD COLUMN default_value DOUBLE PRECISION; + + +ALTER TABLE iot_event + ALTER COLUMN enabled SET DEFAULT true; + diff --git a/src/main/resources/mappers/iot/EventLogMapper.xml b/src/main/resources/mappers/iot/EventLogMapper.xml index 0c783f2..0859425 100644 --- a/src/main/resources/mappers/iot/EventLogMapper.xml +++ b/src/main/resources/mappers/iot/EventLogMapper.xml @@ -23,4 +23,5 @@ iot_record_data ird where iel.record_id = ird.id + \ No newline at end of file