diff --git a/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEvent.java b/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEvent.java
deleted file mode 100644
index b566f17..0000000
--- a/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEvent.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.zsc.edu.gateway.framework.springEvent;
-
-import com.zsc.edu.gateway.modules.iot.record.entity.RecordData;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.context.ApplicationEvent;
-
-/**
- * @author zhuang
- */
-@Getter
-@Setter
-public class TemperatureExceededEvent extends ApplicationEvent {
-    private final RecordData recordData;
-    private final double reducedParameter;
-    private final String eventName;
-
-    public TemperatureExceededEvent(Object source, RecordData recordData, double reducedParameter, String eventName) {
-        super(source);
-        this.recordData = recordData;
-        this.reducedParameter = reducedParameter;
-        this.eventName = eventName;
-    }
-}
diff --git a/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEventListener.java b/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEventListener.java
deleted file mode 100644
index c9d2174..0000000
--- a/src/main/java/com/zsc/edu/gateway/framework/springEvent/TemperatureExceededEventListener.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.zsc.edu.gateway.framework.springEvent;
-
-import com.zsc.edu.gateway.modules.iot.device.repo.DeviceRepository;
-import com.zsc.edu.gateway.modules.iot.record.entity.RecordData;
-import com.zsc.edu.gateway.modules.iot.tsl.entity.EventLog;
-import com.zsc.edu.gateway.modules.iot.tsl.repo.EventLogRepository;
-import com.zsc.edu.gateway.modules.iot.tsl.repo.EventRepository;
-import jakarta.annotation.Resource;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-
-import java.time.LocalDateTime;
-
-/**
- * @author zhuang
- */
-@Component
-public class TemperatureExceededEventListener implements ApplicationListener<TemperatureExceededEvent> {
-
-    @Resource
-    private EventLogRepository eventLogRepository;
-
-    @Resource
-    private DeviceRepository deviceRepository;
-
-    @Resource
-    private EventRepository eventRepository;
-
-    @Override
-    public void onApplicationEvent(TemperatureExceededEvent event) {
-        RecordData recordData = event.getRecordData();
-        System.out.println(event.getEventName() + "数值如下:" + event.getReducedParameter());
-        // 创建 EventLog 对象
-        EventLog eventLog = new EventLog();
-        eventLog.setName(event.getEventName());
-        eventLog.setRecordId(recordData.getId());
-        eventLog.setTriggerTime(LocalDateTime.now());
-        eventLog.setIsRead(false);
-        // 保存 EventLog 对象到数据库
-        eventLogRepository.insert(eventLog);
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java
index 3b1e946..40eee1b 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java
@@ -58,7 +58,7 @@ public class DeviceController {
     @PostMapping("batch")
     @PreAuthorize("hasAuthority('iot:device:create')")
     @OperationLogAnnotation(content = "'批量设备'", operationType = "新建")
-    public List<Device> batchCreate(@RequestBody BatchDeviceDto batchDeviceDto) {
+    public List<Device> createBatch(@RequestBody BatchDeviceDto batchDeviceDto) {
         return service.batchCreate(batchDeviceDto);
     }
 
@@ -148,15 +148,6 @@ public class DeviceController {
         return sseConfig.sendSseEvents(recordService::recordDataStatus);
     }
 
-    /**
-     * 获取告警信息
-     */
-    @GetMapping(value = "/sse/data/status", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
-    @PreAuthorize("hasAuthority('iot:device:query')")
-    @DataPermission
-    public SseEmitter dataWarning() {
-        return sseConfig.sendSseEvents(recordService::dataWarning);
-    }
 
     /**
      * 下发命令
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java
index 3ba466a..7cb0a49 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java
@@ -177,6 +177,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceRepository, Device> imp
         return deviceRepo.selectPage(page, query.wrapper());
     }
 
+    /**
+     * 设备状态
+     */
     @Override
     public DeviceStatusVo status() {
         return DeviceStatusVo.builder()
@@ -193,6 +196,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceRepository, Device> imp
                 .build();
     }
 
+    /**
+     * 发送消息
+     */
     @Override
     public String send(Long deviceId, Integer qos, JSONObject paras) throws JSONException {
         DeviceVo device = detail(deviceId);
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/DataWarningVo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/DataWarningVo.java
deleted file mode 100644
index e4c160a..0000000
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/DataWarningVo.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.zsc.edu.gateway.modules.iot.record.entity;
-
-import lombok.Data;
-
-/**
- * @author zhuang
- */
-@Data
-public class DataWarningVo {
-    /**
-     * 告警总数
-     */
-    private Long warningCount;
-
-    /**
-     * 今日新增
-     */
-    private Long todayWarningCount;
-
-    /**
-     * 一级报警数
-     */
-    private Long firstWarningCount;
-
-    /**
-     * 二级报警数
-     */
-    private Long secondWarningCount;
-
-    /**
-     * 三级报警数
-     */
-    private Long thirdWarningCount;
-}
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordDataStatusVo.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordDataStatusVo.java
index 16ca229..1b90770 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordDataStatusVo.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordDataStatusVo.java
@@ -1,10 +1,12 @@
 package com.zsc.edu.gateway.modules.iot.record.entity;
 
+import lombok.Builder;
 import lombok.Data;
 
 /**
  * @author zhuang
  */
+@Builder
 @Data
 public class RecordDataStatusVo {
     /**
@@ -16,4 +18,14 @@ public class RecordDataStatusVo {
      * 数据点数
      */
     public Long dataCount;
+
+    /**
+     * 告警总数
+     */
+    private Long warningCount;
+
+    /**
+     * 今日新增
+     */
+    private Long todayWarningCount;
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordDataService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordDataService.java
index 9054a04..0def66b 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordDataService.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/RecordDataService.java
@@ -4,12 +4,9 @@ import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zsc.edu.gateway.modules.iot.record.entity.DataWarningVo;
 import com.zsc.edu.gateway.modules.iot.record.entity.RecordData;
 import com.zsc.edu.gateway.modules.iot.record.entity.RecordDataStatusVo;
 
-import java.util.List;
-
 /**
  * @author zhuang
  */
@@ -19,7 +16,5 @@ public interface RecordDataService extends IService<RecordData> {
 
     RecordDataStatusVo recordDataStatus();
 
-    DataWarningVo dataWarning();
-
     IPage<RecordData> query(Page<RecordData> page, String clientId);
 }
\ No newline at end of file
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 e25bc08..bb093b5 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
@@ -1,6 +1,5 @@
 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.metadata.IPage;
@@ -8,16 +7,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zsc.edu.gateway.modules.iot.device.entity.Device;
 import com.zsc.edu.gateway.modules.iot.device.repo.DeviceRepository;
-import com.zsc.edu.gateway.modules.iot.record.entity.DataWarningVo;
 import com.zsc.edu.gateway.modules.iot.record.entity.RecordData;
 import com.zsc.edu.gateway.modules.iot.record.entity.RecordDataStatusVo;
-import com.zsc.edu.gateway.framework.springEvent.TemperatureExceededEvent;
 import com.zsc.edu.gateway.modules.iot.record.repo.RecordDataRepository;
 import com.zsc.edu.gateway.modules.iot.record.service.RecordDataService;
-import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto;
 import com.zsc.edu.gateway.modules.iot.tsl.entity.Event;
-import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;
-import com.zsc.edu.gateway.modules.iot.tsl.mapper.ParamMapper;
+import com.zsc.edu.gateway.modules.iot.tsl.entity.EventLog;
+import com.zsc.edu.gateway.modules.iot.tsl.entity.CompareParam;
+import com.zsc.edu.gateway.modules.iot.tsl.repo.EventLogRepository;
 import com.zsc.edu.gateway.modules.iot.tsl.repo.EventRepository;
 import jakarta.annotation.Resource;
 import lombok.AllArgsConstructor;
@@ -27,8 +24,12 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.function.Consumer;
+import java.util.function.Predicate;
 
 /**
+ *上报数据
+ *
  * @author zhuang
  */
 @AllArgsConstructor
@@ -42,7 +43,15 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
     @Resource
     private final EventRepository eventRepository;
     @Resource
-    private final ParamMapper paramMapper;
+    private final EventLogRepository eventLogRepository;
+
+    /**
+     * 处理上报数据并进行监控
+     *
+     * @param clientId
+     * @param data
+     * @return recordData
+     */
     @Override
     @Transactional
     public RecordData recordData(String clientId, JSONObject data) {
@@ -55,31 +64,29 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
         return recordData;
     }
 
+    /**
+     * 获取上报数据状态
+     * @return RecordDataStatusVo
+     */
     @Override
     public RecordDataStatusVo recordDataStatus() {
-        RecordDataStatusVo recordDataStatusVo = new RecordDataStatusVo();
-        recordDataStatusVo.setRecordCount(baseMapper.selectCount(new LambdaQueryWrapper<RecordData>()));
-        recordDataStatusVo.setDataCount(baseMapper.selectCount(new LambdaQueryWrapper<RecordData>().isNotNull(RecordData::getContent)));
-        return recordDataStatusVo;
-    }
-
-    @Override
-    public DataWarningVo dataWarning() {
-        DataWarningVo dataWarningVo = new DataWarningVo();
         LocalDateTime todayStart = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
-        long warningCount = baseMapper.countWarnings();
-        long todayWarningCount = baseMapper.countTodayWarnings(todayStart);
-        long firstWarningCount = baseMapper.countWarningsByBit(1);
-        long secondWarningCount = baseMapper.countWarningsByBit(2);
-        long thirdWarningCount = baseMapper.countWarningsByBit(4);
-        dataWarningVo.setWarningCount(warningCount);
-        dataWarningVo.setTodayWarningCount(todayWarningCount);
-        dataWarningVo.setFirstWarningCount(firstWarningCount);
-        dataWarningVo.setSecondWarningCount(secondWarningCount);
-        dataWarningVo.setThirdWarningCount(thirdWarningCount);
-        return dataWarningVo;
+
+        return RecordDataStatusVo.builder()
+                .warningCount(baseMapper.countWarnings())
+                .todayWarningCount(baseMapper.countTodayWarnings(todayStart))
+                .recordCount(baseMapper.selectCount(new LambdaQueryWrapper<>()))
+                .dataCount(baseMapper.selectCount(new LambdaQueryWrapper<RecordData>().isNotNull(RecordData::getContent)))
+                .build();
     }
 
+
+    /**
+     * 查询上报数据
+     * @param page 分页数据
+     * @param clientId 设备的 clientId
+     * @return IPage<RecordData>
+     */
     @Override
     public IPage<RecordData> query(Page<RecordData> page, String clientId) {
         LambdaQueryWrapper<RecordData> queryWrapper = new LambdaQueryWrapper<>();
@@ -87,6 +94,10 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
         return baseMapper.selectPage(page, queryWrapper);
     }
 
+    /**
+     * 监控上报数据
+     * @param recordData 上报数据
+     */
     public void processRecordData(RecordData recordData) {
         // 根据 clientId 查询设备信息
         Device device = deviceRepository.findByClientId(recordData.getClientId());
@@ -95,7 +106,7 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
         }
 
         // 获取产品下的所有事件
-        List<Event> events = eventRepository.selectByProductId(device.getProductId());
+        List<Event> events = eventRepository.selectByProductId(device.getProductId(),true);
         if (events.isEmpty()) {
             return; // 如果没有事件,直接返回
         }
@@ -106,9 +117,16 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
         }
     }
 
-    private void processParam(RecordData recordData, Param param, Event event) {
+    /**
+     * 处理数据
+     *
+     * @param recordData 上报数据
+     * @param param      属性
+     * @param event      事件
+     */
+    private void processParam(RecordData recordData, CompareParam param, Event event) {
         // 获取参数的默认值和比较类型
-        Double defaultValue = param.getDefaultValue();
+        double defaultValue = Double.parseDouble(param.getDefaultValue());
         String identifier = param.getIdentifier();
 
         // 检查 recordData 的内容中是否包含该参数的标识符
@@ -116,31 +134,26 @@ public class RecordDataServiceImpl extends ServiceImpl<RecordDataRepository, Rec
         if (valueObj != null) {
             // 获取参数的实际值
             double value = Double.parseDouble(valueObj.toString());
-            Param.CompareType compareType = param.getCompareType();
+            CompareParam.CompareType compareType = param.getCompareType();
 
-            // 根据比较类型进行不同的处理
-            switch (compareType) {
-                case GT:
-                    if (value > defaultValue) {
-                        eventPublisher.publishEvent(new TemperatureExceededEvent(this, recordData, value, event.getName()));
-                    }
-                    break;
-                case LT:
-                    if (value < defaultValue) {
-                        eventPublisher.publishEvent(new TemperatureExceededEvent(this, recordData, value, event.getName()));
-                    }
-                    break;
-                case EQ:
-                    if (value == defaultValue) {
-                        eventPublisher.publishEvent(new TemperatureExceededEvent(this, recordData, value, event.getName()));
-                    }
-                    break;
-                default:
-                    // 处理未知的比较类型
-                    throw new JSONException("Unknown compare type: " + compareType);
-            }
+            Predicate<Double> comparison = switch (compareType) {
+                case GT -> v -> v > defaultValue;
+                case LT -> v -> v < defaultValue;
+                case EQ -> v -> v == defaultValue;
+                case GE -> v -> v >= defaultValue;
+                case LE -> v -> v <= defaultValue;
+            };
+
+            // 定义插入日志的 Consumer
+            Consumer<Double> logInsertion = v -> {
+                if (comparison.test(v)) {
+                    eventLogRepository.insert(new EventLog(null, event.getName(), recordData.getId(), recordData, LocalDateTime.now(), null, null));
+                }
+            };
+
+            // 执行比较和日志插入
+            logInsertion.accept(value);
         }
     }
 
-
 }
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 fb79544..decaa29 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
@@ -107,5 +107,16 @@ public class EventController {
         return service.detail(id);
     }
 
+    /**
+     * 更新事件状态
+     *
+     * @return 更新后的事件
+     */
+    @PatchMapping("/toggle/{id}")
+    @PreAuthorize("hasAuthority('iot:event:update')")
+    @OperationLogAnnotation(content = "'事件启用状态'", operationType = "更新")
+    public Boolean updateEnabled(@PathVariable("id") Long id) {
+        return service.toggle(id);
+    }
 
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java
index e060fc2..acec7bf 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/EventDto.java
@@ -26,5 +26,7 @@ public class EventDto {
 
     public Event.Type type;
 
+    public Boolean enabled;
+
     private List<ParamDto> outputs;
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java
index 749fa8b..84616a0 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/dto/ParamDto.java
@@ -1,6 +1,7 @@
 package com.zsc.edu.gateway.modules.iot.tsl.dto;
 
 import com.zsc.edu.gateway.modules.iot.tsl.entity.DataType;
+import com.zsc.edu.gateway.modules.iot.tsl.entity.CompareParam;
 import com.zsc.edu.gateway.modules.iot.tsl.entity.Param;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -26,7 +27,7 @@ public class ParamDto {
 
     public Param.Type type;
 
-    private Param.CompareType compareType;
+    private CompareParam.CompareType compareType;
 
     private Double defaultValue;
 
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/CompareParam.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/CompareParam.java
new file mode 100644
index 0000000..2f91fa0
--- /dev/null
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/CompareParam.java
@@ -0,0 +1,73 @@
+package com.zsc.edu.gateway.modules.iot.tsl.entity;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.zsc.edu.gateway.common.enums.IState;
+import lombok.*;
+
+/**
+ * @author lenovo
+ */
+@Setter
+@Getter
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("iot_param")
+@JsonInclude
+public class CompareParam extends Param {
+
+    /**
+     * 对比类型
+     */
+    private CompareType compareType;
+
+    /**
+     * 默认数值
+     */
+    private String defaultValue;
+
+
+    public enum CompareType implements IEnum<String>, IState<CompareType> {
+        /**
+         * 大于
+         */
+        GT("GT", "GT"),
+        /**
+         * 小于
+         */
+        LT("LT", "LT"),
+        /**
+         * 等于
+         */
+        EQ("EQ", "EQ"),
+        /**
+         * 大于等于
+         */
+        GE("GE", "GE"),
+        /**
+         * 小于等于
+         */
+        LE("LE", "LE");
+
+        private final String value;
+        private final String description;
+
+        CompareType(String value, String description) {
+            this.value = value;
+            this.description = description;
+        }
+
+        @Override
+        public String getValue() {
+            return value;
+        }
+
+        @Override
+        public String toString() {
+            return this.description;
+        }
+    }
+
+}
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java
index c6c47bd..79ba494 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Event.java
@@ -5,16 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.zsc.edu.gateway.common.enums.IState;
-import com.zsc.edu.gateway.modules.iot.product.entity.Product;
-import com.zsc.edu.gateway.modules.iot.tsl.dto.ParamDto;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
-import org.springframework.context.annotation.ImportSelector;
 
 import java.util.List;
-import java.util.Set;
 
 /**
  * @author Yao
@@ -35,11 +31,17 @@ public class Event extends BaseParam {
      */
     private Type type;
 
+    /**
+     * 是否启用服务
+     */
+    private Boolean enabled;
+
     /**
      * 服务输出的参数
      */
     @TableField(exist = false)
-    private List<Param> outputs;
+    private List<CompareParam> outputs;
+
 
     public enum Type implements IEnum<String>, IState<Type> {
         /**
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/EventLog.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/EventLog.java
index 90b107f..29682ef 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/EventLog.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/EventLog.java
@@ -45,11 +45,6 @@ public class EventLog {
      */
     private LocalDateTime triggerTime;
 
-    /**
-     * 是否已读
-     */
-    private Boolean isRead;
-
     /**
      * 部门ID(权限)
      */
@@ -61,4 +56,5 @@ public class EventLog {
      */
     @TableField(value = "create_id", fill = FieldFill.INSERT)
     public Long createId;
+
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java
index f27db23..288af87 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/entity/Param.java
@@ -44,15 +44,6 @@ public class Param extends BaseParam {
      */
     private Long foreignId;
 
-    /**
-     * 对比类型
-     */
-    private CompareType compareType;
-
-    /**
-     * 默认数值
-     */
-    private Double defaultValue;
 
     public enum Type implements IEnum<String>, IState<Type> {
         /**
@@ -120,35 +111,5 @@ public class Param extends BaseParam {
         }
     }
 
-    public enum CompareType implements IEnum<String>, IState<CompareType> {
-        /**
-         * 大于
-         */
-        GT("GT", "GT"),
-        /**
-         * 小于
-         */
-        LT("LT", "LT"),
-        /**
-         * 等于
-         */
-        EQ("EQ", "EQ");
-        private final String value;
-        private final String description;
 
-        CompareType(String value, String description) {
-            this.value = value;
-            this.description = description;
-        }
-
-        @Override
-        public String getValue() {
-            return value;
-        }
-
-        @Override
-        public String toString() {
-            return this.description;
-        }
-    }
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java
index da4d22f..d5ee293 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/repo/EventRepository.java
@@ -25,5 +25,5 @@ public interface EventRepository extends BaseMapper<Event> {
 
     Event selectById(@Param("id") Long id);
 
-    List<Event> selectByProductId(@Param("productId") Long id);
+    List<Event> selectByProductId(@Param("productId") Long id, @Param("enabled") Boolean enabled);
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java
index 1c00c53..1fa389f 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/EventService.java
@@ -18,4 +18,6 @@ public interface EventService extends IService<Event> {
     Event detail(Long id);
 
     boolean delete(Long id);
+
+    boolean toggle(Long id);
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java
index eea22eb..6bca633 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/EventServiceImpl.java
@@ -9,10 +9,7 @@ import com.zsc.edu.gateway.modules.iot.tsl.mapper.EventMapper;
 import com.zsc.edu.gateway.modules.iot.tsl.repo.EventRepository;
 import com.zsc.edu.gateway.modules.iot.tsl.service.EventService;
 import com.zsc.edu.gateway.modules.iot.tsl.service.ParamService;
-import jakarta.annotation.Resource;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -81,4 +78,14 @@ public class EventServiceImpl extends ServiceImpl<EventRepository, Event> implem
         removeById(id);
         return paramService.delete(id);
     }
+
+    /**
+     * 切换启用状态
+     */
+    @Override
+    public boolean toggle(Long id) {
+        Event event = detail(id);
+        event.setEnabled(!event.getEnabled());
+        return updateById(event);
+    }
 }
diff --git a/src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationController.java b/src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationLogController.java
similarity index 97%
rename from src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationController.java
rename to src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationLogController.java
index e3328f7..cdf2b22 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationController.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/operationLog/controller/OperationLogController.java
@@ -18,7 +18,7 @@ import java.util.List;
 @AllArgsConstructor
 @RestController
 @RequestMapping("/api/rest/log")
-public class OperationController {
+public class OperationLogController {
     private OperationLogRepository repo;
 
     /**
diff --git a/src/main/java/com/zsc/edu/gateway/modules/operationLog/entity/ModuleTypeEnum.java b/src/main/java/com/zsc/edu/gateway/modules/operationLog/entity/ModuleTypeEnum.java
index 4bd0e18..2eac9ac 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/operationLog/entity/ModuleTypeEnum.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/operationLog/entity/ModuleTypeEnum.java
@@ -26,6 +26,7 @@ public enum ModuleTypeEnum implements IEnum<String>, IState<ModuleTypeEnum> {
     notice("notice", "notice"),
     bulletin("bulletin", "bulletin"),
     attachment("attachment", "attachment"),
+    operationLog("operationLog", "operationLog"),
     other("other", "other");
 
     private final String code;
diff --git a/src/main/java/com/zsc/edu/gateway/modules/operationLog/util/OperationLogAspect.java b/src/main/java/com/zsc/edu/gateway/modules/operationLog/util/OperationLogAspect.java
index 41cded6..ff63000 100644
--- a/src/main/java/com/zsc/edu/gateway/modules/operationLog/util/OperationLogAspect.java
+++ b/src/main/java/com/zsc/edu/gateway/modules/operationLog/util/OperationLogAspect.java
@@ -57,13 +57,19 @@ public class OperationLogAspect {
         OperationLogAnnotation operationLogAnnotation = ((MethodSignature) joinPoint.getSignature()).getMethod().
                 getAnnotation(OperationLogAnnotation.class);
 
-        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
-        HttpServletRequest request = attributes.getRequest();
-
         // 获取方法名
         String methodName = joinPoint.getSignature().getName().toLowerCase();
         // 根据方法名判定方法类型
-        String methodType = FunctionTypeEnum.getMessageByCode(methodName);
+        String methodType;
+        if (methodName.contains("update")) {
+            methodType = "update";
+        } else if (methodName.contains("delete")) {
+            methodType = "delete";
+        } else if (methodName.contains("create")) {
+            methodType = "create";
+        } else {
+            methodType = "other";
+        }
 
         // 获取类名
         String className = joinPoint.getTarget().getClass().getSimpleName().toLowerCase();
diff --git a/src/main/resources/mappers/iot/EventMapper.xml b/src/main/resources/mappers/iot/EventMapper.xml
index 436b023..dd0b2d9 100644
--- a/src/main/resources/mappers/iot/EventMapper.xml
+++ b/src/main/resources/mappers/iot/EventMapper.xml
@@ -9,8 +9,10 @@
         <result column="type" property="type"/>
         <result column="identifier" property="identifier"/>
         <result column="name" property="name"/>
+        <result column="enabled" property="enabled"/>
         <result column="remark" property="remark"/>
-        <collection property="outputs" ofType="com.zsc.edu.gateway.modules.iot.tsl.entity.Param" autoMapping="true"
+        <collection property="outputs" ofType="com.zsc.edu.gateway.modules.iot.tsl.entity.CompareParam"
+                    autoMapping="true"
                     columnPrefix="param_">
             <id column="id" property="id"/>
             <result column="data_type" property="dataType"/>
@@ -34,7 +36,9 @@
                ip.type       as param_type,
                ip.identifier as param_identifier,
                ip.name       as param_name,
-               ip.remark     as param_remark
+               ip.remark        as param_remark,
+               ip.compare_type  as param_compare_type,
+               ip.default_value as param_default_value
         from iot_event e
                  left join iot_param ip on e.id = ip.foreign_id
             and ip.foreign_type = 1
@@ -55,5 +59,6 @@
                  left join iot_param ip on e.id = ip.foreign_id
             and ip.foreign_type = 1
         where e.product_id = #{productId}
+          and e.enabled = true
     </select>
 </mapper>
\ No newline at end of file
diff --git a/storage/attachment/106a80f97c844a80667b2c6d57da5839db05623b b/storage/attachment/106a80f97c844a80667b2c6d57da5839db05623b
new file mode 100644
index 0000000..4c9d3a2
Binary files /dev/null and b/storage/attachment/106a80f97c844a80667b2c6d57da5839db05623b differ
diff --git a/storage/attachment/faad9bd8cf7668198a842812bc28a86dde549fe1 b/storage/attachment/faad9bd8cf7668198a842812bc28a86dde549fe1
new file mode 100644
index 0000000..37d5479
Binary files /dev/null and b/storage/attachment/faad9bd8cf7668198a842812bc28a86dde549fe1 differ